ロボットの頭脳は背中にある(笑)

このロボットの頭脳は機体背面に収まるCPUボードMR-C3024(HITEC社製)。ROBOBASICプレインストールでお手軽にプログラム可能な環境はとても良いが、CPUがATmel社のATmega128Lという汎用品であるのに注目して別のプログラム環境を探ってみた。判ったところから、随時追加する予定。

CPU内のFlashメモリ書き換え
 ノーマル状態のMR-C3024は、CPU内のFlashメモリにROBOBASIC処理系が格納され、CPUと基板上でI2C接続するEEPROM(AT504 24C512W)にコンパイル済みのBASICプログラムが格納される。新たなプログラム環境を手に入れるには、ROBOBASIC処理系を消去せねばならない。(一度消去したら元に戻せない)
 MR-C3024の回路図 - 作成者に感謝 m(_ _)m -
(1)SPI(Serial Peripheral Interface)
 SPIはICチップ間の通信規格(※)で、これに準拠した通信機能を持つATmel社CPUなら、シリアル通信でチップ内のFlashメモリ書き換え(プログラム)も可能
※必要範囲内でしか理解してない(^_^;)ので、詳しくはリンク情報等を参照してください

(2)MR-C3024のSPI関連ピン(右の写真)
  • RSTは、ピンではなく基板上のラウンドなので、リード線等を半田付けして外部と結線可能にする
  • ATmega128はFlash書き換え専用のMISO/MOSIを別に持ち、それがPDI/PDOピン
  • メモリー書き換え時の電源は、CPUボードに接続された標準バッテリーから供給される
  • 回路図から判るように、バッテリーと直結のV+(モーター用)と、定電圧回路を介して供給されるVccがある


 ※Vcc=5v

書き換え用のツール
(1)有名なChaNさんのサイトを参考に自作したものの、USBシリアル変換ケーブル経由だと極端に書込みスピードが低下すると判明したので、やむなくUSB対応製品を購入
  → 共立電子産業 AVR WRT

(2)製品付属のソフトで書き込む際、設定画面で周波数指定を1MHz超(初期値)、且つUSB転送タイミングの初期値(=ゼロ)を3まで遅くしたらうまく動作した。

書き換えツールとMR-C3024の接続
MR-C3024のピン配置にあわせ、書き換えツール付属のATmel標準6Pinケーブルを切断して専用ケーブルを自作。コネクタも汎用品を加工。
右写真の説明
  • 茶=MISO
  • 赤=USBからの電源(不使用)
  • 橙=SCK
  • 黄=MOSI
  • 緑=RST (コネクタのピン部分だけ抜き取って接続用端子にしたが、小さいミノムシクリップががあればよいかも)
  • 青=GND

※この記事が何かのお役にたつことを願っていますが、記事内容についてのいかなる保証もしません