こんにちは、R8C推しの大根です。
R8Cは購入しようと思うと、やたら高いので今まであまり布教できないでいました。しかしこの度、R8C/1Bシリーズのマイコンを、DIP変換基板含めて70円くらいという驚きの価格で手に入れたので、布教していこうと思います。
マイコンを流行らせたいなら書き込みが出来ないと話になりません。私は個人的に、USBを使ってプログラミングできるマイコンボードを持っていたのでいいのですが、安価なマイコンと安価な書き込み器を用意したくて、作ってみました。
R8Cのプログラミングは、変な独自バスやSPIなどのUSB変換器が高価なバスではなく、UARTで行えます。つまり、安価なシリアル変換機を買ってきて、回路をちょっと作れば完成です。
シリアル変換機は、頑張れば数十円で買えるような気もしますが、今回の回路はAmazonで売っているこれを使うことにします。この変換器、RS-232Cっぽいことを言っていますが、電圧が負論理のTTLレベルで、電子工作的には非常に扱いやすいです。さらに、外装が柔らかいのでハサミ等で簡単に剥がすことが出来、直接はんだづけできるので配線も楽です。送料無料の国内発送で200円台という価格も魅力的です。COB(って言うのかな?)のせいで中身が見えませんが、おそらくCH340Rの出力をレベル変換機など通さずに直接引き出しているもののようです。(だから、動かすにはCH340のデバイスドライバが必要です)
シリアルライタを作成するのに使う資料は、多分マイコンのハードウェアマニュアルと「標準シリアル入出力モードシリアルプロトコル仕様書」(共にルネサスからダウンロード)で十分なはずです。「標準シリアル入出力モードシリアルプロトコル仕様書」は少し見つけづらいですが、「標準シリアル入出力」や「R01AN0334JJ0110」などのキーワードでドキュメント検索すると出てくる「R8C/1x、2xシリーズ 標準シリアル入出力モードプロトコル仕様書」がそれです。(アプリケーションノートに分類されてます。URLはしょっちゅう変わるので貼らない。)
では、詳しい説明に入りましょう。と、その前に回路図をどうぞ。(これ以外のシリアル変換機では動かない可能性が高いので注意)
R8Cファミリのマイコンは、シリアルプログラミングにモードが1から3までの3種類あり、R8C/1Bでは2と3が使用できます。
モード2は、いわゆるUARTを普通に使ってプログラミングする方法で、電源とRESETピン,MODEピン,Tx,Rxをつなぐ必要があります。また、R8C/1Bのモード2は外部クロックで動作することになっているので、クリスタルなどを用意してつなげる必要があります。
モード3は、シリアルプログラミングでプログラマとマイコンは同時にデータを送信しないことを利用して、1本の通信線に両方のデータをのせる半二重通信を行います。この場合、電源とRESETピン,MODEピンのみ接続すればよく、MODEピンはプルアップされ、モードの選択とシリアル通信に併用されます。クロックは内部クロックが使用されるので、クリスタルは要りません。
今回私が作ったのは、接続するピンが少なくて済み、クリスタルも必要ないモード3のライタです。
R8Cは、MODEがLOWの状態でリセット解除し、30msから100ms経過した時点でHIGHにし、その後リセット解除から200ms経過するまでの間HIGHで維持するとモード3になります。そのあと、MODEピンでのシリアル通信を開始します。
よって、MODEピンにシリアル信号とモード選択用信号、RESETピンにリセット信号を出力でき、MODEのシリアル信号を読めるように回路を設計する必要があり、作ったものが先に貼った回路図です。
今回使ったシリアル変換機は外装が柔らかく、ハサミ等で簡単に除去できるので、ガワを剥いでUSBのバスパワーからの5Vを引き出し、ついでに他の接続も基板上に直接するのがおすすめです。そうやると、こんな感じになります。
ということで、次回はシリアル通信のプロトコルなどに触れつつ、Windowsで動かない誰得書き込みプログラムを公開しようと思ってます。