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.

[参考译文] TM4C1297NCZAD:勘误表 LCD#01

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/616652/tm4c1297nczad-errata-lcd-01

器件型号:TM4C1297NCZAD

根据勘误 LCD#01:

"只要通过置位 LCD LIDD 控制(LCDLIDDCTL)寄存器的 DMAEN 位来请求 LIDD 模式 DMA 事务、在分别置位 LCDDMABAFB 和 LCDDMACAFB 寄存器中的 LCD DMA 帧缓冲器 n 基地址和上限地址之后、 下一次尝试访问任何 LCD 控制器寄存器会导致微控制器和 JTAG 连接无响应。 上电复位可恢复器件。"

建议的解决方法是在每次 DMA 事务之前插入复位 DMA 引擎的代码、并在该复位期间将 CS 线路临时重新配置为 GPIO。

我正在使用 来自 TivaWare 外设库2.1.4的 LCD.c 中的 API 进行 LIDD 模式 DMA 事务、如下所示。 似乎适用勘误表 LCD#01。 但是 、我 从未观察到控制器在写入 LCD 时无响应的任何问题。 我目前没有使用推荐的解决方法。 我有2个问题:

1.如果 对我的代码应用了勘误表 ,我是否会每次都看到错误? 或者,这是否是一个静止的问题,在一个蓝色的月里,它的丑陋头会被一个可怕的问题?  

2.我是否应该应用变通办法? 我对这种变通方法有点怀疑。 如果 有必要、为什么它没有在 LCD.c LCDIDDDMAWrite()内实现?

我的代码示例如下:

//逐行发送脏矩形  

for (int y = top; y <= bottom;y++)

//指向 nex 显示行;  

//设置 DMA 的开始和长度

(笑声)

         //启动 DMA 传输
         uint32_t mask =(LCD_INT_EOF0 | LCD_INT_DMA_DONE);
         LCDIntClear (LCD0_BASE,MASK);
         LCDIDDDMAWrite (LCD0_BASE、0、dmaStart、dmaLength);
              
         //等待 DMA 完成
         while ((LCDIntStatus (LCD0_BASE、false)& mask)!= mask){}
         LCDIDDDMADisable (LCD0_BASE);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Silke、
    如果勘误表适用于您在应用中的操作模式、那么即使您尚未遇到问题、我强烈建议您应用变通办法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Charles。

    您是否知道问题是否可重现? 如果是、您能否提供引起此问题的源代码?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Silke、
    遗憾的是、我没有用于重现问题的测试案例。 过去几个芯片修订版本的勘误表就在此处。 因此、在我开始支持该 MCU 之前已经存在了一段时间。 我的建议仍然是采取变通办法。 变通办法是否存在任何问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Silke、
    我的一位同事解释说、当启用 DMA 时、LCD 控制器的某些寄存器将无法访问。 这些已在寄存器说明中提到。 访问 LIDD 面板的控制器需要这些寄存器。 因此、要在计划了活动 DMA 后访问 LIDD 面板、需要通过将其复位来禁用 LCD 的 DMA 控制器。 但是、这样做也会将控制引脚重置到 LIDD 面板。 因此解决方法。 权变措施不是 TivaWare 的一部分。 此外、只要您不访问这些寄存器(LIDDCS0ADDR、LIDDCS0DATA、LIDDCSR1ADDR 和 LIDDCSR1DATA)、就不会出现问题