余白 Copyright © 2010-2014, 2017-2018 てきーらサンドム


■■■ 78K0R,RL78マイコンの工作とC言語 ■■■

ルネサスの78K0R,RL78マイコンを使った工作例と,C言語の基礎から78K0R,RL78特有プログラミングまでを解説するページです。
・簡単な回路によりLCD漢字表示,LED調光制御,パソコンとの通信,SDカードへの音声録音,等ができます。
・ドライバを提供しているので,C言語の標準的なスタイルで動作を実感しながら学習できます。

最近の更新以前の更新
2018/10/14 [RL78変換基板版]新規公開。
2017/08/15 [C言語解説] RL78 CC-RL版追加。
2014/05/09 [RL78簡易書き込み&通信]新規公開。
2012/12/03 [C言語解説] デバイスファイルのリンク先変更。

2号機基板 連結状態

  〜〜〜〜 目次 〜〜〜〜

 


●C言語解説 2017/8/15 RL78 CC-RL対応版追加

 学習用の解説資料を同梱したドライバ・キット(KLCD_78K0R紹介ページKLCD_RL78紹介ページ)をベクターに掲載しています。
 このドライバ・キットによりテキスト表示やキー入力が簡単に出来るようになるため,パソコンのC言語と同じような感覚で学習が進められるようになります。以下,同梱されているPDF資料です。

 ドライバ・キット(KLCD_78K0R,KLCD_78K0R)の特長

 


●1号機(直結版)

 1号機は,「今どき漢字表示は当たり前」,「配線本数を極力減らす」,「学習ステップに合わせて徐々に作る」という方針で作っています。
 ただし,下の写真のように小さな基板で作ったのは失敗でした。基板間をつなぐ配線がぐちゃぐちゃして,まとまりがなくなりました。持ち運びも大変です。
 1号機の回路図で作る場合は,最終的に大きな基板1枚になるように少しづつ作るのが良いでしょう。
 以下PDF回路図は3ページ一括,D2CADファイルはページ単位で掲載します。D2CADのページ2,3は共通です。
 d2logo.gif (1505 バイト)  ・78K0R/KC3-L_44pin( PDFD2CAD Page1Page2Page3
  ・78K0R/KC3-L_48pin( PDFD2CAD Page1
  ・78K0R/KD3-L_52pin( PDFD2CAD Page1
  ・78K0R/KE3-L_64pin( PDFD2CAD Page1

 この基板を動かすプログラムは,ドライバ・キット(KLCD_78K0R紹介ページ)の中のKLCD_78K0R.prwプロジェクトで生成してください。デフォルトのデバイスは,78K0R/KD3-Lになっているので,他のチップを使う場合は指定を変更してください。

1号機の第1段階 1号機のキー基板 1号機の通信基板
写真:第1段階(マイコンとLCD),第2段階(キーとインジケータLED),第3段階(調光LED,COM通信,赤外通信,温度センサ)

 


●2号機(コネクタ版)

 2号機は,マイコンや各周辺回路をそれぞれ1枚の小さい基板にまとめています。最終的にコネクタ同士を連結します。
 1号機よりコネクタの分の配線は増えますが,連結時にすっきりまとまります。またマイコンを変えたり,周辺回路を変えたりするのが容易です。以下PDF回路図とD2CADファィルです。
d2logo.gif (1505 バイト)  ・周辺回路(PDFD2CAD:LCDD2CAD:KEYD2CAD:COM
 ・78K0R/KC3-L44(PDFD2CAD
 ・78K0R/KC3-L48(PDFD2CAD
 ・78K0R/KD3-L(PDFD2CAD
 ・78K0R/KE3-L(PDFD2CAD
 注:周辺回路図USBシリアル変換AE-UM232Rの13ピン(USBコネクタのフレームGND)が未接続です。万一動作が安定しない場合はGNDに接続してください。

 この基板を動かすプログラムは,ドライバ・キット(KLCD_78K0R紹介ページ)の中のKLCD_78K0R.prwプロジェクトで生成してください。デフォルトのデバイスは,78K0R/KD3-Lになっているので,他のチップを使う場合は指定を変更してください。

2号機のLCD基板 2号機のキー基板 2号機の通信基板
写真:LCD基板(コネクタが手持ち部品切れのため26pin),キー基板,通信基板(USBブリッジのジャンパー白の位置は間違い)

連結状態
写真:連結状態

 


●3号機(拡張版)

 3号機では,SDカードと音声コーデックが乗ったSD基板(第4段階基板)を追加しました。この基板を使えば,2GB SDカードで150時間近くの音声を録音/再生できます。
 当初は,78K0R/KF3-LまたはKG3-Lで作ろうと思っていましたが,入手性が悪いので1世代前の78K0R/Kx3を使いました。ただしKE3は端子の入れ換えが大変なのでSDカードのみにしました。以下PDF回路図とD2CADファイル,部品表です。
d2logo.gif (1505 バイト)  ・SD基板(PDFD2CAD) その他の周辺基板は2号機と同じです。
 ・78K0R/KE3(PDFD2CAD
 ・78K0R/KF3(PDFD2CAD
 ・78K0R/KG3(PDFD2CAD
 ・部品表(PDF
 注:マイコン基板のLED電源(K22-11ピン)が5Vになっているのは,5V耐圧ポートを割り当てているためです。他のポートに変更する場合で,かつVDD≠5Vで使用する場合は”VDD”に変更してください。

 この基板を動かすプログラムは,ドライバ・キット(KLCD_78K0R紹介ページ)の中のKLCD_K0RKX3.prwプロジェクトで生成してください。デフォルトのデバイスは,78K0R/KG3になっているので,他のチップを使う場合は指定を変更してください。

 なお,SDカードと音声録音再生(ADPCM圧縮伸長)のドライバとサンプル・プログラムはいろいろ差し障りがありそうなのでベクター公開は見合わせています。とりあえず個人の研究用ってことで,ここで公開しておきます。こちらのプログラムは下記同梱のKLCD_K0R_SD.prwプジェクトで生成して下さい。(注:4章未対応版です。4章対応版は検討中です)
  SD基板用ドライバ: ・説明書(PDF)  ・拡張ドライバ・キット(説明書付き)(ZIP圧縮ファイル)

3号機KE3基板 3号機KG3基板 3号機SD基板
写真:KE3基板,KG3基板,SD基板

・ダイセンの基板は穴が小さい 2011/1/18 更新
 ダイセンの基板の穴に合うピンヘッダは,ヒロセ電機製のA1シリーズのように実装側が0.5mm□のものです。両側とも0.64mm□になっている安いピンヘッダは入りません。
 マイコンを実装した変換基板(上の写真)は,KE3がサンハヤト製,KG3がダイセン製です。KE3は変換基板側にピンヘッダを付けていましたが,KG3はダイセン製変換基板の穴が小さくて0.64mm□のピンが入らなかったため,変換基板側にソケットを付けています。これに気が付いていなかったら基板作り直しの大ショックを受けているところでした。サンハヤト製なら0.64mm□のピンが入るのですが,サンハヤト製100pin 0.5pt変換基板(QFP-53)は3列穴なんで若干使いにくいんですよ。
・録音時のノイズ
この写真のSD基板では,録音時にSDカードのアクセス周期(約8Hz)と思われるノイズがわずかながら乗ります。音声が入っている時は気付きませんでした。配置や配線に注意して下さい(具体的でなくてすいません)。
・32kHz水晶発振子
KE3基板の32.768kHz水晶は,秋月電子通商で買ったVT-200(CL=12.5pF)を装着してあります。コンデンサ(C3, C4)は22pFを付けてあります。実測-4.4ppm(26℃)でした。室温では少し高めが良いので,15pFぐらいが妥当でしょう。ちなみに9月7日時点で秋月のWebには,15pFコンデンサは載っていませんでした。まぁ個体差もあるから必ず15pFの方が良くなるとは限らないですが。78K0Rは補正機能があるので-4.4ppmで問題なしです。
・SD基板の動作状況
 SD基板のSDカード部は,オープン・ドレイン駆動のままで5MHzクロック動作できました(リード/ライトとも)。以前ライトが2.5MHz止まりだったのはソフトミスでした。ちなみに78K0Rのシリアル転送クロックはこれ以上速く出来ません(クロック周波数の1/4まで)。
 コーデック部動きました。SDカードへの録音/再生ができました。しかしSDカードのアクセスでリトライが多発している模様。なんか辛うじて動いているような雰囲気ですね。回路もドライバも結構いい加減なので,お遊び用にしか使えないかな。
・音声コーデック
 音声コーデックは,スピーカ・アンプやマイク・アンプなど音声音/再生に必要な回路が入ったWOLFSON製WM8510を使用しています。スピーカとマイク,ちょっとしたCRを付けるだけで済みます。クロック生成用PLLも入っているので,10MHzとか8MHzなどのクロックをマイコンから入れてやれば,内部で音声用に適した12.288MHzを生成できます。
 あいにくDIPパッケージはありませんが,28ピンSOPなので比較的付けやすいと思います。上のSD基板写真は秋月の28ピンSOP変換基板に付けた例です。

 


●デザイン・テクノ版

 CQ出版から78K0R/KC3-L(44pin)の基板付き雑誌が出てきました。
 しかも簡易書き込み機能に対応したUSBブリッジが付いていますので,この基板だけで開発することも可能です(本格的開発にはMINICUBE2購入を推奨)。
   「ディジタル・デザイン・テクノロジ No.8 ”組み込みソフトウェア開発の常識”」 定価¥2,980

1.ドライバキット 2011/3/3 更新

 この基板のポート割り付けに対応したドライバ・キット(R1.50)をベクターで公開しました(KLCD_78K0R紹介ページ)。PM+を起動するには,KLCD_DDT8.prwをクリックして下さい。
d2logo.gif (1505 バイト)  ・回路図: (PDF)  (D2CAD:Page1Page2Page3)

 ・仮レイアウト写真 (155x115の基板を使用), 配線後写真
KLCD_DDT8.jpg KLCD_DDT8_2.jpg

 

2.変更箇所 2011/3/23 微更新

 変更は次の4ファイルです。KLCD_78K0R_R1.50以上では対応済です。
・PORT.h:詳細は下の表を参照。
・HDWINIT.c:ポート変更に伴う初期値の修正。
・AD.h:Vref_voltageの定義値を4350.0に変更(ダイオード経由でVDD供給されているため)。
・UART.c:UART割り込み名を修正(下の表を参照)。

 なおUARTを使用する場合は,若干の基板加工が必要です。またバックライト電源を取得する位置も限られています。詳しくは下記参照してください。

項目 KLCD_78K0R
での従来の
割り当て
デザイン・テクノの基板での割り当て
(Port.h修正箇所)
(KLCD_78K0R_R1.50以上で対応済)
LEDポート LED0 P50 P30。基板上にLED実装済。
COMポート UART_TXD P30(TxD1) P73(TxD0)。UART.cの割り込み名もINTST0に修正してください。
基板のJP2,JP3をB側につなぎ変える必要があります。書き込み兼用にしたい場合はジャンパポストまたはスイッチを取り付けてください。
なおJP2,JP3は,デフォルトではA側にショートするパターンが付いているので,そこをカットする必要があります。 (2011/2/27 更新)。
COMポート UART_RXD P31(RxD1) P74(RxD0)。UART.cの割り込み名もINTSR0に修正してください。
COMポート UART_CTS P32  割り当て無し。#define UART_CTS 0 として下さい。
パソコン側の処理は速いので,フロー制御がなくてもパソコン側のバッファが満杯になることは無いでしょう。たぶん。
COMポート UART_RTS P75 割り当て無し。#define UART_RTS DUMMY_PIN として下さい。
フロー制御無しだとマイコン側の受信バッファが満杯になる可能性があります。
パソコン側からは1行120バイト以内程度とし,行間隔を空けて送信してください。
キー・スキャン出力ポート KEYOUT4,
KEYOUTM4,KEYOUTU4
P73 P50
キー・スキャン出力ポートKEYOUT5,
KEYOUTM5,KEYOUTU5
P74 P75
キー入力ポート KEYIN4 P121 P31
キー入力ポート KEYIN5 P122 P32
VCC USB 5V USB 5Vからダイオード経由で接続しているため,若干電圧が低いです。
バックライト以外は問題ありません。バックライト電源はダイオードの前,
CN6コネクタから取るようにしてください。
LCDポート LCD_RW P41 P41(そのまま)。ただし回路図のコネクタはTOOL1端子と表示されています。

 

3.その他

(1)基板のコネクタ穴
 CN4以外は,0.64mm□のピンヘッダが入ります。MiniCube2用のCN4だけは0.64mm□のピンヘッダが入りません。CN4にはとりあえずヒロセ電機製のピンヘッダ(A1シリーズ)を付けて製作を進める予定です。

(2)デザイン・テクノNo.8の回路図(14ページ目)には次の誤記・抜けがあります。
・マイコンのシンボルの信号名が3箇所誤記。
 2番ピン:TOOL2→TOOL0,6番ピン:FLDM0→FLMD0,8番ピン:P122→P121
・マイコンのVDD端子付近の接続点にポチがありません。

 


●RL78TB版 2012/9/3 更新

 RL78ターゲット・ボード(QB-R5F100LE-TB)を使用したバージョンが一通り完成しました(SD基板は未了)。
 ドライバ・キット(KLCD_RL78)はCubeSuite+とE1を使用した環境での対応になります。ベクターで公開中(紹介ページ)です。
 78K0R版に対し,マイコンの電源電圧を3.3Vに変更しました。LCD基板とキー基板は従来基板が使えますが,従来の通信基板,SD基板は改造が必要になります。下記回路図の内,SD基板は動作未確認です。
 ・回路図: (PDF) (D2CADファイル: MCU基板LCD基板キー基板通信基板SD基板
 
 SD基板以外はマイコンの電源電圧を5Vのままとして従来基板を使うことが出来ます。
 注:5V設定時は,コンパイラ・オプションのマクロ定義にVDD5Vを追加して下さい。A/Dコンバータを使用する温度センサの計算式に影響します。

電源電圧
(VDD設定)
LCD基板 キー基板 通信基板 SD基板
5V設定(注) 従来基板を使用可能。 従来基板を使用可能。 従来基板を使用可能。
新基板も使用可能。
非対応。
3.3V設定 従来基板を使用可能。
コントラストの再調整が
必要(RV1を回す)。
従来基板を使用可能。
LED輝度が足りない場合
はR20〜R23を変更。
新基板で対応。
従来基板ではLEDが
点灯せず。
新基板で対応。

 

 ・途中経過の写真。LCD動作確認までの配線状況。72x95の基板を2枚連結。TBボードに隠れていますが,ピンヘッダで連結しています。
KLCD_RL78G13L_1.jpg KLCD_RL78G13L_2.jpg
 
 ・一通りの完成版の写真。LCD基板とキー基板は,K0R用をそのまま使っています。
KLCD_RL78G13L_3.JPG KLCD_RL78G13L_4.JPG


●RL78簡易書き込み&通信 2014/5/9 追加

 RL78にプログラムを書き込むだけであれば(オンチップ・デバッグを使わないのであれば)、E1の代わりに簡単な回路でも出来ます。ここでは、秋月のUSB-シリアル通信モジュールにちょっと部品を足して作った簡易書き込み&通信アダプタでテストした結果を書きます。

 ・アダプタ回路
 設計メモのページにも掲載しているPDFの下側(M008)の回路を使いました。
 汎用的なアダプタにするためにごてごて回路がついてますが、実験的には100Ωの保護抵抗や保護ツェナーRD6.2E、JP1は不要です。ショットキーDiとしてBAT43を使っていますが、スイッチング用のショットキーなら何でも使えるでしょう。またインバータ(74HCU04)はCMOSタイプで反転できるゲートICなら何でも良いです。本来はオープンドレインFETの方が望ましく、その場合はD2のショットキーも不要になります(4V駆動のFETで可)。バイポーラ・トランジスタで単純なインバータを組むと115.2kbpsの信号に追従出来ないのでNGです。


 ・ターゲット側回路
 設計メモのページにも掲載しているPDFの下側(M010)の回路を使いました。
 TBボード以外の場合は、TOOL0ラインおよびリセットラインにそれぞれ4.7kΩのプルアップ抵抗を付ける必要があります。ショットキーDiは、スイッチング用なら何でも使えるでしょう。


 ・書き込みソフト
 RFP(ルネサス・フラッシュ・プログラマ)をダウンロードして使いました。アダプタを接続した状態で(当然FTDIのドライバーはインストール済みでCOMポート認識している状態で)RFPを起動し、接続先としてアダプタのCOMポート番号を指定すればよいです。今回のテストで書き込んだソフトは、ソフトサポートのページに掲載しているC_RL78_testです。
 とりあえずターゲット電源電圧2.2〜5.0Vで書き込みして問題はありませんでした。

 ・半二重通信テスト
 RFPを閉じてから、通信ターミナル・ソフトを立ち上げます。
 今回通信ソフトはテラタームを使用しました。シリアルポート設定は、115.2kbps、8bit、パリティ無し、ハードフロー制御無しです。端末設定は、ローカルエコー無し、受信CR、送信CR+LFです。
 とりあえずターゲット電源電圧2.2〜5.0Vで問題なく通信できました。ただしTBボード搭載の20MHz水晶を使って動かしているので、2.7V未満はスペック外動作となります。
 ちなみにテストコマンドは先頭に$を付けて、最後に改行します。マイコンから先頭#のメッセージが返ってきます。なお、$が無いとか、改行しない場合は反応がありません。以下、例です。
  $L文字列
  #L文字列
  $W文字列
  #NG 未サポート・メッセージ
  $文字列(L,W以外で始まるもの、endでは無いもの)
  #NG コマンドエラー・メッセージ
  $end
  #OK Disconnect.
  以降はターゲット電源を入れなおさない限り反応はありません。


●RL78変換基板版 2018/10/14 追加

 RL78TB版のMCU基板に秋月の「RL78マイコン R5F100LGAFB搭載変換モジュール」を搭載したバージョンです。SDカード基板も追加しました。
 拡張ドライバ・キット(KLCD_CCRL_SD)の動作環境です。拡張ドライバキットはまだデバッグ中の状況ですが一応ソフトサポートのページに掲載してあります。
 RL78TB版に対し,MCU基板を変更しただけです。SD基板はSDカード部は一応動作確認しています。音声コーデックは確認中です。
 ・回路図: (PDF) (D2CADファイル: MCU基板LCD基板キー基板通信基板SD基板

 ・MCU基板(表)、全体、拙宅の実験場所
KLCD_RL78G13L_5.jpg  KLCD_RL78G13L_6.jpg  KLCD_RL78G13L_7.jpg
 


以前の更新
2012/09/03 [RL78TB版]写真追加。
2012/08/25 [C言語解説]RL78ドライバキット用解説書3章を掲載。
2012/08/05 [RL78TB版]RL78ドライバキット用解説書暫定版2章を掲載。
2012/07/08 [RL78TB版]RL78ドライバキット用解説書暫定版1章を掲載。
2012/06/17 [RL78TB版]RL78ドライバキット暫定版を掲載。
2012/05/07 [RL78TB版]LCD表示までの状況を記載。
2012/04/02 リンク修正完了(ルネサス旧URL閉鎖対応)。
2012/04/01 [RL78TB版]を追加。
2012/01/25 [C言語解説] ドライバ・キットのビルド用ソフトウエアのリンク先変更。
2011/04/02 [C言語解説] 4章を先行公開。
2011/03/23 [C言語解説] 4章の作成状況更新。
2011/03/03 [デザイン・テクノ版] ドライバ・キットR1.50公開に伴いβ版を削除。
2011/02/27 [デザイン・テクノ版]を更新。
        [C言語解説] 解説書R1.50を先行公開。
2011/01/30 [デザイン・テクノ版] β版ドライバ掲載。
2011/01/19 [デザイン・テクノ版] 全体基板の仮レイアウト写真追加。
2011/01/18 デザイン・テクノ版を更新(端子変更と回路図追加)。
        3号機ダイセン基板の穴について追記。
2011/01/15 デザイン・テクノ版を新規追加。
2011/01/09 D2CADファイル掲載。
・・・・略・・・・
2010/12/27 ページを「電子工作(2)」から分離。リニューアル。
・・・・略・・・・
2010/05/10 「電子工作(2)」の一項目として新設。

マイコン技研