目次

SubBrainマイコン

 SubBrainマイコンは、ARMコアをもつADcU7026を利用します。



 書籍名が変更になりましたが、DesignWaveMagazineの2006年
 3月号の付録になっていたマイコンボードを2枚使います。

 同じARM系のLPC1343も利用できるようにします。



 各ボードのピン配置を見て、接続マイコンの
 インタフェースを考えます。


ADcU7026のI/F

 左右の34ピンの信号配置を見てみます。  CN2 _________________________________ | A01 | ADCin10 | B01 | ADCin9 |   | A02 | ADCin8 | B02 | ADCin7 |   | A03 | ADCin6 | B03 | ADCin5 |   | A04 | ADCin4 | B04 | ADCin1 |   | A05 | AGND | B05 | AGND |   | A06 | +5V | B06 | +5V |   | A07 | ADCin0 | B07 | DACout0 |   | A08 | ADCin11 | B08 | DACout1 |   | A09 | COMPin0 | B09 | DACout2 |   | A10 | COMPin1 | B10 | DACout3 |   | A11 | AGND | B11 | AGND |   | A12 | COMPpout | B12 | DACref |   | A13 | AGND | B13 | AGND |   | A14 | IO4[4] | B14 | IO4[5] |   | A15 | IO4[2] | B15 | IO4[3] |   | A16 | SDA1 | B16 | SCL1 |   | A17 | IO1[4] | B17 | 3.3V | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  CN3 _________________________________   | A01 | IO1[5] | B01 | IO4[1] |   | A02 | IO4[0] | B02 | IO1[6] |   | A03 | IO1[7] | B03 | IO2[2] |   | A04 | IO2[1] | B04 | IO2[7] |   | A05 | IO3[7] | B05 | IO3[6] |   | A06 | +5V | B06 | +5V |   | A07 | IO0[7] | B07 | IO2[0] |   | A08 | IRQ7 | B08 | IO2[0] |   | A09 | IO3[5] | B09 | IO3[4] |   | A10 | nRESET | B10 | IO2[6] |   | A11 | DGND | B11 | DGND |   | A12 | IO2[4] | B12 | IO2[5] |   | A13 | IO3[2] | B13 | IO3[3] |   | A14 | IO3[0] | B14 | IO3[1] |   | A15 | IO0[6] | B15 | IO0[2] |   | A16 | IO4[6] | B16 | IO4[7] |   | A17 | IO0[1] | B17 | IO2[3] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IO3[5]/PWM2L IO4[5]/PWM2H IO3[2]/PWM1H IO3[3]/PWM1L IO3[0]/PWM0H IO3[1]/PWM0L

アクチュエータとの接続

 アクチュエータ担当は、ATtiny2313です。  マイコンATtiny2313は、シリアルインタフェースで与えられた  Duty比を利用して、モータを回転します。  SubBrainのADcU7026とは、シリアルインタフェースで接続します。  ADcU7026のコネクタには、SIN、SOUTが出ていないので、シリアル  インタフェースコネクタを利用しまs。基板から、線材を利用し  引出します。  ノイズがのることでの、文字化けを防止と論理レベル  を確保するために、次のバッファを入れます。  バッファを入れることで、シリアルインタフェースで  使う電圧範囲(+12V〜-12V)から0〜4V程度にします。  送信だけに限定するのは、モータの回転速度を与える  だけで充分という考えからです。  回転速度は、左右のDuty比をコマンドで与えて、制御します。  コマンドは、次の仕様にしました。  DLLRR'\r'   D 1文字コマンド(Dutyの頭文字) LL 左のDuty比を16進2けたで表現 RR 右のDuty比を16進2けたで表現   '\r' 1コマンドとパラメータの終わりを示すデリミタ  プロトコルは、以下とします。  コマンドとプロトコルを確定したので、後で  ATtiny2313のファームウエアを書き換えます。

BCS(BarCodeScanner)との接続

 BCSは、センサーボード上のATtiny2313が制御を担当し  その時点の8ビットデータを出力しています。  ADcU7026は、自分のタイミングで、BCSの  出力する8ビットデータを入力します。  8ビットの入力は、10ピンコネクタを用意し  次のピンアサインで対応します。  ADcU7026のファームウエア中に、I/Oポートの  入出力を設定する関数と入力処理関数を用意  します。  入出力は、起動時のポート指定で設定すれば  充分なので、BCSからデータを入力する関数を  定義します。 UBYTE get_bcs(void) { /* PORT2の値をリードし、出力 */ }

GBC(GameBoyCamera)との接続

 GBCは、センサーボード上のATtiny328が制御を担当し  ラインアドレスを与えると、対応するビットデータを  出力しています。  ADcU7026は、自分のタイミングで、GBCの  出力する8ビットデータを入力します。  ラインアドレスは、0〜63ですが  必要なのは、8ライン程度なので  アドレスとして、3ビットを指定します。  3ビットのライン指定と8ビットの入力が  あればよいので、20ピンコネクタを用意し  次のピンアサインで対応します。  ADcU7026のファームウエア中に、I/Oポートの  入出力を設定する関数と入力処理関数を用意  します。  入出力は、起動時のポート指定で設定すれば  充分なので、GBCからデータを入力する関数を  定義します。 UBYTE get_gbc(UBYTE reg_adr) { /* レジスタ番号を出力 */ /* ディレイ */ /* PORT3の値をリードし、出力 */ }

ホストとの接続

 ADcU7026とホストになるPCとR8C/Tinyには、シリアル  インタフェースがあるので、通信ポートを使う場合は  ケーブルを利用して接続します。  R8C/Tinyからは、1ビットのレベル信号で、ADcU7026を  制御すればよいので、次のようにLEDをモニタにしてから  論理レベルを確保して接続します。
目次

inserted by FC2 system