お兄ちゃんたちが、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

あたりのシリーズでやれば速くなるかな?


まぁ、今の仕事が一段落してからだろうなぁ・・・