ノキア5110LCDユニットも、ノキア3110LCDユニットのどちらも、
ピン配列が異なるだけで信号や制御方法は全く同じである。
でも、ノキア5110の方がキャリー基板があるので扱いやすい。
そして決定的なのは、剥き出し状態のノキア3110LCDユニットは、
カメラのフラッシュを発光すると、
そのノイズだけでLCD内部のフィリップスのコントロールICが停止してしまい、
リセットをかけるまでは、
表示がでなくなってしまう事だった!
そもそも、ISP通信は通信相手を並列に何個か接続する事ができ、
チップ選択信号で相手を選択して通信が行える。
ただし、通信可能な距離は短いので、主に基板内のチップ同士の通信に使われている。
そこで、ノキア5110を2枚とノキア3110を1枚の3枚を同時に繋いで実験してみた。
全てに同じ表示がちゃんと出たので、
写真を撮ると3枚のうちの3110だけがフラッシュを発光すると消えてしまう。
5110は単独でもフラッシュで消えた事が無い!
これで、PICがノイズを受けて止まっているのではなく、
3110内部のコントローラーがノイズで止まってしまっている事が証明された様な物だ!
だか、中身のチップは一緒ということは、
あのキャリー基板に使われているアルミケースがノイズから内部のICを守っていると云う事になる。
接触不良の無い物に当れば、
5110LCDキャリー基板付きの方がやはり扱いやすい。
さて、気圧計をPICC Lite(HI-Tech社製 PIC用無償版C言語)で記述するにはどうしたら良いのだろうか?
なあーんか、見当もつかない!
何だろう?このもやもや感は・・
アマチュア電子工作屋の私は、
ここでふと悩んだ!
C言語で大量のデータを保管するのには・・配列?・・それは、PICの何処に?
あっ!
PICは、Pentium等のフォンノイマン型アーキテクチャ
(メモリーはプログラムだけの記憶領域ではなくて、
演算データや文字等の記憶にも使われていて、
命令とデータを区別する事無く格納している方式)
では無く、
プログラムメモリーとデータメモリーが完全に分離されたハーバード型アーキテクチャだった!
しかも、16Fあたりでは数百バイトから多くても1キロバイト以下しか無い!
事実、今回のサンプル駆動回路では、PIC 16F628Aが使用されており、
プログラムフラッシュメモリー 2048ワード、RAM 224バイト、EEPROM128バイトしか無い!
今回の5110は48×84/8で504バイト!
配列なんか使ったら、1画面分の映像はもちろん、
数値文字のドット情報を記憶するだけで足りなくなってしまう!
ほーら見ろ!C言語なんかで大量なデータは扱えないんだよ!てか?うーん!
そんなはずは無い!
アセンブラーに最も近く、
システムまでも容易に記述できるC言語のコンパイラーがそんなに非力だろうか?
実は、ちゃんとアセンブラーの様にC言語にコンパイルさせる為の指令方法があったのだ!
つづく。
(Jun. the 26th 2010)
|