Top Page Index About Link Mail Form このページの応用機器製作します

R8Cプログラマ(ライター)の製作

2009.10.9
2009.6.7

R8Cを使ってみませんか

 Webで見る限り、R8Cシリーズで自作している人はあまり多くないようなのでちょっとプッシュしてみようかと思います。

 R8Cシリーズは開発ツール HEW(試用版は 64KB制限あり)が公式サイトからダウンロードできますし、登録すれば KPITの GCC(制限なし)も使えます。また、チップは最近では RSコンポーネンツ秋月(いずれも R8Cで検索してください)でも購入できます。DIPタイプが無いのが初心者には辛い所ですが……。(MB-R8CSという物が サンハヤトから出てます。SR8C15CPは売り切れらしい)

 プログラミングツールとしてルネサスは E8aを提供しています。1万5千円程度と、業務用としては安価なのですが、アマチュアには少し高いかも。そこでプログラマ(ライタ)を作ってみました。

R8Cシリアルプログラミングの方法

R8Cシリアルプログラムの方法  R8Cのシリアルプログラミングはシリアルポートを使う方法と MODEピンだけを使った方法の2通りあります。

 シリアルポートを使う場合は左の画像 Fig.1のような回路になります。プログラムモードと通常モードの切り替えスイッチを MODEピンにつなぎます。SW1を切り替え、SW2を押してリセットするとプログラムモードになります。TXDと RXD(シリアルポートが複数あるチップはデータシート参照)をパソコンのシリアルポートにつなぎます(RS-232C←→ロジックレベルに変換回路とか USBシリアル変換器とかは必要)。特殊なプログラマは不要ですが、XIN, XOUTに数MHzの発振子をつなぐ必要があります。

 この状態で書き込みをする為のパソコン側のソフトは flashsta.exeというのが出ていますが、正直、あまり使い勝手がよくありません。そこでこれも作ってしまいます。→r8cprog / r8cprog-GUI

 MODEピンのみを使う書き込みは MODEピンに半二重双方向でシリアル信号を載せることで行います。その為、Fig.2のような回路が必要になります。プログラマの TXDから出力された信号は MODEへ届くと同時に自分にも返ってきますので 74HC00で送信時は RXDに信号が行かないようにしています。

 MODEピンを使う場合はリセット時に特殊なシーケンスで MODEピンを操作してこのモードに切り替えることも必要です。このシーケンスは手動では作れませんのでプログラマが出力してやる必要もあります。なお、XIN, XOUTに発振子をつなぐ必要はありません。

 R8Cのシリアルプログラミングの仕様書はなぜかルネサスのサイトには見当たりませんが、今のところ Googleで「R8C serial protocol」と検索すると英文の物が出てきます。


R8Cprog162

 ちょっとわたしの仕事の都合もありまして、しっかりした R8Cプログラマを作る必要があったので基板から作ってしまいました。回路図やファームウェアも公開します(基板パターンはミスがあったので次回製作する機会があれば公開します)。New BSDライセンス的な扱いでご自由に作ったり業務に使用してもかまいません(保証はしませんが)のでご利用下さい。

 回路図(schematic)
 ファームウェア 2010.6.5(firmware, GPL license)New!
 ↑Hexファイル追加しました。(2015.7.23)
 ファームウェアの書き込み方法(専用プログラマ不要)
 R8Cprog162 WindowsXP inf (licence ???)

 R8Cプログラマ R8Cprog162用ソフト r8cprog / r8cprog-GUI

 旧バージョン:
 ファームウェア 2009.10.9(firmware, GPL license)
 ファームウェア 2009.4.19(firmware, GPL license)

 通常は単なる USB−シリアルコンバータとして動作します。(ただし、8bit, stop 1, non parity, フロー制御なし。ボーレートは変更可能。)パソコン側のドライバは OS標準の USB-CDCドライバを使います。Windowsの場合は初回接続時に上記 infファイルを読み込んで下さい。Linuxの場合は最近の物ならつなぐだけで認識されます。コネクタの TXD1/RXD1をターゲット基板のシリアル I/Fにつないで TeraTerm等でデバッグするなどもできます。

 ターゲット回路の電圧は 3.0~5.0Vまで対応しています。回路の 74LVC125はルネサスの HD74LVC125A もしくは RD74LVC125B限定です。これは電源電圧 5Vでの動作を保証している為です。他社の物は 3.6Vまでしか保証されないようですので。

 ファームウェアはすzさんの usb162-0.1を元にしていますので、こちらのライセンスは GPLとなります。改造した場合、ソース公開必須となりますのでご注意ください。

 以下は参考に。下記回路でも r8cprog / r8cprog-GUI が使えます。

 ストロベリー・リナックス AT90USB162を使った簡易版回路図(schematic)
 ストロベリー・リナックス AT90USB162
 この回路のファームウェアは R8Cprog162と同一の物を使います。ファームウェアの書き込みも Flipだけあれば OKです。こちらもターゲット電圧 3.0~5.0V対応しています。ただし、シリアルデバッグ回路はありません。

 ATtiny13を使った R8Cプログラマ回路図
 ATtiny13を使った R8Cプログラマファームウェア
 こちらはシリアルデバッグ対応で、3.0~5.0Vも対応します。ただし、シリアルモードとプログラムモードを手動スイッチで切り替える必要があります。また、ATtiny13の書き込みには専用プログラマが必要です。