google-site-verification: google3bd66dd162ef54c7.html
fc2ブログ

ArduinoでaitendoのFSTN液晶を動かす、続編

 前の記事でArduinoでaitendoのFSTN液晶(128x64)を動かす方法について解説しました。

 その記事を書いた時に気になっていたのがu8glibのライブラリの定義をどうするかです。この液晶のコントローラーチップはUC1701なのでそれに合わせた設定が必要です。

u8glibのdevicesのUC1701の部分 (クリックで別窓に拡大)
devices

 ソフトウエアSPI(SW SPI)の場合は下記(赤枠内の上段)で定義することになっています。 
 U8GLIB_MINI12864(sck, mosi, cs, a0 [, reset])

 そこで、sck=13, mosi=11, cs=10, a=9と設定。リセットを8に割り当ててもいいのですが、配線が面倒なので電源(3.3V)に接続。ということで、前の記事では次のようにプログラムしました。
 U8GLIB_MINI12864 u8g(13, 11, 10, 9); // UC1701用のライブラリを使用

 ところで、「PIC AVR 工作室 ブログ」の「6502 Laptop」という記事の最後に貼られていた [Cheap][Hack] a 2.50$ Chinese MP3 Player for its 128×64 mini LCDに書かれているプログラムを見るとUC1701をハードウエアSPIで使っているようです。

 ハードウエアSPIで使う場合は下記(赤枠内の下段)の定義を使うことになっています。
 U8GLIB_MINI12864(cs, a0 [, reset])

 実は以前はこの意味が理解できなかったのでソウトウエアSPIを使いました。しかし今回、この上のリンクの記事読んで判りました。ハードウエアSPIで使うピンは物理的に決まっているのでソフトで定義は不要(というか定義は不可能)。そこで残る cs, a0, [reset]だけ定義すればいい、ということになります。ソフト/ハードSPIのどちらであるかは引数の数で判るので名前はMINI12864だけで大丈夫ということのようです。

 つまり、U8GLIBの定義(前の記事のプログラムの11行目)を以下のように書き換えればいいはずです。
 U8GLIB_MINI12864 u8g(10, 9); // HW SPIで動かす

 これ、やってみるとちゃんと動きました。

 となるとハ-ドウエアSPIでどれくらい高速化されるのか知りたくなります。ということでオシロで波形を見てみました。

▼ソフトウエアSPIの場合
SW SPI
 上の波形がSPIのクロック(sck)、下の波形がデーター(mosi)、横軸は500ns/div.、オシロのトリガはデーターの立ち上がりで掛けています。
 
 この波形のクロック周期は1500nsなので転送速度は約660kbpsということになります。クロック波形にジッタがあるのは内部処理の周期が見えているのだと思います。

 話は飛びますが、この波形はアナログオシロで見ているのでジッタはすぐに判ります。でもデジタルオシロだとすぐに気付かない気がします。とは言ってもデジタルオシロは持ってないのでこの話はあまり自信無いです。

 話を戻して、ハードウエアSPIの場合の波形を見てみます。

▼ハードウエアSPIの場合
HW SPI
 横軸は100ns/div.です。 

 クロック周期は250nsになっていて、転送速度は約4Mbpsに上がっています。流石はハードウエアSPIです。

◆まとめ
 ということで、u8glibでのデバイスの定義の方法(コンストラクタの書き方)の理解が深まりました。

 ArduninoのハードウエアSPIを使うとビットレート4Mbpsでデーターが転送されることが確認できました。但しこんな速度でCPU(ATmega328)から連続的にデーターを送り込むのは難しいと思うので、この値はたぶん瞬間最大値なんでしょう。でも他に事情が無ければハードウエアSPIを使わない手は無いでしょう。
カレンダー
12 | 2015/01 | 02
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。
記事の内容のご利用は読者の自己責任でお願いします。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード