獣医さんの電子工作とパソコン研究室
 
 39-4.R8C/11シリーズ OAKS8 マイコン使ってみました 

---作成したプログラム---
A: RTC-8564NBを使った時計
B: Forループの実行時間を計測
 

 ■ 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本取り付けられています。
 基本的には、オークス電子の拡張用ボードや開発環境を使うためのものらしいのですが、今まで使っていたRenesasの開発環境で実験してみました。
 

 実験するにあたり、ブレッドボードに載せたかったので、ついていたピンヘッダを取り除き、左写真のように平行に丸ピンのヘッダをつけました。 幸い、元々ついているピンヘッダはシングルラインですので、ピンヘッダのプラスチック部分を取り除き(小さなドライバーでこじると取れる)、一本一本にすればハンダ鏝で簡単に取り除けます。
 余ったスペースには、リセットスイッチとモード切替スイッチを載せました。
下図がパラレルピンにした場合の接続図です。網掛けの端子は使いません(使えません)。
 ブレッドボード上には、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 のダイアログで、1箇所チェックしておかないと。コンパイルもビルドもエラーが出ずに通ってしまうのにうまく動作しません。

Standard Toolchain の
Code Modificationカテゴリー中、[fMVT] Generate variable vector table のチェックボックスをチエックしておきます。
 ■ 追加実験 Forループの実行時間を測ってみる

 タイマの使い方のトレーニングも兼ねて、Forループの実行時間を自身で計測するプログラムを作ってみました。SW1,2でForループのループ回数を設定し計測した値をLCDに表示するというものです。
計測はタイマXを使用しました。

test_Forloop.c

HEWプロジェクトファイル test_Forloopx.lzh

下に実験結果を示します。
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

 

This page count Total:17871 / Today:3 / Yesterday:6  

 本業のページ