Copyright © 2010-2014, 2017-2018 てきーらサンドム
ルネサスの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言語解説] デバイスファイルのリンク先変更。
学習用の解説資料を同梱したドライバ・キット(KLCD_78K0R紹介ページ,KLCD_RL78紹介ページ)をベクターに掲載しています。
このドライバ・キットによりテキスト表示やキー入力が簡単に出来るようになるため,パソコンのC言語と同じような感覚で学習が進められるようになります。以下,同梱されているPDF資料です。
解説書記載の開発ツールのリンクが切れています(ルネサス・ホーム・ページ改訂により)。「78K0R,RL78の屋根裏部屋」の[資料室]からダウンロード願います。
ドライバ・キット(KLCD_78K0R,KLCD_78K0R)の特長
1号機は,「今どき漢字表示は当たり前」,「配線本数を極力減らす」,「学習ステップに合わせて徐々に作る」という方針で作っています。
ただし,下の写真のように小さな基板で作ったのは失敗でした。基板間をつなぐ配線がぐちゃぐちゃして,まとまりがなくなりました。持ち運びも大変です。
1号機の回路図で作る場合は,最終的に大きな基板1枚になるように少しづつ作るのが良いでしょう。
以下PDF回路図は3ページ一括,D2CADファイルはページ単位で掲載します。D2CADのページ2,3は共通です。
・78K0R/KC3-L_44pin( PDF,
D2CAD Page1,
Page2,
Page3)
・78K0R/KC3-L_48pin( PDF,
D2CAD Page1)
・78K0R/KD3-L_52pin( PDF,
D2CAD Page1)
・78K0R/KE3-L_64pin( PDF,
D2CAD Page1)
この基板を動かすプログラムは,ドライバ・キット(KLCD_78K0R紹介ページ)の中のKLCD_78K0R.prwプロジェクトで生成してください。デフォルトのデバイスは,78K0R/KD3-Lになっているので,他のチップを使う場合は指定を変更してください。
写真:第1段階(マイコンとLCD),第2段階(キーとインジケータLED),第3段階(調光LED,COM通信,赤外通信,温度センサ)
2号機は,マイコンや各周辺回路をそれぞれ1枚の小さい基板にまとめています。最終的にコネクタ同士を連結します。
1号機よりコネクタの分の配線は増えますが,連結時にすっきりまとまります。またマイコンを変えたり,周辺回路を変えたりするのが容易です。以下PDF回路図とD2CADファィルです。
・周辺回路(PDF,
D2CAD:LCD,
D2CAD:KEY, D2CAD:COM)
・78K0R/KC3-L44(PDF,
D2CAD)
・78K0R/KC3-L48(PDF,
D2CAD)
・78K0R/KD3-L(PDF,
D2CAD)
・78K0R/KE3-L(PDF,
D2CAD)
注:周辺回路図USBシリアル変換AE-UM232Rの13ピン(USBコネクタのフレームGND)が未接続です。万一動作が安定しない場合はGNDに接続してください。
この基板を動かすプログラムは,ドライバ・キット(KLCD_78K0R紹介ページ)の中のKLCD_78K0R.prwプロジェクトで生成してください。デフォルトのデバイスは,78K0R/KD3-Lになっているので,他のチップを使う場合は指定を変更してください。
写真:LCD基板(コネクタが手持ち部品切れのため26pin),キー基板,通信基板(USBブリッジのジャンパー白の位置は間違い)
写真:連結状態
3号機では,SDカードと音声コーデックが乗ったSD基板(第4段階基板)を追加しました。この基板を使えば,2GB SDカードで150時間近くの音声を録音/再生できます。
当初は,78K0R/KF3-LまたはKG3-Lで作ろうと思っていましたが,入手性が悪いので1世代前の78K0R/Kx3を使いました。ただしKE3は端子の入れ換えが大変なのでSDカードのみにしました。以下PDF回路図とD2CADファイル,部品表です。
・SD基板(PDF,
D2CAD) その他の周辺基板は2号機と同じです。
・78K0R/KE3(PDF,
D2CAD)
・78K0R/KF3(PDF,
D2CAD)
・78K0R/KG3(PDF,
D2CAD)
・部品表(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圧縮ファイル))
写真:KE3基板,KG3基板,SD基板
CQ出版から78K0R/KC3-L(44pin)の基板付き雑誌が出てきました。
しかも簡易書き込み機能に対応したUSBブリッジが付いていますので,この基板だけで開発することも可能です(本格的開発にはMINICUBE2購入を推奨)。
「ディジタル・デザイン・テクノロジ No.8 ”組み込みソフトウェア開発の常識”」 定価¥2,980
この基板のポート割り付けに対応したドライバ・キット(R1.50)をベクターで公開しました(KLCD_78K0R紹介ページ)。PM+を起動するには,KLCD_DDT8.prwをクリックして下さい。
・回路図: (PDF)
(D2CAD:Page1,
Page2,
Page3)
・仮レイアウト写真 (155x115の基板を使用), 配線後写真
変更は次の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端子と表示されています。 |
(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端子付近の接続点にポチがありません。
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ボードに隠れていますが,ピンヘッダで連結しています。
・一通りの完成版の写真。LCD基板とキー基板は,K0R用をそのまま使っています。
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.
以降はターゲット電源を入れなおさない限り反応はありません。
RL78TB版のMCU基板に秋月の「RL78マイコン R5F100LGAFB搭載変換モジュール」を搭載したバージョンです。SDカード基板も追加しました。
拡張ドライバ・キット(KLCD_CCRL_SD)の動作環境です。拡張ドライバキットはまだデバッグ中の状況ですが一応ソフトサポートのページに掲載してあります。
RL78TB版に対し,MCU基板を変更しただけです。SD基板はSDカード部は一応動作確認しています。音声コーデックは確認中です。
・回路図: (PDF) (D2CADファイル:
MCU基板,
LCD基板,
キー基板,
通信基板,
SD基板)
・MCU基板(表)、全体、拙宅の実験場所
以前の更新
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)」の一項目として新設。