獣医さんの電子工作とパソコン研究室
 
 39.いまさらですが、トラ技付録基板 R8C/Tiny マイコン入門しました 

 ■ R8C/Tinyマイコン

  
 トランジスタ技術の付録である部品つき基板も、面白そうなものが付いてはきているのですが、なかなか手を出さずにおられる方も多いのではないでしょうか。最近になって2005年4月号の付録であったR8C/Tinyの乗っている付録基板を何か応用できないかと思い、いじってみることにしました。
開発環境も手軽で、なかなかの使い勝手でしたので簡単なレポートをいたします。
(開発の詳細はトランジスタ技術関連記事やRENESASのホームページをご参照ください。)

 付録基板のままでは何も出来ませんので、周辺の回路をつけなければなりません。最初はユニバーサル基板に組み立てようかと思ったのですが、それほど外部に部品が必要ではないので、ブレッドボードに組み立てて実験してみました。

   眠っている付録基板たち

 
 付録基板はMB-R8CQという型番がついており、28pinDIPタイプの大きさの基板にルネサスのR8C/15マイコン(R5F21154SP)と232Cドライバ、20MHzのセラミック発振子が載っています。
外部につける部品はほとんど必要なく、簡単に実験を始められるようになっています。

 ←実験開始の様子
 電源に5VのACアダプタを用意し、開発用のPCとの接続用に232Cケーブルを用意します。232CケーブルはCASIOのデジカメ用PCケーブルを少し改造して使用しました。接続部分はステレオ・ミニジャックです。そしてトラ技に出ているサンプルプログラムを動かせるようにいくつかの部品をつけて準備OKです。ブレッドボードで実験ができるので、簡単ですね。

 プログラミングはトラ技付録CD-ROMに入っているR8Cマイコン開発ツールを使用しました。言語はわかりやすいC言語を選択します。この統合開発環境としてHEW4というもので、デバッグ専用の232Cポートを介して開発側のPCからプログラムをダウンロードしたり、ステップ動作で確認したりしながらプログラムを開発することができ、私のようなカット&トライでプログラム作りをする人間にとっては、とても便利な物でした。
 ブレッドボード環境とこの開発ツールで、簡単なLEDの点滅やI/Oポートへのスイッチ入力、ADコンバーター、PWMの実験などすぐにいろいろなことが出来ました。
 

 ■ 一つの物としての何かを作ってみる

 最終目標として、PWM出力を利用したCVCC電源(定電圧、定電流電源)を計画しましたので、その前にプログラミングの練習も兼ねて、「タイマー&ストップウオッチ」なるものを考え、ブレッドボード上で組んでみました。LCDのディスプレイとロータリーエンコーダーも使って見たかったので、この「タイマー&ストップウォッチ」でも使用してみました。

 プログラミングの勉強は、なんといっても他の方のプログラムをまねて見ることです。
ネットでいろいろ探しましたが、やはり産業用なのでしょうか、PICのように数多くの製作例はあまり見当たらず。トラ技の製作記事とルネサスのHPに出ているアプリケーションノートを参考にしました。

参考文献
1.トランジスタ技術 2005年4月号 特集:これならわかる!マイコン入門
2.トランジスタ技術 2005年5月号 R8C/Tinyマイコン徹底マスタ
3.トランジスタ技術 2005年7月号 R8C/15付録マイコン基板活用企画 第1回 リモコンON/OFFタイマ
4.ルネサス R8C/Tinyシリーズ アプリケーションノート 3分間タイマ
 
 いろいろな方のプログラミングを解析して利用していると、たいへん勉強になりますし、テクニック的なものも知見が拡がりますね。
 
 ■ 実験的プログラムを作成してみて気づいたこと
 
 R8Cマイコン開発ツールについてはトラ技に簡単にしか書いてなくて、最初は戸惑いました。とりあえず、CD-ROMの中にある説明通りにインストールし、HEW4という開発環境でコンパイル〜実行ファイルの作成、ダウンロードまでできます。

 HEW統合開発環境でのコンパイル〜リンク、ダウンロードまでの一連の操作は、どうもターゲットのH8C/Tinyにモニタプログラムをダウンロードしてソフト的に接続した状態で行なったほうが良いようです。
再接続する場合は、ボード側の電源を落として再起動してからのほうが安定して接続できるような気がします。

 付録基板のI/Oポートですが、HEW統合開発環境のPCとの通信用に 13、14ピンが割り当てられているのですが、R8CのI/OポートP4_5とP3_5はこの通信用に割り当てられているため、スタンドアローンで動かす場合はI/Oポートとして入出力に使用しても大丈夫なのですが、PCと接続してHEWでプログラムをダウンロードしたりデバッグする時には、この2つのI/Oは使用できません。
これに気がつかず、少々悩みました。

接続ケーブルは
ジャンクを利用

 
 スイッチのチャタリング除去について、アプリケーションノートの3分間タイマではtimerXを10msに設定して動作させておき、これを中心に全てのプログラムが働いているような形式になっていました。チャタリング除去もトラ技2005年5月号p148に出ている方法(10ms毎にサンプリングし、3回状態が安定した時点で入力を判定する方法)なのですが、この方法も試しましたがうまくないのです。
実際のプログラムではディレイを入れて、少したった安定した時点で判断する方法にしました。前者の方法は、タイマーなどの動作し続けているプログラムの場合には良いのかもしれません。

 チャタリング?? 2種類の方法でチャタリングを除去しては見たのですが、プログラム動作スピードが速いせいなのか、1回のスイッチ押し下げのみで次のスイッチ入力判断まで飛び越してしまうようになってしまいました。 次のスイッチ入力判断の前にディレイを500ms入れることで解決はしましたが、タイマーなどの場合はこの時間は問題になりますね。 もう少し考えれば良いのでしょうがトレーニングですので安易にディレイを入れて解決しました。

 液晶ディスプレイは、秋月で販売しているデカ文字 OPTREX PWB16230Aが手元にあったので使用しました。こちらのピン配置は一直線になっているので、ブレッドボードに直接差し込んで使用することが出来ます。ブレッドボードでの実験には最適ですね。また、LCDのコントロール部分は参考文献3のものをそのまま利用しました。BASICのLOCATE文のような関数も作成しましたが、使用しませんでした。

 ロータリーエンコーダーは同じく秋月で売っているもので、以前PICで実験した時のCプログラムをそのままもってきて使ってみました。簡単でうまく動作します。

 LCDへの表示方法も、今回は勉強になりました。
いままではどうしてもカーソルを書き込みたい位置に移動して、必要文字分だけを書き込むという考えでしたが、参考文献3のプログラミングテクニックで、表示用の変数中の必要部分を書き換え、毎回一行単位で書き出す方法を学びました。C言語のネック、ポインタの操作も入ってきますが、文字列を相手だとポインタのこともなんとなく理解できます。

 ブザー出力はtimer Zを使用して1KHzの発振をさせています。
 

 ■ タイマ&ストップウオッチ
 一応、作成したプログラムを掲示します。
トレーニングのために作ったプログラムですので、参考程度にしてください。
また、今回はブレッドボード上でのテストのみとし、ケースに入れての実用品とはしませんでした。
タイマ&ストップウォッチ.c
 
 ■ 次の目標と使用感


 だいたい開発環境やC言語にも慣れてきたので、最終目標のCVCC電源の開発にかかります。
使い始めて3週間、まだまだHEW4も使いこなしているわけではありませんが、どうにかなりそうです。
実用的なものができるかはまだわかりませんが、このR8C/Tinyマイコンは、開発環境からプログラムを即ダウンロードしてデバッグが出来ますので、大変便利です。 PICの開発より簡単に思えました。
また、レジスタの構成も単純でわかりやすいです。難点はI/Oポートの数が少ないので、LCDの出力ポートをスイッチ入力などと共用すれば、ある程度ポート数は確保できそうです。

 とにかく、便利な開発環境でした。 まだ、付録基板が眠っている方は使ってみてください。
 

 
Last up date 2007/5/28

 

This page count Total:26787 / Today:2 / Yesterday:2  

 本業のページ