本日は、トホホな「疑問」というより、トホホな「失敗」であります。久しぶりにPSoC 5LP Prototyping Kit, CY8CKIT-059 を取り出してきて、使おうとしたのです。「精度のよい」デルタ・シグマ型のADを使おうとしたのですね。蛇足ですが、廉価版?のPSoC4との違いは、こういう搭載アナログ要素の違いで明らかです。この間、少し時間が取れたときに、PSoC 5LP Prototyping Kitにはピンヘッダの足を半田付けしてあります。ただ、このキットの横幅は幅広で、普通の片側5つ孔のブレッドボードに刺すと、使える孔が1列+2列くらいになってしまい、使いずらいです。そこで、片側6つ孔のブレッドボードも注文してありました。そこで、このボードに「ぶすっ」と刺して作業を始めたわけです。
※「トホホな疑問」投稿順Indexはこちら
ちゃんと奥まで刺さらなかったのですが、長めのピンヘッダを取り付けてあり、「手ごたえあった」ので気にせず使い始めたのがツボにハマる原因でした。どちらかというと久しぶりに
PSoC Creator
使うので、使い方はどうだったかね、などとそちらの方に気を取られていたのです。デバッグ用にUARTを配置しまずは通信できることを確認しました。
キットのハードはちゃんと動いておるね。
これでボードの方からは意識が飛んでしまいました。デルタシグマADCを始め、アナログマルチプレクサ、電圧出力型のDAC、オペアンプなどを配置してコンフィギュレーションします。ドキュメントを読みながらパラメータを決定し、初期化コードを自動生成、APIを使って動作を記述していきます。その過程で、
アナログマルチプレクサ使ってADCに突っ込む信号を切り替えるときの注意点
みたいなところの地雷を踏みつけて、どんどん気持ちは内側に向いてしまいました。データシートをよく読めば書いてあるのですが、アナログマルチプレクサで、複数のアナログ入力信号を切り替えてADCに入力する場合、適当にマルチプレクサ切り替えると、前の信号が残っていて次の信号の測定結果に影響が出てしまうのでした。切り替える前に、毎変換毎に独立して変換できるようなモードにしておき、切り替え前に一端変換を止め、切り替え後に再度変換開始するようにすれば問題なかったのです。これは直ぐに気付いて直し、これで動く筈、と思って動作させたのですが、いけません。
デルタ・シグマADCの設定が悪いんじゃろか、それともDACから信号が出ていない?ずるずると見て回るのですが、悪いところは見つからない。仕方がないので、ひとまずDACやオペアンプは退場させ、ADC側のみ見始めたのですが、駄目、変な結果が出続けます。マルチプレクサにも退場願い、そのうちには、制御の難しいデルタシグマ型ADCから逐次比較型のADCに変更までして動作を見ましたが分からない。
アナログ要素を図面の上で簡単に取り換えられるPSoC Creatorならでは
の彷徨と言えましょう。箱を取り換えて、アプリ再生成すれば、比較的簡単なコード書き換えで皆「動く」ようにできるので、ついつい、それに頼って内部をああでもない、こうでもないといじり続けることしばし。
ふと、ブレッドボード上、外付けの抵抗2つに疑いの目を向けました。何のことはない抵抗です。間違いようもない、と頭から思い込んでいたのが全ての敗因でした。調べてみた結論、
PSoCの端子と外部回路(抵抗2つ)が接続していない!
です。原因は、Prototyping Kitに半田付けしてしまった長めのピンヘッダがブレッドボードの接点とコンタクトが取れていなかった、のでした。
これに気付いた後、別なブレッドボードに同じPrototyping Kitを刺してみたのですが、そちらでは、ちゃんとコンタクトがとれ、動作するのです。しかし、幅広片側6孔のブレッドボードだと奥までささらずコンタクトがとれません。
ブレッドボードに刺すなら「細ピンヘッダ」
と言われていたのは心の片隅にあったのです。しかし、「普通の」ピンヘッダでも今まで無理やりなんとかなっていたために、大丈夫だあ、と思い込んでいのでした。
すみません、今後は心して気をつけます。