RL78/G13のSPI(CSI)でEEPROMをお読み書きしたいのですが、接続しているEEPROM(BR93L46F)は
起動時書き込み禁止になっており、書き込み許可をする動作が必要です。
一旦CSIの機能をI/Opポートに変えて、書き込み許可処理をした方がいいのでしょうか?
サンプルプログラムはありますでしょうか?
アセンブラがわからないので、C言語だけで実現したいです。
チョコです。
MicrowireBUSのEEPROMについてはRL78/G13でアプリケーション・ノートが出ていました。
「RL78/G13 Microwire 通信によるEEPROM 制御 CC-RL 」
https://www.renesas.com/jp/ja/software/D3017572.html
これは,CC-RLを用いてAT93C46Dを制御しているものですが,使えるかと思います。
NAKAさん,
Microwireでは,最初の1のデータをスタート・ビットとしているので,その前に必要な数だけ0のデータを送れば,8bit単位での通信になりまよ。
教えて下さい。
チョコさんに教えていただいた情報を元にプログラムを作成しました。
結果として、読み込みを行うと、書き込んだ値から1bitずれた状態で読み込まれます。
0x1111を書き込んで0x0x0888が読み込まれる。
今はクロックの位相選択は4でタイプ1でも同じです。
タイプ2と3だとまともに読めません。
原因は何が考えられますでしょうか?
SPIが動作しないソースを添付します。
MOTOR-RL78_20191121-send.zip
提示されたプロジェクトの中で「R_CSI11_Start」を検索した結果を示します。
この結果を見ると,この関数を呼び出しているところが見つかりませんでした。
「R_CSI11_Start」が呼び出されていないと,SE0レジスタのビット3が立っていないはずですので,確認してみてください。