RL78/G13のSPIでEEPROMの読み書き

RL78/G13のSPI(CSI)でEEPROMをお読み書きしたいのですが、接続しているEEPROM(BR93L46F)は

起動時書き込み禁止になっており、書き込み許可をする動作が必要です。

一旦CSIの機能をI/Opポートに変えて、書き込み許可処理をした方がいいのでしょうか?

サンプルプログラムはありますでしょうか?

アセンブラがわからないので、C言語だけで実現したいです。

  • R_SAU0_Createの最後で呼び出しています。
  • チョコです。

    提示されたプロジェクトの中で「R_CSI11_Start」を検索した結果を示します。

    この結果を見ると,この関数を呼び出しているところが見つかりませんでした。

    「R_CSI11_Start」が呼び出されていないと,SE0レジスタのビット3が立っていないはずですので,確認してみてください。

  • 「R_CSI11_Start」関数の呼び出しはどうなっていますか。
    R_SAU0_Createの最後で呼び出しています。

    なんか、見てるもんが違う感じですね。

    r_cg_serial.c:

    void R_SAU0_Create(void)
    {
        SAU0EN = 1U;    /* supply SAU0 clock */
        NOP();
        NOP();
        NOP();
        NOP();
        SPS0 = _0000_SAU_CK00_FCLK_0 | _0000_SAU_CK01_FCLK_0;
        R_CSI11_Create();
    }
    
  • チョコです。
    >なんか、見てるもんが違う感じですね。
    はい,私もそう思います。
  • チョコです。

    わかさん,誤解されているようなので,直接記述します。

    main関数の中80行目で「R_CSI11_Create」関数を呼び出していますが,ここは,「R_CSI11_Start」関数を呼び出すところではないですか。

    (コメントアウトするのではなく,呼び出す関数を変更するのが正しい変更方法だと思います。)