チョコです。
一月程度,忙しい日が続いたのも何とか終わったので,RL78のサンプルプログラム等を再開しようと思います。
その第1弾として,ソフトウェアによるI2Cバスのスレーブ機能を考えています。
10pinのRL78/G10にはIICA0が搭載されていないので,I2Cバスのスレーブとして使用できませんでした。
そこで,R5F10Y16(ROM:2KB,RAM:256B)でどこまでできるかにチャレンジしてみることにします。
(R5F10Y17(ROM:4KB,RAM:512B)の方が楽なのですが,入手性の問題から秋月で入手できるR5F10Y16を
ターゲットにしてみました。)
さすがに,400kbpsのファースト・モードには対応できないので,100kbpsの標準モードをターゲットにします。
まずは,ターゲット仕様を決めます。
メモリが少ないので,どこまで実現できるか楽しみです。
RL78でのソフトウェアによるI2Cバスのスレーブ機能の実現.pdf
> 実際には最初の200バイト程度は使えない cstart.asm を小変更すると CALLT テーブル領域にスタートアップのコードの大半を収めることができ、使われない領域を減らせます。japan.renesasrulz.com/.../22161 に添付のファイルでそれを行っているので宜しかったら見てみて下さい。
> 本当は,ベクタ領域の未使用分も使おうとしました。 『RL78/G10 ユーザーズマニュアル ハードウェア編』によると RL78/G10 のベクタ・テーブル領域は 10ピンの製品は 0001AH~0007DH の 100バイト、16ピンの製品では 0002AH~0007DH の 84バイトの連続した領域が何の用途も割り当てられてないですね。これを使わないのは勿体ない!