0. はじめに |
R8C/Tiny とは Renesas Technology 株式会社のワンチップマイコンであり、 A/D 変換器、クロック発振器、フラッシュメモリなどを内蔵したコンパクトな優れものです。 無料の開発環境が用意されており、C 言語でマイコンの動作を記述することができます。 2005 年度版トランジスタ技術で特集され、注目を集めています。 このページは、その開発環境についてまとめた自分用メモです※。 これからマイコンを始めたい方の参考になれば幸いです。OS は Windows XP を想定しています。 なお、このページを参考にして何か不具合があっても☆は一切関知しませんのであしからず。 ※ ハード的なことは短講資料「Tiny マイコンを使ってみよう!」に少し書いてあります。 |
1. 使ってみよう |
トランジスタ技術 2005 年 4 または 5 月号1)の付録 CD-ROM で、以下のソフトがインストールできます。 1. C コンパイラパッケージ M3T-NC30WA V.5.30 Release 02 無償評価版 2. Renesas Debugger Package for M16C family V.1.00 Release 00 3. M16C Flash Starter Ver.2.0.0.04 4. R8C/14 グループ用レジスタ定義ファイル sfr r815.inc, sfr r815.h 5. フラッシュ開発ツールキット Version 3.3 M3T-NC30WA に含まれる統合開発環境 HEW4 (High-Performance Embedded Workshop 4) の 一連の操作をまとめます。 ついでに Windows 標準の通信プログラム・ハイパーターミナルも。 |
1-1. 新規ワークスペース
1. [スタート]-[プログラム]-[Renesas]-[High-Performance Embedded Workshop] から HEW4 を起動。
2. [ようこそ!] ダイアログで [新規プロジェクトワークスペースの作成] を選択。[OK]。
3. [Application] を選択し、ワークスペース名を入力。[OK]。
4. New Project-1/7 では、[CPU Series] で [R8C/Tiny] を選択。[Next>]。
5. New Project-2/7, 3/7, 4/7 では、そのまま[Next>]。
6. New Project-5/7 では、[M16C R8C FoUSB/UART] を選択。[Next>]。
7. New Project-6/7 では、そのまま[Next>]。
8. New Project-7/7 では、そのまま[Finish]。確認ダイアログが出るので [OK]。
(プロジェクト名).c, sect30.inc, ncrt.a30 の 3 ファイルが自動生成される。
sect30.inc, ncrt.a30 はプログラム実行の前処理 (スタートアップルーチン) のため。
1-2. ビルド
1. (プロジェクト名).c にマイコンの動作を記述する。
2. [ビルド]-[ビルド] で (プロジェクト名).x30 が生成される。
1-3. デバッグ
1. マイコンの MODE 端子を LOW にする。デバッグ用 TxD, RxD 端子と PC を接続する。
2. 右上のプルダウンメニューを [DefaultSession] から [SessionM16C_R8C_FoUSB_UART] にする。
メッセージウィンドウに "Connected" と表示される。
3. [MCU] に参照ボタンから McuFiles\R8C-Tiny Series\R5F21154.MCU を選択。
[Port] には通信に使うポート名を指定※1。[OK]。
通信用プログラムがダウンロードされる。
4. ツリー表示の (プロジェクト名).x30 を右クリックして [ダウンロード] を選択。
プログラムがダウンロードされる。
5. [デバッグ]-[CPUのリセット] でマイコンをリセットできる※2。
[デバッグ]-[実行] や [デバッグ]-[ステップイン] で動作を確認する。
ブレークポイントを設定し、[表示]-[シンボル]-[Cウォッチ] や [表示]-[CPU]-[レジスタ] で
変数や制御レジスタの値を見ることもできる。
1-4. 実行
1. 右上のプルダウンメニューを [SessionM16C_R8C_FoUSB_UART] から [DefaultSession] にする。
メッセージウィンドウに "Disconnected" と表示される。
2. マイコンの MODE 端子を HIGH にする。必要なら通信用 TxD, RxD 端子と PC を接続する。
3. マイコンをリセットすると、プログラムを最初から実行し始める。
1-5. ハイパーターミナル
1. [スタート]-[プログラム]-[アクセサリ]-[通信]-[ハイパーターミナル] で起動。
2. [接続の設定] ダイアログで接続の名前 (R8C-Tiny とか) を入力。[OK]。
3. [接続方法] で通信に使うポート名を指定。[OK]。
4. 通信条件を設定 (マイコンに書き込んだプログラムと合わせる)。[OK]。
5. マイコンから受信したデータを表示したり、キー入力を送信したりできるようになる。
※1 : マイ コンピュータを右クリックして [プロパティ] を選択。
[ハードウェア]-[デバイス マネージャ]-[ポート(COMとLPT)] で "COM*" という名前を探す。
※2 : HEW4 とマイコンが通信中なので、これ以外の方法でリセットしてはいけない。
2. ダウンロードする場合 |
開発環境は Renesas Technology 株式会社の HP からも無償でダウンロードできます。(ユーザ登録が必要) 同社 HP 内ダウンロード検索の "ダウンロードタイトル" に以下の各項目名を入れて検索、ダウンロードします※。 必要なら "M16C Flash Starter" と "フラッシュ開発ツールキット" も同様にしてダウンロードできます。 |
2-1. "Cコンパイラパッケージ M3T-NC30WA" [nc30wav540r00a_ev.exe]
コンパイラの無償評価版です。
統合開発環境 HEW4 (High-Performance Embedded Workshop 4) が含まれています。
ファイルのダブルクリックでインストールできます。
2-2. "M16C R8C FoUSB/UARTデバッガ" [M16cFousbDebuggerV101R00.exe]
HEW4 に対応したデバッガです。マイコンとシリアル通信をしながらデバッグできます。
ファイルのダブルクリックでインストールできます。
2-3. "R8C/15グループ用レジスタ定義ファイル" [r8c1415_register_definition.zip]
マイコン内のレジスタ名を定義したヘッダファイルです。ここでは R8C/15 を例としています。
解凍して、sfr r815.h を C:\Renesas\NC30WA\V530R02\inc30 に置きます。
(アセンブリで記述する場合は sfr_r815.inc のほうを置く)
※ ファイル名は 2006/02/28 現在のものです。
3. エラー/ワーニング |
3-1. "通信エラーが発生しました。ターゲットよりデータを受信できません。 (16014)"
原因 : 何らかの理由で通信が失敗した。
対処 : 通信をキャンセルしたり、[SessionM16C_R8C_FoUSB_UART] から [DefaultSession] にする際に
フリーズした感じになるが、3分程度待つと戻ってくる2)。
その後、電源を入れ直すなどしてマイコンをリセットしてから通信をやり直す。
「R8C/Tiny との語らい」も参照。(2007/07/26)
3-2. "[Warning(ccom)] #pragma INTERRUPT format error, ignored"
原因 : 割り込み処理に必要な可変ベクタテーブルが設定されていない。
対処 : [ビルド]-[Renesas M16C Standard Toolchain]-[Category[Code Modification]] で -fMVT にチェック※1。
3-3. "Warning (ln30): The free area's address in vector table isn't specified."
原因 : "Empty Application プロジェクト" であるため sect30.inc と ncrt.a30 がワークスペースに含まれていない。
対処 : 新規ワークスペースを "Application プロジェクト" として作ると、必要ファイルが自動生成される。
3-4. "Error (ln30): (ファイル名) : Can't generate automatically the variable interrupt vector table."※2
原因 : 割り込み処理を含む "Application プロジェクト" の sect30.inc が適切でない。
対処 1 : sect30.inc に以下のように "if 0" と "endif" を追加する3)。
652 .org VECTOR_ADR
653 if 0
654 .lword dummy_int ; vector 0
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
717 .lword dummy_int ; vector 63
718 endif
719 .else ; __MVT__
対処 2 : "C source startup Application プロジェクト" としてワークスペースを作り直す。
3-5. "Warning (ln30): License has expired, code limited to 64K (10000H) Byte(s)"
原因 : 無償評価版の試用期間 (初コンパイルから 60 日間) が経過し、ライセンスが切れた。
対処 : コンパイルできるサイズが 64 KB までに制限される。
R8C/Tiny のプログラムサイズはもともと 64 KB までなので、特に問題はない。
※1 : M3T-NC30WA V.5.40 以上のバージョンでは -fMVT の指定は不要になりました3)。
※2 : M3T-NC30WA V.5.40 以上のバージョンで出るエラーです。
4. 覚え書き |
4-1. R8C/Tiny マイコンの入手法 (R8C/15 の場合)
マイコン本体 (R5F21154SP) は Digi-Key で納品まで3〜4ヶ月、 RS では即納。
サンハヤトからは DIP パッケージ (SR8C15CP) が発売されている。
また、ラインドライバと 20 MHz クロックを搭載した評価用ボード (MB-R8CS) もある。
4-2. マイコンが HEW4 に応答しない
手元の R8C/15 で, メインクロック (外部クロック 20 MHz) を接続せず XIN, XOUT を開放にしていると,
HEW4 で [SessionM16C_R8C_FoUSB_UART] にしてもマイコンが応答しないという現象が起こりました。
20 MHz の外部クロックをつけると接続でき、プログラムの書き込みも無事に行なえるようになりました。
原因不明。何か分かったら追記します。(2006/05/23)
R8C/16 でもプログラム書き込み時に 20 MHz の外部クロックをつける必要がありました。
ただしプログラムを書き込んだ後は、オンチップオシレータで動作させることができました。(2006/12/22)
HEW4 の FoUSB/UART は、自動的に 20 MHz を選択するそうです4)。
Flash Starter によるプログラム書き込みなら、オンチップオシレータだけでよいかも。(2007/07/29)
4-3. サンプルプログラム (C 言語) の入手法
A/D 変換やモータ制御、通信などのサンプルプログラムが提供されています。
R8C/Tiny シリーズページの "アプリケーションノート" からダウンロードできます。(2007/01/07)
4-4. RS-232C について詳しく知りたい
なひたふ電子情報 > 電子回路の豆知識 > 5.2 RS232C (2007/04/19)
5. 参考文献 |
1) トランジスタ技術, CQ 出版社, 2005/4-2005/5.
2) テクニカルライター後田 敏の部屋 R8Cマイコン, http://goda.blog3.fc2.com/blog-category-2.html.
3) M3T-NC30WA V.5.40 Release 00A ガイドブック, ルネサステクノロジ, 2006.※
4) 島田義人, C 言語による R8C/Tiny マイコン活用技法, CQ 出版株式会社, 2006.
※ M3T-NC30WA V.5.40 Release 00A ダウンロードページ内のガイドブックへのリンクから入手