| 獣医さんの電子工作とパソコン研究室 |
| 40−3.H8/3664 内臓512バイトEEPROMの使用とシリアル通信
以下の内容は、ルネサスHEWでの開発を前提にした内容となっております。
|
| ■ シリアル通信(RS232Cによる通信) |
|
シリアル通信ポートを使用してみました。これが利用できると、デバッグ時にもプログラム中にシリアルポートへの出力をプログラム中に散りばめて置くことで、どこで止まっているのかを知ることができます。 使用に際してはいくつかのポイントがありました。 |
|
シリアルポート使用関数群 file:SCI_232c.h TEKUROBO工作室 109.パソコンとシリアル通信する を参考にさせていただきました。 http://homepage1.nifty.com/rikiya/software/109serial1.htm とりあえず動作していますが、エラー処理がいい加減です。 |
|
|
使用するポート ●P21 RxD , P22 TxD い |
|
|
SCI_init( void ) SCI_rx( void ) SCI_tx( char data ) SCI_print( char *str ) SCI_crlf( void ) SCI_print_hex(int digit, unsigned long data) SCI_print_dec( unsigned long data ) SCI_wait_msec(int msec) |
シリアル通信初期化ルーチン シリアル1文字受信ルーチン シリアル1文字送信ルーチン シリアル文字列送信ルーチン シリアルポートへ CR/LFを送信 数値を指定した桁数で 16進文字列として送信 数値を10進文字列として送信1文字表示 ウエイトサブルーチン |
|
AKI-3664N実験資料 (エクセルファイルをLZH圧縮) 1.裏側から見たピン配置 2.ピン対称一覧表 3.実験回路図 |
シリアル通信関係関数 SCI_232c.h |
|
次に、SCI関連レジスタ設定の様子を示します。 |
|
|
|
|
レジスタの設定で、PMR1-Bit1 TXDビットを1にしないと送信されません。 このレジスタだけ関係ないところにあるので、最初は気づきませんでした。 SCI関連関数の実際の使用方法は、ページ最後に掲げてあるサンプルプログラムをご参照ください。 |
|
| ■ 内臓EEPROMを使う |
| H8-3664Nの本体に4Kビット(512バイト)のEEPROMが内蔵されていますので、これを利用したいと思います。 このEEPROMへのアクセスはI2Cインターフェースを利用してアクセスします。 |
| 最初はルネサスのアプリケーションノート「EEPROMリード・ライト」j502130_apn.pdf
を参考にしたのですが、どうもうまく動作しません。いろいろ調べているうちに3664N内臓のEEPROMはいろいろ問題があるらしいことがわかりました。 こちらの記事をご参照ください。H8 Mailing List archive [H8-ML(4672)] Re: 3664Nの内蔵EEPROMへのアクノリッジポーリング動作について 適当なところにウェイトを挟み込むことで動作しているものができました。 |
|
I2C EEPROM使用関数群 file:IIC_EEPROM.h ルネサスのアプリケーションノートを参考にしました。 バイトリード/ライトしか動作確認はしていません。 |
|
|
使用するポート ●P56 SDA、P57 SCL 両ポートは10kΩの抵抗でプルアップしておく。 い |
|
|
EEPROM_init() Write_byte_EEPROM( unsigned short adrs , unsigned char wr_data ) Read_byte_EEPROM( unsigned short adrs ) |
ポートのイニシャライズ 指定したアドレスに1バイト書込み 指定したアドレスから1バイト読込 |
| 内臓EEPROM読み書き関数 IIC_EEPROM.h |
|
| ポート設定部分です。 使用するときには、P56、57を入力に設定するのと、データを0x00にしておくことが必要です。 |
|
|
|
| ルネサスのアプリケーションノートにプラスした場所です。 書込みでは下赤丸部分への10msのウエイトの挿入が必須です。これより短いと正常に動作しませんでした。 |
|
| 読み込み部では赤線部分にウエイトを入れてみましたが、必要ないかもしれません。 |
|
| ■ シリアル送受信と内臓I2C-EEPROMテストプログラム | |
|
最後に、上で紹介した関数群を使用したプログラムを紹介します。 シリアルでコンソール上に表示とコンソールキーボードからの入力を受け付けます。 RS232Cで接続したPCでは、TeraTermやハイパーターミナルなどのソフトで、H8-3664N基板からのデータを送受信します。 |
|
|
テストプログラム test_EEPROM_SCI.c HEWプロジェクトファイル test_EEPROM_SCI.lzh ツールチェインは 6.2.0.0です。 |
|
|
EEPROMのテストは4種類用意しました。 |
|
| ★テスト4では、書込み動作の後に10msのウエイトを入れないと正常に動作しませんでした。 | |
|
|
| というわけで、H8-3664Nでシリアル通信と内臓I2C-EEPROMが使えるようになりました。 |
| Last up date 2007/6/28 | |