前回のPSOC1を使用したSPIモニタは、MCUのRAMが256バイトと
あまりにも非力だったこともあり、ものの1秒ももたずにオーバーフロー
すると言う実用性にかけたものでした。まぁ、冷静に考えれば当たり前
なんですけれどもね。。。
なんと言うか、実証実験をしてみたかっただけなのさ・・・(つよがり!)
で、前回の玉砕に、いささか気分が萎えていたのだけれども、、、なんと
なく気分も回復したので、半月前に入手したよりパワフルなキットを使っ
て、テスト用のSPIマスタ機器を作ってみようと思った。
↑こいつが、PSOCの1/3/5の評価が出来るキットで、一番高性
能なPSOC5を使用する場合のコアは、Cortex-M3のRAM64K
バイトになる。なので、前に玉砕したPSOC1に比べれば、かなーーり
高性能なはず。
で、ソフトをインストールして、早速使ってみるわけなんですが・・・
前に使っていたPSOCデザイナーとは少し勝手が違うけども、考え方
はそれほど代わりが無いので、数時間ほど試行錯誤して回路を構成
できました。
「回路を構成」と言ってしまうと、何か凄い事をしているようだけども、
実際はトップデザインシートに、ライブラリから必要なペリフェラルを選ん
で選んで貼り付けるだけ。
↑構成は、こんな感じになる。(クリックしてオリジナルサイズでどうぞ)
送受信可能なUARTが一つ、タイマが一つ、SPIのマスタが一つ、
テスト用に、SPIのSSは使用せずにGPIOのレジスタに割当てた1ビッ
トのポートをSSとして使用する。
各ペリフェラルのプロパティ画面では、それぞれのペリフェラルの設定を
書込める。
この後、各信号をMCUチップのどのピンに割当てるかを設定するのだ
けれども、JTAGや電源、リセットなどの不都合なピンを除けば、ほぼ自
由に割当てる事ができるので、かなり楽になる。
ここまでやって回路ジェネレートすると、MCU上にペリフェラルが構成さ
れるとともに、各ペリフェラルの初期化コードやドライバAPIも自動的に
書いてくれる。 これ、思い切り便利!
で、これにあわせて、とりあえずUARTだけハードウェアの結線を行う。
↑こんな感じで、オレンジ色のラインがUART用のジャンパ線になる。
UARTのTXとRXをそれぞれRS232Cドライバまで接続しているのと、
RS232CドライバのRTSとCTSをショートして、ホスト側がハードウェ
アフローを行っても大丈夫なようにごまかしている。
UART用の配線はこの3本だけ。
SPI用の配線は、ソフトがある程度形になってからする事にして、
とりあえずUARTが動くかどうかのテストプログラムを書く。
↑最初は、こんな感じになる。(クリックしてオリジナルサイズでどうぞ)
実際の所、ジェネレータが出力した main.c を少しいじっただけだったり
する。
コメントアウトされていた割り込みを許可関数を生かして。
UART_Start() と UART_PutString() の2行を追加しただけ。。。
で、動かしてみたら、意外にも?と言うか、当たり前に、作りっぱ~な
一番最初のは、当然の事ながら全然動かないので、30分ほど悩みま
した。はい。
ソースはこねくり回しましたが、最終的にこれでOKでした。
サンプルコードが動かないので、ハードを疑った所、回路図を確認する
とRS232CがDCE仕様でした。いままでDCE仕様にはあまりお目に
かかった事が無かったので、てっきりDTE仕様と勘違いして、PCとクロ
スケーブルで接続していましたが、ストレートケーブルを使用したらあっ
さりと動きました。はい。。。何事も、確認は必要ですね。。。
もっとも、いまは TEST TEST TEST ってPCで表示されるだけですけ
れどもね。
ここまで、約4時間くらいかな?
まぁ、初めてにしては上出来?
興味と情熱が保てれば、、、つづく。。。
それより仕事先を探さねば・・・