「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



CoCoNet液晶工房でこの間買っておいたnokiaの
5110液晶(白黒)。
ブレッドボード用のアクセサリを先日作ったので、
あとで試してみようと思ってPCD8544のデータシート
を眺めてみる…。

そもそもがSPIで制御できるっていう理解で買って
きたので、それほど苦労は無いだろうと思って
眺め始めたんですが…あれ?読んでも頭に入って
こないぞ???

信号名が違うからか?いや、タイミングチャートが
やっぱりSPIとはなんか違う…

なんだかんだで頭からお尻まで30分くらい何度も
何度も眺めてしまった…
ちょこっと眺めて、適当なデータをぶっこんで
何か表示させて満足満足…って行くはずだったのに…。
(TへT)


よーく眺めてみて、ようやくピンと来た。

SPIプラスαの信号なんだな。これ。

クロック信号、マスターイン、マスターアウト、
スレーブセレクトに相当する信号に加えて、
もう1個信号があるんだな。送信中のビット列が
データなのかコマンドなのかを判別するビットが。
ここが引っかかってたんだな。
D/C信号ってやつ。解った。解った。

で、D/C以外の信号はまさにSPIそのまま。
SPIモード0ってやつだ。
(クロック立ち上がりで取り込み、クロック位相
 は正論理)


こうなると、次はプログラムの構想に。

例によって山根さんの本を引っ張り出す。
SPIのページ。

I2Cと違ってやっぱ簡単だな。
それにしても、AVRのSPIは送り出しの
順番が「MSBから」だけでなく、「LSBから」
にもできるんだなぁ。
あまり他では聞いたことが無い気がするなぁ。

まぁいいや。

とにかく、SPIをモード0で使って、MSBから
順に送り出して、8ビット目のクロックとあわせて
データ/コマンドを識別するビットをいっしょに
送ればいいわけだな。
といっても、SPIはハードウェア処理させたいから、
1バイト送り出す事前にデータかコマンドかのビットを
設定しておくっていうのが現実的な方法だな。
これはこれでヨシと。


もう1点微妙なところ。データシート見てると
ページによってはVddには2.7~3.3V、
ページによっては定格7V(入力端子はVdd+0.5V)
って書いてあるんだけど、どっちなんだろう?
5Vで使いたいんだけどなぁ。

LEDの方は適当でもいいとして、コントローラー
の電圧と入力信号の電圧って、5VがOKなのか
どうなのか… 5Vつないだ途端に画像じゃなくて
煙が出たら嫌だからな…


arduinoにPCD8455用ライブラリが公開されている
からこれも試してみたんだけど、arduinoは
5Vのしか持ってないからな…
3.3Vだけだとしたら、3.3V用のarduinoを
使えってことなのかな?

http://www.arduino.cc/playground/Code/PCD8544
こっちにはやっぱり3.3Vって書いてあるみたい…
うーん。



コメント ( 4 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする



« CADデータ... TINY23... »
 
コメント
 
 
 
Unknown (Sim)
2009-02-27 00:38:42
こんにちは
aitendoさんのは、以前使ったことがあります。ロジックレベルは3.3Vです。これを内部で昇圧してLCDの電源にしています。なので3.3Vを入れてやります。5V系との接続はレベル変換しないといけないはずです。
 
 
 
Unknown (nekosan)
2009-02-27 00:56:16
simさん、ありがとうございます。
3.3Vですか。

すると、arduinoのライブラリ(非公式ライブラリ)で使っている環境もきっと3.3Vのarduino用なのでしょうね。

うーん、どうやってレベル変換しようかな…

74LCX541を幾つか買いこんであるんですが、sopなのでブレッドボードでちょっと…ってわけにはいきませんからねぇ…

またブレッドボード用のアクセサリを1個作ろうかな… arduinoを3.3Vに接続するための…。

もしくは3.3V動作のマイコンで実験した方が早いかな…。うーん。

あ、抵抗の分圧っていう手も!
通信速度を落とせばこれでも何とかなるんじゃないかなぁ…
 
 
 
Unknown (Sim)
2009-02-28 02:07:55
こんにちは
spec的に内蔵発振のAVRにぴったりです。
転送速度のmaxが4Mbpsで、8MHz AVRのSPIも最高速度4Mbpsで3.3V動作というあたりです。SPIモジュールのあるATMega88とか168あたりがよさそうです。
制御に使うのが5本なので、ぴったりのICがないですね。
 
 
 
Unknown (nekosan)
2009-02-28 09:25:16
simさん、ありがとうございます。

おっしゃる通り、3.3Vの8Mhzだとシリアルクロックが丁度4Mhzでピッタンコですね。

簡単なプログラムをでっち上げて、とりあえず映ることだけでも確認してみようと思います。

デッドストック状態のMEGA8がいいかな…
 
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。