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.

[参考译文] MSP432E401Y:使用 MSP432E401Y Launchpad 时 I2C LCD 上电不一致

Guru**** 2540720 points
Other Parts Discussed in Thread: MSP432E401Y

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/789070/msp432e401y-i2c-lcd-inconsistent-poweron-using-msp432e401y-launchpad

器件型号:MSP432E401Y
主题中讨论的其他器件: MSP432P401R

背景:

在我的 MSP432E401Y Launchpad 上、我使用 driverlib i2c 重复启动函 数来访问连接的 NHD-C0220BiZ-FS (RGB)-FBW-3VM 2行20字符 LCD 显示屏。

在 LCD 单元上显示字符之前、我经常需要为板加电几次。

我对 i2c 例程使用轮询(非中断模式)。 此 LCD 显示屏使用具有 i2c 接口的 ST7036i 控制器。

该显示可与 MSP432P401R Launchpad 和 driverlib 例程良好配合使用、从而实现重复启动。

几个月来,我一直在努力解决这一问题,但没有成功。 昨天、在回顾它时、我看到一篇文章、指出 MSP43E401Y 具有与 Tiva C TM4C129x 系列相同的内核。

Tiva C 具有 SPMZ850G (2017年3月修订)中 i2c (MSP432E401Y 勘误表未列出)的器件勘误表。

具体而言、建议编号 I2C_08 (I2C 主设备忙状态位不会立即置位)。

一个建议的权变措施(使用轮询时)是"在轮询 I2CMS 寄存器忙状态之前添加一个至少为 I2C 时钟周期60%的延迟环路"。

driverlib 函数:'bool I2CMasterBusy (uint32_t ui32Base)'不会实现这一点。

我修改了我的代码,在每次调用 I2MasterControl(.....)之间,我的毫秒延迟函数被调用,延迟为1ms。 和 I2MasterBusy (...) 到目前为止、我一直在为 LCD 模块供电。

现在回答我的问题:

- MSP432E401Y 的 I2C 器件勘误表是否与 TM4C129x 相同?  

-是否有更新的 MSP432E401Y 器件勘误表文档、说明是否有更新的勘误表? 我遇到的最新问题是:SLAZ709 - Octber 2017

我的新 LCD 初始化代码的一部分示例 (延迟为1ms)

I2CMasterSlaveAddrSet (I2C2_base、LCD_SLAVE_ADDRESS、false);

I2CMasterDataPut (I2C2_base、0x00);//发送开始、地址和命令模式字节(0x00)
I2CMasterControl (I2C2_base、I2C_MASTER_CMD_BURST_SEND_START);//开始发送数据

my48Mdelayms (1);   /1ms 延迟

while (I2CMasterBusy (I2C2_base));//等待传输完成

I2CMasterDataPut (I2C2_base、0x38);//函数集- 8位、2行显示5x8、安装表0
I2CMasterControl (I2C2_base、I2C_MASTER_CMD_BURST_SEND_CONT);//发送刚刚放入 FIFO 中的数据

my48Mdelayms (1);   /1ms 延迟

while (I2CMasterBusy (I2C2_base));//等待传输完成