エレキジャック誌No.1号記事では、PICマイコン用LEDドライブ基板(岩塩ランプ基板)を作成してLEDを点灯させました。実際にLED点灯させた場合、「希望した感じの明るさや点灯にならない」と、思った人も多いのではないでしょうか?
ここでは、実際に点灯させながら値を決める方法を、ルネサス社のR8C/15マイコンを使って簡単に説明します。
PICマイコン用LEDドライブ基板については下記の雑誌や前回の3ポート拡張などで紹介しました。
エレキジャック誌No.1号(2007年2月発売)16ページ
「光で遊ぼうLED」Mission 1 岩塩ランプで癒される
岩塩ランプや提灯の明かりなど実現するにはPWM動作をさせていますので、その明るさは、ONする時間と間隔の値で決まります。そのために回路を実際に動かしながら(エミレーション=Emulation動作)LEDを点灯させ、その結果で値を決めることができれば、楽に完成します。そこで、実際にそのような機能があるマイコンを使って行えばよさそうです。
このように、実際の回路で動作させてデバッグすることはイン・サーキット・デバッグ(In-Circuit Debug)とも呼ばれます。なお、プログラムで動作を確認するシミュレーション(software simulation)では実際の明るさなどはわかりません。
1.今までとこれから
1-1 今まで
PICマイコンの場合、このように実際に動かさないとわからないプログラム開発は、次のような事を繰り返してプログラムを完成させます。まず、ある値でプログラムを作ります。
(1) PIC書き込み器を使ってマイコンに書き込む。
(2) 書き込まれたPICマイコンを取外し、
(3) 実行するPICマイコン基板に差し込んで動作、確認。
という作業が必要になります。
うまく動作しない場合は、さらに、
(4) プログラムを修正して、
(5) 上記(1)に戻る
繰り返す回数を減らす努力はできますが、これは何度もやる場合は面倒です。
注意:
最近、PICマイコンでは安価なPICKIT-2アダプタ(PICkit 2 Programmer/debuger)とデバッグ機能のあるマイコンが出ています。そのため、R8Cマイコンのように安価なアダプタでイン・サーキット・デバッグができるようになりました。今回の記事は、従来のPICマイコンでのソフト開発方法と比較しています。
1-2 これから
R8Cマイコンの場合はパソコンに接続されたシリアル基板(注1)と実際のR8Cマイコン基板に接続した構成のまま、パソコン側のプログラム画面操作で、
(1) マイコンにプログラムを書き込みすることができる。
(2) そのままある程度のマイコンでの動作を確認できる。
(3) 動作中の変数を参照することができるので、誤ったところが確認できる。
(4) 誤った個所を発見したら、そのままプログラム修正し(1)のに戻ってプログラム書き込みができる。
これらの作業は、R8Cマイコンを「書き込み器からターゲット基板への移動」など行わず、そのまま実際の動作する回路(基板)で可能です。
このエミレーション機能を使えば、LED点滅を300ms単位にするか400ms単位にするか、どのくらいの値が良いのかを実際に実行して自分の目で簡単に試すことができます。したがって、デバッグの作業効率が上がります。
2.R8Cマイコン基板で最適な値を見つける
元々、今回の例となっている岩塩ランプのPICマイコン基板は単なるLEDのON/OFFです。その明るさと周期の値をR8Cマイコンで見つければ、PICマイコンのソースに追加するだけです。
2-1 R8Cマイコン基板の概要
イン・サーキット・デバッグができるようにするために、PICマイコン用LEDドライブ基板と同じようなR8Cマイコンの基板を作ります。基板はPICマイコン部分をR8Cマイコンに置き換えただけです。
マイコンには、サンハヤト社よりは販売されているDIPサイズ・マイコン(SR8C15CP)を使っています。

サンハヤトで販売するR8Cマイコン(SR8C15CP)
回路図と感光基板で作成したR8Cマイコン基板を示します。
2-2 R8Cマイコンのソフト開発ツール(注2)
R8Cマイコンの開発ツールは、ルネサス社のホームページより無料でダウンロードできます。
・統合開発環境 High-performance Embedded Workshop(HEW4) の左側「ダウンロード」をクリック
一般的なソフト開発ツールのインストールやソフト開発方法については下記の書籍などを参照ください。
C言語による R8C/Tinyマイコン活用技法 (CQ出版)
2-3 デバッガで、希望するLED点灯や点滅動作を見つける
このR8Cマイコン基板にシリアル基板を接続し、このソフト開発ツールを使ってオリジナルのLED点灯動作のプログラムを作成し、PICマイコン基板のプログラムに値を移植します。

シリアル基板を接続してR8Cマイコンに書き込む
R8Cマイコンのプログラムは、見てすぐわかるC言語で岩塩ランプのソースを作成します。
910R8CLamp.TXT(R8Cマイコンでの岩塩ランプのソース・リスト)
C言語のソース・プログラムでは修正する変数名をRAMエリア内におき、その値をパソコンから修正して動作できるようにしておきます(CONSTに設定しない)。
2-3 操作例
プログラムをR8Cマイコンに書き込んだ後、そのままイン・サーキット・デバッグ機能で動作させます。ここでは実際に点灯させるので、LEDの明るさがどうなっているかを確認することができます。
開発ツールHEW4の「M16C R8C FoUSB/UART デバッガ」を使った実際のデバッグ画面を示せば、右下のウィンドウにプログラムで使用している変数名の値を表示されます。その変数値がそのLEDのい動作だということがわかります。このRAMエリア内の変数名の値を直接変更することで、希望する動作を確認しましょう。
HEW4デバッグ画面 プログラム内の変数の値が表示される(拡大はクリック)
希望する値が決まったら、ソース・プログラムを変更しコンパイルします。そうするとパソコン内のプログラムと、マイコン内のプログラムが不一致のため「マイコンに書き込みますか?」というようなメッセージでマイコンに書き込むメッセージが表示されます。ここで、そのまま新しいプログラムを書き込んで実行すれば、結果をすぐ確認できます。うまくいったらこれで完成です。
プログラムを書き換えると、マイコンへの書き込みメッセージが表示される
(3) その他
このように実際の基板で動作を確認しながらながらデバッグするインサーキット・デバッグができるホビーで使えるマイコンは、ほかにMSP430マイコンやHCS08マイコンがあります。いずれも5千円以下の安価なデバッグ・アダプタで実現できます。
注1: シリアル基板は「R8C/15マイコンへプログラムを書き込む」にて使用しているものと同じ物です。
注2: HEW4開発ツールのインストールについては別途Web掲載の予定です。
ここのR8Cマイコン基板およびプログラムについては、書籍のサポートで公開予定です。
後田 敏
