獣医さんの電子工作とパソコン研究室 |
39-4.R8C/11シリーズ OAKS8 マイコン使ってみました ---作成したプログラム--- |
|
■ OAKS8 マイコン ( R8C/11シリーズ ) | |
R8Cの開発環境がどうしても気に入って、他のシリーズのI/Oピン数が多いものを使いたいと、いつも思っていました。たまたま、千石電商のHPでR8C/11マイコン基板(OAKS8)が販売されているのをみつけ、使ってみました。1個995円と手頃です。 |
|
OAKS8はオークス電子が発売しているRENESASのR8C/11シリーズのマイコンが載っている小型ボードです。CPUはR5F2114FPでI/Oポートが22本と若干多めになっていて、サンハヤトのSR8C15PでI/Oポートがちょっと足りない時などには良いと思います。ボード自体にはリセット用の回路と20MHzのセラロック、LEDなどが載っており、8ピンのシングルヘッダが4本取り付けられています。 |
実験するにあたり、ブレッドボードに載せたかったので、ついていたピンヘッダを取り除き、左写真のように平行に丸ピンのヘッダをつけました。 幸い、元々ついているピンヘッダはシングルラインですので、ピンヘッダのプラスチック部分を取り除き(小さなドライバーでこじると取れる)、一本一本にすればハンダ鏝で簡単に取り除けます。 余ったスペースには、リセットスイッチとモード切替スイッチを載せました。 下図がパラレルピンにした場合の接続図です。網掛けの端子は使いません(使えません)。 |
|
ブレッドボード上には、LCDキャラクタディスプレイモジュールと3個のスイッチ、2個のLED、秋月のRTCモジュール(RTC8564NB)を載せて、R8C/15シリーズで実験した時計のプログラムを改良してみました。 開発・デバッグ用PCとの接続にはRS232Cコンバーター入りのケーブルを使いましたので、ブレッドボード上には載せてありません。28-2参照 |
■ Renesasの開発環境 HEWを使う | |
R8Cマイコン開発ツールはRenesasのHPより試用版がダウンロードできますので、これを使用します。R8C/11グループ
レジスタ定義もダウンロードしておいてください。 解凍したsfr_r811.hとsfr_r811.incファイルをC:\Renesas\NC30WA\V530R02\inc30にコピーしておきます。 HEWの開発環境がインストールできたら、プログラムの作成に入ります。 |
|
新規ワークスペースの作成をします。 |
|
CPU種別にM16Cを選択します。 |
|
1/6 Target CPU Toolchain の設定画面では、R8C/Tiny を選択します。 |
|
2/6〜4/6の設定画面では、そのまま「Next」ボタンでやり過ごします。 5/6 のデバッグ環境の設定画面では、右の赤枠のようにチェックしておきます。 これで、PCからのデバッグもでき、PC上でのエミュレーターでのデバッグもできます。 その後は全て「Next」ボタンです。 |
|
プログラムを作る場合、sfrレジスタ定義ファイル(sfr_r811.h)をインクルードしておかなくてはなりません。 |
■ RTC-8564を使った時計 | |
R8C15で作成したプログラムを改良した時計プログラムです。トレーニングのために作ったプログラムですので、参考程度にしてください。 LCDディスプレイ用のルーチンとRTC-8564の読み書きルーチンはヘッダファイルとして別のファイルに分けました。LCD.h と RTC8564.h それぞれにポートの設定がありますので、変更する場合はポート定義を変えてください。 |
|
RTC_watch.c
HEWプロジェクトファイル RTC_watch.lzh |
|
前の39-3での実験では、ループ内に読み込み表示ルーチンを入れてありましたが、今回のプログラムは、RTC-8564NBより出力される割り込み信号(出力間隔は設定できる)を使用し、1秒毎の割り込みをINT2端子で受けて、RTCのデータを読み込み表示するようにしてあります。 | |
★割り込み使用時の 注意点 割り込みを使う場合は注意が必要です。 |
|
Standard Toolchain の Code Modificationカテゴリー中、[fMVT] Generate variable vector table のチェックボックスをチエックしておきます。 |
■ 追加実験 Forループの実行時間を測ってみる |
タイマの使い方のトレーニングも兼ねて、Forループの実行時間を自身で計測するプログラムを作ってみました。SW1,2でForループのループ回数を設定し計測した値をLCDに表示するというものです。 |
test_Forloop.c |
下に実験結果を示します。 SANHAYATO SR8C15PにKTXO-18S 12.8MHzのオシレーターモジュールの場合も同様の計測をしております(下左側)。 比較として、SDS200A PCオシロスコープの自動パルス幅測定による数値も記しましたが、こちらが正確なのかどうかは検証してありません。 |
私のOAKS8では 872回のForループで ちょうど1msを、86回のForループで100μsを作ることができる結果となりました。 |
■ 使用感 |
最近、マイコン基板をブレッドボード上で動かす実験ばかりやっています。電子ブロック感覚で実験できますし、回路の変更もたやすいですので、たいへん便利です。 また、R8CのPCからのデバッグはたいへん便利です。割り込みや外部入力の状態などもPC上で確認しながらデバッグできますので、私のような初心者にはうってつけです。 今回掲載したプログラムも、C言語初心者の私にしてはだいぶスマートなものになってきました。 どうしてもR8Cシリーズが使いたかったのでOAKS8というボードもなかなか良いかもしれません。 次の目標は、OAKS8を使ったMMCカードの読み書きです。いつも目標ばかりで実用になっていないのが、悩ましいところでもあります。 |
参考文献 トランジスタ技術 2005/5 特集 R8C/Tinyマイコン徹底マスタ エプソントヨコム RTC-8564NB 技術資料 ルネサス テクノロジ - R8C-11 グループ 技術資料 |
Last up date 2007/10/29 | |