This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28379D:带 BQ32000的 TMS320F28379D 接口

Guru**** 2387830 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1393837/tms320f28379d-tms320f28379d-interface-with-bq32000

器件型号:TMS320F28379D

工具与软件:

我尝试连接 BQ 32000、地址未正确写入、

我将写入0xD0、但地址发送为0x0A 且带 R  

我在这里做错了什么。

void I2C_GPIO(){

EALLOW;

GpioCtrlRegs.GPCGMUX2.bit.GPIO92 = 1;// I2C RTC_SCL-A
GpioCtrlRegs.GPCGMUX2.bit.GPIO91 = 1;// I2C RTC_SDA-A

GpioCtrlRegs.GPCMUX2.bit.GPIO92 = 2;// I2C RTC_SCL-A
GpioCtrlRegs.GPCMUX2.bit.GPIO91 = 2;// I2C RTC_SDA-A

GpioCtrlRegs.GPCPUD.bit.GPIO92 = 0;// I2C RTC_SCL-A
GpioCtrlRegs.GPCPUD.bit.GPIO91 = 0;// I2C RTC_SDA-A

GpioCtrlRegs.GPCQSEL2.bit.GPIO92 = 3;// I2C RTC_SCL-A
GpioCtrlRegs.GPCQSEL2.bit.GPIO91 = 3;// I2C RTC_SDA-A

GpioCtrlRegs.GPCGMUX2.bit.GPIO90 = 1;//I2C RTC_IRQ
GpioCtrlRegs.GPCMUX2.bit.GPIO90 = 2;// I2C RTC_IRQ
GpioCtrlRegs.GPCPUD.bit.GPIO90 = 0;// I2C RTC_IRQ
GpioCtrlRegs.GPCDIR.bit.GPIO90 = 0;
GpioCtrlRegs.GPCQSEL2.bit.GPIO90 = 3;// I2C RTC_IRQ

EDIS;
}

//
// I2CA_Init -初始化 I2CA 设置
//

空 RTC_I2CA_Init (空)

EALLOW;

I2caRegs.I2CMDR.bit.IRS = 0;
I2caRegs.I2CPS.all = 8;//预分频器-需要在模块时钟上实现7-12MHz (200/16+1 = 11Mhz)
I2caRegs.I2CCLKL = 49;//注意:必须为非零
I2caRegs.I2CCLKH = 49;//注意:必须为非零
// I2caRegs.I2CIR.all = 0x1A;// Enable SCD & ARDY ___interrupts
// I2caRegs.I2CSTR.all = 0xFF;// Enable interrupts
I2caRegs.I2CIER = 0x24;//启用 SCD 和 ARDY 中断
I2caRegs.I2CMDR.all = 0x0020;//使 I2C 退出复位
I2caRegs.I2CMDR.bit.xa = 0;

I2caRegs.I2CFFTX.ALL = 0x6000;// Enable FIFO mode and TXFIFO (启用 FIFO 模式和 TXFIFO)
I2caRegs.I2CFFRX.ALL = 0x2040;// Enable RXFIFO、Clear RXFFINT、
I2caRegs.I2CMDR.bit.IRS = 1;
I2caRegs.I2CMDR.bit.stp = 0;

EDIS;

返回;
}

//
// I2CA_WriteData -发送 I2CA 消息
//
UINT16 I2CA_WriteData ()

INT I=0;
//
//等待直到 STP 位从任何之前的主通信中清除。
//模块清除此位的操作被延迟到 SCD 位之后
//设置。 如果在启动新消息之前未检查该位、则为
// I2C 可能会感到困惑。
//
I2caRegs.I2CMDR.bit.IRS = 1;//复位
//
//设置从地址
//
I2caRegs.I2CMDR.bit.MST = 1;//模块选择为主器件
I2caRegs.I2CMDR.bit.TRX = 1;// TX mode (I2caRegs.I2CMDR.bit.TRX = 1)
if (I2caRegs.I2CMDR.bit.stp =1)

}
if (I2caRegs.I2CSTR.bit.BB =1)

//返回 I2C_BUS_BUS_ERROR;
}
I2caRegs.I2CSAR.bit.SAR = WRITE_ADDRESS_SLAVE;
//
//设置要发送的字节数
// MsgBuffer + Address
//
I2caRegs.I2CCNT = 0x05;

I2caRegs.I2CMDR.bit.STT = 1;//开始通信以在线进行控制

I2caRegs.I2CDXR.bit.data = 0x00;
I2caRegs.I2CDXR.bit.data = 0x20;
I2caRegs.I2CDXR.bit.data = 0x30;

I2caRegs.I2CMDR.bit.stp =1;

返回 I2C_SUCCESS;
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Akash:

    我们的 I2C 专家已离开办公室、请期待明天回复。

    谢谢!

    Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Akash:

    对不起,我现在看到你的消息。 您是否仍有任何问题或问题是否已得到解决?

    此致、

    Aishwarya.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Akash、

    如果没有其他问题了、我将继续并关闭该主题。  

    此致、

    Aishwarya.