FA用無線機器 組み込み機器 ハードウェア・ソフトウェア開発 設計製作 - 静岡県浜松市 | |||
ここでは開発環境及び、ソフトウェアの解説をします。
<2008年10月4日>
今回は以下の開発環境でテストしました。
統合開発環境 HEW はルネサステクノロジのサイトから評価版のダウンロードができます。
HEW Version 4.04.01.001
M16C/60,30,Tiny,20,10, R8C/Tiny Series C Compiler V.5.44 Release 00 (Evaluation Version) (5-11-2008 19:01:49)
E8 Emulator Software V.2.11 Release 00 (5-11-2008 19:30:21)
E8aでも使えるはずです。
プロジェクトファイルを開くと以下のようなファイルがあります。
HEWがインストールされていれば、M16_30.hwsをダブルクリックするとHEWが起動します。
HEW起動時や「接続」ボタンを押したときに出てくるダイアログの設定を以下に示します。
MCU設定で プロセッサモードをMemory Expansion Modeにします。Single Chip Modeだと外部拡張バス上のデバイスのデバッガ上からのメモリ読み書きができません。
FlashROM、RAMのメモリテストを実行するアプリケーションです。PCからターミナルソフトで、対話形式で
・PCの準備
PCのCOMポートを Dsub9PのリバースケーブルでM16C/30PボードのCOM0ポートに接続します。TeraTerm等のターミナルソフトウェアを起動します。
通信仕様は以下の通り
9600BPS 8ビット長 パリティなし 1ストップビット
・アプリケーションの説明
UART0に以下に示す2文字のコマンドを入力すると、そのコマンドを実行します。
コマンド一覧
バージョン情報 vr
チップイレース ce
セクタイレース se
RAMテスト rt
セクタライトテスト sw
セクター情報 si
Flash情報 fi
メモリダンプ dp
ヘルプ HP または ?
teraterm実行例
UART2はエコーバックのみします。
・ソフトウェアの解説
マイコンの設定
M16C/30Pで最も早いバスアクセスは2ステートなので、メインクロックが14.7456MHzのときには135.6nSec。RAMもFlashROMも十分間に合うので、2ステート、ノーウェイトアクセスとします。
at49bv.C
FlashROMはチップイレース、ブロックイレース、バイト書き込みに対応しています。
イレースやプログラムモードでは同じアドレスに違うデータをライトしていますが、コンパイラが最適化をかけると省略される場合があります。それを避けるために書き込み、読み込みはわざわざ関数コールしてその中で実施しています。
イレース中やプログラム中のウェイトはトグルアルゴリズムで監視します。そのために割り込みでFlashROM領域を読み込むと誤作動する場合があるので、割り込み中にFlashROMにアクセスしないようにします。
タイマー割り込みは 約1msec。TB2のインターバルタイマーモードを使用しています。クロックが14.7456MHzということで正確な1mSecタイマにはならず誤差がでます。
M16UARTX.C
M16C/30PはUARTが3chあります。そのうち、SIO1はデバッガで使用。のこりのSIO0/SIO2はアプリケーションで使用しています。M16UARTX.Cは共通ファイルとして、M16UART0.CとM16UART2.Cから #includeしています。
M16UART0.Cでは以下の定義をしています。
#define _UART0_ 0
#define TXBUFSZ 80
#define RXBUFSZ 20
_UART0_ or _UART1_ or _UART2_ これからインクルードするファイルのチャンネルを定義します。
TXBUFSZ 送信バッファのサイズを指定します。
RXBUFSZ 受信バッファのサイズを指定します。