お兄ちゃんたちが、SPIの入出力がわからないとデバッグできな~い!
とほざいている。
なんでも、上位機器(実はオイラが担当)の入出力バッファを見せて、
「ほら、お前さん、応答がおかしいよ!」と丁寧に指摘してやっても…、
「そんなはずは無いですよ~!そっちで取り損ねているんじゃないん
ですかぁ~?」と信用しないので放っておいてる。
まぁ、確かにSPIのプロトコルアナライザかモニタがあれば便利なんだ
ろうねぇ・・・そう思っていたところに、目に付いたのが、、、
PSoCの評価キットPSoCEVAL1。。。
ちょこちょこっと、PSoC デザイナーで、片手間工作。。。
まずはワークスペース作って、チップデザイン。
最初にUARTを貼り付けて、次にSPIスレーブを2つ貼り付けると、
0ブロックにUART、1ブロックにSPIが張り付くのだけども、、、
この状況でワイヤリングすると、評価キットの回路上で配線が遠くて
塩梅が良くない。。。なので、で、全部クリアして、UARTとSPIを貼り
付ける順番を換えると、張り付くブロックが入れ替わって、ワイヤリン
グの塩梅がいい。
モニターに使うので、2つのSPIスレーブはクロックとCSは共用する。
また出力はせず入力(モニタ)のみなのでMOSIのみ使用して、
MISOは使用しない。後はモニタ用のUARTはTXDだけあれば良い
けど一応RXDも配線する。レートは115Kで良いでしょう。
で、ここまででチップ内部の配線は完了。ジェネレートして終わり。
ここまでの所要時間は小一時間ほど。。。
次は、評価ボードのコネクタからターゲットの信号をあたるプローブ
を作成する。。。もっとも、プローブと言っても大したものじゃなくって、
♂コネクタにクリップリードをハンダ付けして、ホットボンドで固めたもの。
これの作成時間は、30分くらい?
で、最後にファームウェア。。。
単純に2つのSPIスレーブから受信したデータを16進数文字列にして
UARTに吐き出すだけのもの。Cのソースコードにして100行前後かな?
これの作成とデバッグ時間は1時間半くらいかな?
深夜1時にはじめて、4時頃に完了した。。。
で、ターゲットに接続して動かしてみると、、、確かに動く事は動くのだ
けども、、、ものの1秒でバッファがオーバーフローしてしまう。。。
原理も、構想も?よかった。。。しかし、プロセッサが遅すぎた。。。
実は最初に目に付いたのは、PSoCでは無く STBeeだった。。。
おそらく、STBeeだったらスピードもメモリ容量も申し分なかったのだろ
うけども、SPIの設定が面倒そうで、、、ユーザーモジュールで簡単に
できそうなPSoCに流れてしまった。
今回は PSoC1 だったけど、同じ程度に便利に使えるのなら、PSoC5
あたりのシリーズでやれば速くなるかな?
まぁ、今の仕事が一段落してからだろうなぁ・・・