2007-04-15
基板のレイアウトです。2枚の基板を2段重ねにして使います。表示部は殆どLEDで埋め尽くされます。LED以外の部品は光量を測定するCdSのみです
下段
上段
暗いところと明るいところでのの表示例。暗いところではセグメントが光って見えますが、明るいところでは光っているセグメントがLED本体に溶け込んで数字の6に見えます。このLEDは表面に塗ってあった黒い塗料を紙ヤスリで削って白くした物です。
暗い場所
明るい場所
自動配線には約1時間かかります。
EAGLEのライブラリーにあるPIC18F8722はポート番号順にピンが並んでいるので、基板上の配線が交差しないように配線すると回路図の配線が複雑に交差してしまいます。まだピンに空きがあり回路を載せられるのですが、最適な配線がイメージできません。
ピンがポート番号順に並んでいる
配線が交差しすぎで解りにくい
そこで急遽、現物と同じイメージの部品を作りました。
配線し直しに5~6時間かかりました。
LEDは横から見るとこんなに背が高い。チップLEDを使用すれば高さ2mm以下に出来るので秋月電子でチップLEDを購入。いつものことで、LED以外にもいろいろ買ってます。
もっと平べったくしたい
買い出し
4種買ってみました。一番大きい物が3.2mm×1.6mmサイズ。点灯させると目に焼き付くくらい眩しい(実際焼き付きます)。輝度は十分だがちょっと大きすぎる。直ぐ下の物は暗くてダメ。さらに下の2個は青色で輝度はほぼ同じ。日中は暗いかもしれないが7セグLED程度の輝度はあるので使えそう。さらに高輝度な物は探せばいくらでもありそう。
上のLEDのデータシート。この順番で並んでます。
1セグメントを2個のLEDで構成する配置です。1桁につき14個のLEDを半田付けするので強い精神力が必要。半田付け用のジグを作らないとやってられないかも。
水晶発信モジュールも面実装タイプを使用。
明るさに応じてLEDの輝度を変化させるために小型のCdSの機能確認。直射日光が当たると160Ω、真っ暗だと1MΩと広範囲に抵抗値が変化します。
オペアンプを使用して電圧増幅する予定でしたがCdSの抵抗値があまりにも大きく変化するのでオペアンプは不要になりました。MicrochipDIRECTでSOT23サイズの小型オペアンプを買っておきましたが無駄になりました。
回路図
小さいオペアンプ
バッテリーが小さくなるので電圧監視ICも取り付けます。これもMicrochipDIRECTで購入した物。上のオペアンプと同じSOT23サイズ。
オペアンプのデータシート
現物
配線の状態
下段
上段
半田付けできるか???
OLIMEXに発注かけました、走行計は右のパネルの真ん中あたりに配置。それ以外はDROや回転計などいろいろ。デザインルールが8milなのでいつもより製造に時間がかかるはずです。
2007-05-25
5/8に発注をかけて、5/16に発送した旨の連絡がありました。5/25基板到着。裏と表。サイズ約40×40なので、ディスプレイにも依存しますがほぼ実物大です。
基板表面
基板裏面
2009-07-13
2年近く放置してしまっていた自転車走行計の製作再開。
0.5mmピッチなのでフラックスを使ってしまいます。もちろん半田付けした後はアルコールにドブ漬け洗浄します。
フラックスを使うとやはりきれいに半田付けできる。
2009-07-14
大分踊ってしまった。側面から漏れた光が基板を照らして輪郭がはっきりしない。それに並列接続されているので明るさがばらついてしまっている。明るさのばらつきは電圧降下の小さい赤に変更すれば少しは改善されると思うが手間がかかる割に見た目が良くない。
昼間使うことを考えると液晶が良いのだが、品数豊富なDigi-Keyで調べてもこれに使えそうな小型の液晶ディスプレイは皆無。有機ELならちょうど良いサイズの物があるが、自発光式はLED同様昼間見えづらい。
セロハンテープにチップLEDを貼り付ける。ひっくり返して基板に載せて半田付け。テープは小手の熱で溶けるので邪魔にならない。
3に見えるけど... なんか違う
2009-07-15
上手く出来そうにもないので液晶ディスプレイを探す。数時間かかったが良く探せばそれなりの物が見つかる。
ちょっと大きいが使える。これはDigi-Key
Digi-Key以外にも日本向けに発送できる部品屋が有るみたいだ
ストロベリーリナックス(リナックスという名前が良くないと思う、)で携帯用の液晶が売っている。ノキアをばらした廃品のよう。1個調達してこれを使用することにする。
携帯用液晶の単体販売
インターフェースはI2Cもどき? I2Cそのものか?
サンプルソフトが豊富なので表示部分を作る時間が短くて済みそう。表示部分のインターフェースが簡単になると回路がとてもシンプルになるので片面基板でも作れるかも知れない。ディスプレイを変更するついでにUSB対応にしてしまおう。
サイズは128×128
サンプルソフトは豊富
データシートを見るとインターフェースはSPIの様だ。SPIは双方向だが液晶ディスプレイはデータを吐き出さないので出力ピンが省略されている。USBを使うので定番のPIC18F2550で配線し直し。SPIとI2Cを共存させるのは気分が悪いのでEEPROMもSPIインターフェースの物にする。
回路はシンプルになった
2009-07-16
思った以上に真っ黒です、たぶんバックライトがないと使えません。夜間専用機になってしまうので昼間使えそうな物を探さないといけません。
通電していないときの色は真っ黒....ということは...
コネクターはこんなに小さい
ノキアの白黒液晶モデルのジャンクなども入手できるようです、秋葉原に行ったついでに物色してきます。
液晶ディスプレイ専門店? 秋葉原に店舗もあるようだ
2009-07-25
電気工事士試験の帰りに秋葉原に行ってLCDを仕入れてきた。NOKIA用。バックライトがないので薄暗い峠道では見づらいか? 車がすれ違う余裕のない峠道は木に覆われていて薄暗い。大垂水峠(東京)や箕面の猿山(大阪)では問題ないと思うが和田峠(東京)や鷹峯(京都)なんかはバックライトが必要になる可能性有り。
これなら昼間でも見えそう。Nokiaの白黒LCD
裏面を見てびっくり。端子らしき物がない。デジカメで拡大撮影して解った。基板側の端子に押しつけるタイプだ。
端子は???
うへっ
2009-07-27
特異な端子なので基板を作ることにした。100×100感光基板からブレッドボード用の基板2枚と実験回路基板1枚が取れた。
側面から光をあてるタイプのようだが裏面を光らせても良い
誤配線があるかも知れないのでブレッドボードで検証できるようにアダプター基板も作っておく
2009-07-28
新しい感光基板を使っての初めての失敗です。ベタパターン部の感光剤が飛んで塩化第二鉄溶液に溶けてしまいました。配線部分のパターンは切れてないのでこのまま使います。
汚い基板が出来た
2009-08-02
長穴は0.6mmのドリル穴を7~8個並べて、プラモデル用のニッパーとアートナイフを使って繋ぎました。
位置決めの出っ張り
長穴あけ
手作りしなくてもこのLCD用の基板を購入すれば良かったのですが、最終的には両面プリント基板を発注しないといけないので、そのための準備作業です。
端子はハンダメッキ。効果の程は不明。
完成したブレッドボード用実験基板
2009-08-04
このLCDは携帯電話用なので電源は4.2Vです(たぶん)。この中途半端な電圧を出力できる電源が無いのでブレッドボード用の電源基板を作りました。今後5V以下の中途半端な電圧を使用した回路が増えてくると思われるので1.2V,1.5V,3.0V,3.3,4.2Vなどよく使いそうな電圧のものを全て用意しておくことにします。
基板パターン
基板とLCDの接触の問題かコマンドを送らないと全く動かないのか解りません。消費電力が大きければ電源装置の電流計が動くのですがピクリともしません。
電源を繋いだだけでは何の反応も無し
2009-08-05
簡単な回路のはずが設計通りの電圧が出ません。抵抗値の計算を間違ったかと思いEXCELワークシートで計算してみたが間違いない。基板のショートや抵抗値をチェック。R1端子間の電圧は1.25Vのはずだが1Vに満たない。 ...LM337???? よく見てませんでした。パーツケースの中に4個もあったので、LM317だと勘違いしていました。
出力3.7Vのはずが7V出てる
まとめて作った方が楽なので4個作成
3.3Vと3.7Vを作る。残り2個の電圧は未定。
片面基板なので両オスピンはこんな具合に半田付け
小型に作ったのでブレッドボード上での専有面積も小さくて済む
こんな具合に使う
2009-10-26
Nokia5110の日本語情報はかなり少ない。英語ならたくさんあるが、それならデータシートを見てしまった方が早い。この液晶はフィリップスのPCD8544というLCDドライバーを使用している。
ブレッドボードで回路を組んで実験。左がデータシート。文字表示タイプでもグラフィックタイプでも液晶表示器はコマンドを理解するところから始めないといけない。
2009-10-27
自作基板の接触不良を疑って1週間前に秋葉原に買い出しに行ったついでに仕入れておいたキャリーボードで試してみた。原因はチップセレクトがLowでアクティブになると言うことに気づかなかっただけ。自作の基板でも動作確認できた。あとで流用しやすいようにに別ページこのLCDの情報を纏めておく
キャリーボード付きのLCDで実験。
自作基板でも動いた
続いてEEPROMの接続テスト。3線式というのでインターフェースはSPIだと思っていたが違っているようだ。3ビット「101」に続けて11ビットのアドレス、続けて8ビットのデータを送信せよ とある。合計22ビット。8ビットで割れない。
秋月で買った3線式のEEPROM
最終的にはMicrochip社のSPIインターフェース1MビットEEPROM(24AA1024)にする計画。このEEPROMでは仕様があまりにも違いすぎるので24AA1024を仕入れてからEEPROM廻りのコードを書くことにする。
8ビット単位で送受信する方式ではないのでPICのSPIインターフェースが使用できない
SPIインターフェースのEEPROMならこんな感じになる。コマンドやデータが8ビットで区切れる。
フォントはEXCELを使って作る。16ビットのフォントならLCDに3行表示できる。欲しい情報は...
-前回走行時との距離差
-前回走行時とのタイム差
-経過時間
速度もあった方がよいが市販のスピードメーターと併用するので必要性は低い。
高さ16ビットのフォント
2009-10-28
フォントデータを送り込んでみると綺麗に表示されたりされなかったり不安定。試しに2台を並列に繋ぐと両者ともに全く同じ画面になる。ぐちゃぐちゃ具合も全く同じ。...ということはプログラムのほうに何か原因があるはず
何故か化ける
2つを並列に繋ぐと両方とも全く同じになる
ロジックアナライザーで見てみると変な波形を発見。多くは正しい波形なのだが、一部おかしな物が混ざっている。LCDはクロックの立ち上がりでデータの1/0を判断するのでCLOCKの立ち上がりでDATAが変化してはいけない。
上段がDATA,2段目がCLOCK。CLOCKの立ち上がりでDATAが変化している。
mikroBASICのSPI関数を使用するのを止めてSPI関数を作り直したら正しく動いた。
正しく表示された。ついでに白黒反転させてみた。コマンドを1バイト送るだけで白黒反転できる。4カ所点灯するだけだがバックライトの輝度は必要十分。5Vでも3.7Vでも十分使える。
2009-10-29
EXCELでレイアウトを作る。
前回走行時との距離差
現在の走行地点において前回より早いか遅いか
前回走行時との時間差
スピード 計測タイム
の順番で表示することにする。タイヤが一回転するたびに殆ど全ての情報を更新する必要があるのでLCDの表示域と同じだけのバッファーをPICのRAMに確保する方式がシンプルでよい。
レイアウト確定
2009-10-30
レイアウトが出来たので液晶装置に送り込んでみる。ビットマップ表示のプログラムが一発で動くことは殆どない。1時間程度バグ取りをして完成。
バグ取り前の画面
完成画面。最下段の小さい文字は走行中には読めない。
画面の更新間隔を計測してみた。時速100kmで走行しているときにタイヤ1回転にかかる時間は77ms。計測すると107msかかっているので処理が間に合わない。画面の更新以外にも3個付いているEEPROMにデータを書き出す時間が約15ms必要になる。現在のクロックは10MHzなので4xPLLにすれば40MHzに出来る。40MHzの時は全ての処理を合わせて53msで完了出来るので時速100kmでもまだ余裕がある。40MHzでUSB接続したことがないので接続実験が必要。
画面1回分の更新時間は107.52ms
SPIでデータを送り込むのにかかっている時間は14ms
2009-10-31
PIC18シリーズなのでPLL2倍、4倍のクロック設定しかないと思ったが、PIC18F2550はもっと複雑な設定が可能だった。しかも最大周波数は48MHz。設定方法はデータシートを2~3ページ読まないと理解できない。USB接続可能なPICはUSBのクロック生成のために周波数設定が複雑になっているようだ。
PIC18F2550のクロック設定。
以前USBの接続実験をしたときの物がmikroBASICのV7.2ではコンパイル不能になっていた。再度サンプルプログラムを動かしてみる。動いたけどバッファーサイズを変更すると動かなくなる。
走行中にUSBは使用しないのでUSB関連機能はOFFにして電力節約したいのだが、USBから電源供給されているか否かの切り分けはどうすればいいのだろう? 電源電圧がUSB->5V,バッテリー->3.7Vなので電圧監視ICを外付けすれば容易に実現できるがソフトウェアで判断する方法は無いのだろうか?
USBだけの回路を48MHzで動かしてみる
Windowsとの通信テスト
2009-11-01
データシートにUSB電源供給/セルフ電源供給の切り分け回路図があった。結局外付け回路が必要。データシートのものはセルフ電源優先方式のようなので少しアレンジが必要。
データシートにサンプル回路があった
電源電圧がダイオードの順方向電圧だけ下がるので3.3Vで動かしてみる。特に問題なし。
USB接続するならUSBからバッテリーの充電も可能になる。充電ICは1個¥100もしないので追加してしまうことにした。リチウムイオン/リチウムポリマー電池の充電ロジックはシンプルで良い。充電ICのサイズは面実装タイプのトランジスターと殆ど変わらない。
充電回路も追加。トランジスターは2SA1015Yを使ってみたが黄色い矢印の経路で電流が漏れる。FETに変更すればOKか? Xマークはバッテリーの端子。
2009-11-27
テスターで抵抗値をはかっているだけのいい加減な確認だが、FETは殆ど電流が漏れないようだ。実験に使ったFETは秋月電子で仕入れたPチャネルMOS-FETのFDS4935A。
FETは電流が漏れないようだ
充電ICは発注済みだが、納期が来年???? 生産調整かな~
ミニUSBのミニコネクターは5ピンだった。通常のUSBは
1:電源
2:D-
3:D+
4:GND
だが、ミニUSBは
1:電源
2:D-
3:D+
4:ID
5:GND
の構成。IDはUSB On-The-Go(OTGと略すようだ)用の信号線でパソコンを使用しないでUSB機器同士を繋ぐときに使う。通常の回路なら何も繋がない。
USBは4ピンのはずなんだけど...5ピン?
2009-11-28
EEPROMの接続テスト。こんなの楽勝。 ...と思っていたら動かず。
SPIインターフェースのEEPROM 25AA1024
結局、原因は
1.書き込み許可コマンドを送ってなかった。I2CのEEPROMにはこんなの無かったぞ。
2.PICからクロックを送り出さないと、読めない。クロックを送り出すためには書き込み動作をする必要がある。
の2点。結果を素子シリーズに纏めておいた。
シンプルな回路で実験
PICkit2で書き込みをして、信号を解析。 変なコマンドを送ってる!! データシートを見るとWriteEnable。
2009-11-29
周辺機器の接続確認が出来たので今度は小型化。チップ部品を使うと液晶ディスプレイとほぼ同サイズに仕上げることが出来る。
44×40サイズに収まった
LEDはこの3カ所の丸くえぐられた部分に配置される
手持ちの水晶の中には面実装品の小さなものは無かった。面実装品なのにコメツキバッタくらいの大きさだったり、電源電圧が5Vだったりして使えない。秋月の部品は安いが小型化を意識すると使えない物が多い。
手持ちの発信器&水晶。全部秋月電子で仕入れた物。
3.2×2.5mmサイズの水晶発振器。Digi-Keyで探すとこんな小さい物がある。時間を計測するので周波数の安定性だけでなく絶対精度が必要。20MHzではダメで、20.000MHzとか言う具合に小数点以下の精度が欲しい。
2009-11-30
省電力を考えると、LCDの照明やホールセンサーの電源を切らないといけないので回路を追加。小さい基板なのでこれだけで基板の発注をかけるともったいないので一緒に面付する物を考えよう。何にしようか...
回路を見直して再度レイアウトやり直し。部品点数があと数点増えると自働配線がうまくいかなくなる。
2009-12-19
2月納期になっていた充電ICが届いた。Microchip社の納期表示は恐らく最長納期。殆ど例外なく予定納期より早く届く。
5V入力だと500mA流しても発熱は0.5W程度。特に放熱器は無くても良い。6V入力にするとさすがに放熱器無しというわけにはいかない温度になる。
この充電ICの最低電流15mAでテスト。
2009-12-29
OLIMEXに発注するためにレイアウトを再度見直し。LCDの外側の金具と基板のパターンが接触してはマズイので金具を避けるようにパターンを通さなければならない。実装密度はそんなに高くないが配線完了まで丸一日かかってしまった。
自働配線がなかなかうまくいかない。