RX231のコード生成を用いた簡易IIC通信について

電流・電圧測定デバイスであるINA233を用いて電圧値を測定し,測定値を簡易IIC通信でRX231に送るプログラムを作成しておりますが上手くいきません.

RX231シリーズ R5F52316ADFM 

ROM:256Kbyte RAM 32Kbyte  外部発振20MHzを使用しています.

コード生成はSCI12を簡易IICバスに設定し,生成しました.

void main(void)
{
    R_MAIN_UserInit();
    /* Start user code. Do not edit comment generated here */
   {
    uint8_t     adr         =0      ;//7bit address
 uint8_t     dir         =0      ;//0:Write 1:Read
 
 uint8_t  tx_buf[255] = {0};//send data
     uint8_t  rx_buf[255] = {0};//receive data
 
 while(1){
  adr = 0x41;
  dir = 0x00;
  adr = (adr<<1) | (dir & 0x00);
  tx_buf[0] = 0x88; //READ_VIN PMBusコード ina233
  tx_buf[1] = 0x89; //READ_IN PMBusコード ina233
    
  //PMBusコマンド ina233に送信
  R_SCI12_Create();
  R_SCI12_Start();
  R_SCI12_IIC_Master_Send(adr,&tx_buf[0],3);
  R_SCI12_Stop();
 
  adr = 0x41;
  dir = 0x01;
  adr = (adr<<1) | (dir & 0x00);
 
  //ina233からデータ取得
  R_SCI12_Start();
  R_SCI12_IIC_Master_Receive(adr,rx_buf,3);
  R_SCI12_Stop();
 }
   }
  
    /* End user code. Do not edit comment generated here */
}

CS+の設定等もよく分からないのでその辺りも教えていただけるとありがたいです.

初歩的な質問ですいませんが,よろしくお願いいたします.

//INA233のデータシート

www.ti.com/.../ina233.pdf

Parents
  • fiReさん、こんにちは。NoMaYです。

    ごめんなさい。以下は私のチョンボですね。申し訳ないです。(これは恥ずかしいですね。)そして、修正後でも rx_buf[0]='A'(0x41), rx_buf[1]='''(0x27) ですと期待値と異なっていますね。ごめんなさい、私では、ここまでが限界です。他の方からリプライを待って頂けますか、、、

    誤)

    void U_SCI12_IIC_Master_Receive_UWT(uint8_t adr, uint8_t * const rx_buf, uint16_t rx_num)
    {
        R_SCI12_IIC_Master_Send( (uint8_t)((adr << 1) | 1), rx_buf, rx_num );
        do{}while (g_sci12_rx_ready_flag != 1);
        g_sci12_rx_ready_flag = 0;
    }

    正) というか私が意図していたもの

    void U_SCI12_IIC_Master_Receive_UWT(uint8_t adr, uint8_t * const rx_buf, uint16_t rx_num)
    {
        R_SCI12_IIC_Master_Receive( (uint8_t)((adr << 1) | 1), rx_buf, rx_num );
        do{}while (g_sci12_rx_ready_flag != 1);
        g_sci12_rx_ready_flag = 0;
    }

     

Reply
  • fiReさん、こんにちは。NoMaYです。

    ごめんなさい。以下は私のチョンボですね。申し訳ないです。(これは恥ずかしいですね。)そして、修正後でも rx_buf[0]='A'(0x41), rx_buf[1]='''(0x27) ですと期待値と異なっていますね。ごめんなさい、私では、ここまでが限界です。他の方からリプライを待って頂けますか、、、

    誤)

    void U_SCI12_IIC_Master_Receive_UWT(uint8_t adr, uint8_t * const rx_buf, uint16_t rx_num)
    {
        R_SCI12_IIC_Master_Send( (uint8_t)((adr << 1) | 1), rx_buf, rx_num );
        do{}while (g_sci12_rx_ready_flag != 1);
        g_sci12_rx_ready_flag = 0;
    }

    正) というか私が意図していたもの

    void U_SCI12_IIC_Master_Receive_UWT(uint8_t adr, uint8_t * const rx_buf, uint16_t rx_num)
    {
        R_SCI12_IIC_Master_Receive( (uint8_t)((adr << 1) | 1), rx_buf, rx_num );
        do{}while (g_sci12_rx_ready_flag != 1);
        g_sci12_rx_ready_flag = 0;
    }

     

Children
No Data