FM3のSPIを使ってみる

秋月にAQM1248Aを使ったSPI接続のLCDモジュール(とピッチ変換キット)が売られていたので、これに何かを表示させてみることにしました。

FM3でSPIを使う場合、CSIO(クロック同期シリアルインターフェイス)を使います。CSIOのモードはノーマル転送(I), ノーマル転送(II), SPI転送(I), SPI転送(II)の4種類あります。これは一般的なSPIモードと対応付けると下表の様になります。Spansion特有の書き方なのか、名称が紛らわしいです。なるべく一般的に出回っている規格に沿った名称にして欲しいものです。

SPI_01.png

ST7565R(AQM1248AのLCDコントローラ)はどのタイプを受け付けるかというと、ノーマルレベル=High, 立ち上がりエッジ読み込み…いわゆるmode3ってやつですね。つまり、FM3で実装する場合はノーマル転送(I)を使用する事になります。

ST7565RのSPI接続のクロックは、Max=20MHzの様です。一方、MB9AF312KではデータシートよりMFSはAPB2バスクロックに繋がっていてペリフェラルマニュアルの CHAPTER 2-1: クロック よりPCLK2の値になります。今回はPCLK2=20MHzとするので、ボーレートジェネレータの制約(注意事項にリロード値は3以上とあります)によりMAX=5MHzとなります。APB2バスクロックの上限は42MHzなので頑張れば8MHzとか出るみたいなので余裕があればやろうかな…。

SPI_03.png

USBSTICKのCSIO端子で比較的自由に使えるのが SOT3_1, SCK3_1 です。ch3はFIFOなしチャネルになります。AQM1248Aは出力をしないので、SIN3_1は必要ないです。これらを有効にする為に、GPIO周りの設定をします(PDOR5, EPFR07等々)。ペリフェラルマニュアルの CHAPTER 10:I/Oポートの 図2-1 を見るとだいたい必要なレジスタが分かってきます。もちろん、該当の章の内容をしっかりと読んでおかないと思わぬ落とし穴にはまってしまうことが往々にありますので、読むべき所は読んでおいてください。

SPI_04.png

CSIO関連レジスタの設定は表3-1に概要が記載されています。今回はFM3をマスターとして使用するので、SCR:MS=0, SMR:SCKE=1 です。

SPI_02.png

上記の表で決定しないといけない値はそれぞれのレジスタの詳細を参考にして設定します。注意点は…設定してから送信、受信を開始するって事くらいでしょうか。5MHz, 8bit, MSB firstで 0xA0 の出力が出ているかをオシロで確認してみました。やはりオシロで確認するのが一番ですね。といいつつ、まだまだ岩通のオシロ(UI)に慣れてなく、マニュアルを手放せませんが…。

SPI_07.jpg SPI_05.png

実は素のUSBSTICKとAQM1248Aを繋ぐのには問題があります。USBSTICKはその特性を生かして5Vで駆動されているのですが、AQM1248Aは3.3V動作なのです。USBSTICKの電源を外部から取り入れて3.3V動作させるというのもありるのですが、それではUSBSTICの手軽さが失われてしまいます。なので、今回はTC74VHC244FTを使って5.0V→3.3Vの電圧変換をすることにしました。入力側が5VトレラントになっているICなんです。幸いAQM1248Aは入力しかしないのでこのICで十分です。USB用に3.3Vを作っているのでVccを5.0Vと3.3Vで切り替えられる様に作ってくれても良かったのに…。

SPI_08.jpg

制御線はCS, RS, SCK, SOTの4本です。CS, RSはGPIOとして駆動させたピンを使います。

秋月の説明書ではAQM1248Aの昇圧様のコンデンサは2ms置きに段階的に有効にしていく様に記載されています。メーカ推奨手順と書いてありましたが、この2msが記述されている仕様書を見つける事ができませんでした。今回のプログラムでは2msという短い時間を作る構成になっていないので、min=10ms空けています。2ms以上なら良いだろうとの判断です。

SPI_06.jpg

画像データはWindows付属のペイントでモノクロ・ビットマップ画像を作成してモー配。でC言語用の配列に変換して使いました。そうです、自前品の宣伝です。便利ですよ~(^^

ソースコードは【物置】に置きました。
DMA転送を絡めてもよかったのですが、少し凝った作りを考えてますのでそのうちチャレンジしてみようと思います。
スポンサーサイト

tag : FM3ペリフェラル

コメントの投稿

非公開コメント

黒ねこ時計 くろック D02
プロフィール

jujurou

Author:jujurou
運営HP:チャコの部屋
Twitter:jujurou

カレンダー
01 | 2017/02 | 03
- - - 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 - - - -
最新記事
最新コメント
カテゴリ
ユーザタグ

RaspberryPi ぺるけ Linux TRminiWatterPart4 トランジスタ式ミニワッター MPD イーサネットコンバータ OpenOCD DAC FON2405E buildroot FM3ペリフェラル BeagleBoneBlack library FM3評価ボード ODROID-U2 mingw OpenGL TL-WR700N Edison bitbake KiCad VMware シングル FM4 ミニワッター 6N6P 計測 

月別アーカイブ
ランキング

FC2 Blog Ranking

カウンター
検索フォーム
リンク
RSSリンクの表示
QRコード
QRコード
ライセンス
クリエイティブ・コモンズ・ライセンス
Twitter