Tuesday, October 02, 2007

SPI とりあえず動いた

 昨晩、SPI による PSoC を使った AD9834 制御に成功。これまで動かなかった原因は、前に書いた通り SCLK の扱いが間違っていたこと、ひいては、SPI で使うモードについての理解が不足していたこと。
。防備録も兼ねて、今回見つけた資料を貼っておこう。

http://japan.maxim-ic.com/appnotes.cfm/an_pk/502

http://www.adilam.com.au/Ramtron/Application%20Notes/SPI%20Bus%20Compatibility2.pdf

 これらの資料で、SPI のモードとSCLK, MOSI/MISO, /CS (/SS) の波形の関係、モードの表記方法などについて理解を深めることが出来た。理解を補強するため、テスト用にと先週末に秋月で買ってきた Microchip 社のSPI 接続タイプの 12 bit ADコンバータ MCP3208 を使ってみることにした。PSOCEVAL1のポテンショメータを回すと電圧の変換結果がLCDに表示されるという単純なものだが、SPIMモジュールを使う方法、GPIO をソフトから叩く方法、いずれでも上手くいった。

 それにしても… AD9834 のデータシートに載っているタイミング図とマイクロコントローラとの接続方法の説明、斜め読みすると「はまる」。後者については、CPOLとCPHA の設定がどうも上のリンクで解説してたものと逆な気がもする。まあとにかく、データシートはきちんと読まなくてはいけないということだ。

Labels: ,