APR9600のコントロールを検討
APRO9600の動作確認ができたので、次はRZ-1のMR-C3024からどのようにコントロールするかを検討しないとRZ-1に搭載できません。MR-C3024のUARTとI2Cはすでに使用済みなので、そのインターフェイスは利用できないという制限があり、残るはデジタルI/Oポートで行なうしかなく、どのようにするか検討しています。
現在、考えていることは識別コードは要らない単純な通信でいいのではと思っています。したがって、SW1からSW8を区別するのを、パルス幅かパルス数を検知して行なう方法しかない。パルス幅で検知する場合、例えば、50msでSW1から400mSでSW8がONする。パルス数を検知の場合、パルス1個ならSW1がONになり、パルスが連続して8個ならSW8がONになるという通信であれば、可能なように思うが、何をトリガーにしてカウントするかが問題である。
実験して波形確認してみないと、確定的には言えないが可能性は高そうである。弱点はノイズによる誤動作が心配であり、テストしながら仕様を決めることにした。最初はマイコンのコントロールでAPR9600がうまく動作せずタイミングなどを調整してみました。
テストして決定したのが、以下のような通信仕様にしました。
・RA1のみ入力で、RB0〜RB7全てを出力にする
・発振は内部発振を利用
・パルス幅は50mSとする(SW動作なので高速動作させない)
・1コードは800mSとする
・1パルス目がスタートビットとして認識する
・2パルス目からSW1〜SW8に対応したビットにする
・パルス幅でもパルス位置でも検出できるようにする
→最終的にHになっているビットを検出して判定
・出力後、すぐにリセットする(8ビットまで待たない)
通信のタイミングチャート
マイコンは発振子を無くして内部発振を使うので、PICマイコンの16F628Aを利用します。16F628Aのソフトも書き込みましたので、MR-C3924でうまく動作するかをテストする必要がありますが、MR-C3024のデジタル系端子はバッテリー電源なので、5Vではなく7.5V位になりますから絶対最大定格を越えてしまいます。従って、三端子電源で5Vに落とさないといけないことになるが、モジュールに載せられるかが問題である。載せられない場合には、電源とGNDはアナログ系から接続すれば可能である。
現在、考えていることは識別コードは要らない単純な通信でいいのではと思っています。したがって、SW1からSW8を区別するのを、パルス幅かパルス数を検知して行なう方法しかない。パルス幅で検知する場合、例えば、50msでSW1から400mSでSW8がONする。パルス数を検知の場合、パルス1個ならSW1がONになり、パルスが連続して8個ならSW8がONになるという通信であれば、可能なように思うが、何をトリガーにしてカウントするかが問題である。
実験して波形確認してみないと、確定的には言えないが可能性は高そうである。弱点はノイズによる誤動作が心配であり、テストしながら仕様を決めることにした。最初はマイコンのコントロールでAPR9600がうまく動作せずタイミングなどを調整してみました。
テストして決定したのが、以下のような通信仕様にしました。
・RA1のみ入力で、RB0〜RB7全てを出力にする
・発振は内部発振を利用
・パルス幅は50mSとする(SW動作なので高速動作させない)
・1コードは800mSとする
・1パルス目がスタートビットとして認識する
・2パルス目からSW1〜SW8に対応したビットにする
・パルス幅でもパルス位置でも検出できるようにする
→最終的にHになっているビットを検出して判定
・出力後、すぐにリセットする(8ビットまで待たない)
通信のタイミングチャート
マイコンは発振子を無くして内部発振を使うので、PICマイコンの16F628Aを利用します。16F628Aのソフトも書き込みましたので、MR-C3924でうまく動作するかをテストする必要がありますが、MR-C3024のデジタル系端子はバッテリー電源なので、5Vではなく7.5V位になりますから絶対最大定格を越えてしまいます。従って、三端子電源で5Vに落とさないといけないことになるが、モジュールに載せられるかが問題である。載せられない場合には、電源とGNDはアナログ系から接続すれば可能である。
- 2011.10.26 Wednesday
- 音声合成
- comments(0)
- trackbacks(0)
- by takuo1