チャンネルデバイダーのVR制御(構想編9)

f:id:torusanada98:20180704072504j:plain

構想編9

リレー制御ブロックのソフト仕様が固まったので、コーディン、デバッグを行います。

コーディング

いきおいでソースをつくってきたのでだんだん心配な状況になってきています。変数名を適当に決めたうえに、何の変数かのコメントもいれず、不必要なサイズのメモリ確保をしている等、記憶が鮮明なうちに見直しすべき状況となってきています。リレー制御ブロックを組み込めば一通りの処理がコーディングされる事になるので、その後でソースの整理をしたいとおもいます。前回決めたソフト仕様に従ってコーディングを進めます。詳細なフローができあがっているのでコーディングはさほど大変ではありませんでした。

デバッグ環境準備

リレー制御のソフトの動作が簡単に目視できるように、4つのポートにLEDを接続します。構想編3に掲載したarduino UNOの仕様を見ると、1つのポートから最大20mAでポート合計で100mAまで電流を供給できるとされています。準備したLEDは標準電流20mAの赤のLEDですが、秋月の販売ページを見ると3mA程度の電流でも十分発光すると説明がありました。このコメントを信じて、電流制限抵抗を1kΩとしました。デバッグ環境はこのようになりました。

f:id:torusanada98:20180704072533j:plain

リレー制御デバッグ

まず最初に、リレーの状態が所定の設定になることを確認します。作成したスケッチをコンパイルし、細かな記述ミスを修正します。確認コンパイルがとおったところで、バイナリを基板に送ってデバッグ開始です。

f:id:torusanada98:20180704072619j:plain

写真のとおり、PB1/0はオン状態で、ATT倍率制御もできていません。唯一、ミュートリレー制御はできているようです。ソースを見直したところ、ATT倍率設定用のポート制御処理がまるまる入っていませんでした。処理を入れたところ、ATT倍率制御は動作するようになりました。残りは下位の2ビットの制御です。ソースを見直してもおかしなところが見あたりません。そう言えばこの2ビットはシリアル系のポートと共用されている事を思い出しました。

f:id:torusanada98:20180704072700j:plain

使用する為の設定が必要なのではと思い当たりネット検索したところ、この2ポートは使うべきではない事がわかりました。PCと接続しているUSB制御に使用されているとの事で、無理すれば使えない事はありませんが、他のポートが空いているのであれば他を使うべきとの事でした。急遽この制御用の4ポートPB0~PB3をPB8~PB11へ移動させました。回路は以下のとおりとなります。

f:id:torusanada98:20180704072957p:plain

ソースのポート設定を変更し、デバッグ基板のジャンパ配線を変更して早々にデバッグの再開です。この変更で基本的な制御はできるようになりました。

f:id:torusanada98:20180704072743j:plain

細かな修正点としては、音量最大時(ATTstate=8)にUpボタンを押した時に、減衰量設定は変わりませんが、リレー制御(ミュート処理)が起動していました。この条件時はリレー制御リクエストを除外して対策しました。減衰量切り替え時のミュート制御ですが、ミュートディレイ時間を現状は100msとしているため、LEDの点滅で正しく動作しているように見えます。念のためポケットオシロでタイミングの確認をしました。

f:id:torusanada98:20180704072820j:plain

PB11(muteB)とPB8の信号をモニタします。減衰量をきりかえてタイミングの確認を行いました。

f:id:torusanada98:20180704072907p:plain

減衰量切り替え前後それぞれ100ms間、ミュートがかかっている事が確認できました。あわせて単純なミュート動作のタイミングも確認しました。どちらも問題ありません。最後に1点気になった事は、マイコンの初期化までの間、PB8に電圧がかかっている点です。ミュートおよび倍率のリレー設定は問題ないので、実用上は問題ありませんが、原因を確認しておきたいため、ネット検索してみました。直接この点に言及した書き込みが見あたらない為、回路図を確認してみます。

f:id:torusanada98:20180704073602p:plain

PB8はマイコンの周辺LSIに直結されているため、このLSIの仕様と考えざるえません。最後に、早押しの確認もしてみましたが、異常動作もしませんでした。これで制御ソフトは一通り完成です。次回はソフトを含めた制御システムの整理と今後の方針を再検討します。

 

つづく(構想編10)