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.

[参考译文] MSP432E411Y:LCD DMA 优先级和设置

Guru**** 2587365 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/919089/msp432e411y-lcd-dma-priority-and-setting

器件型号:MSP432E411Y

尊敬的香榭丽舍

有关 LCD DMA、下面是一些需要确认的问题。  

LCD DMA 是否独立于 UDMA?  

2.如果是、我们如何设置 LCD DMA 优先级?  

3.在20.3.2.1.2光栅模式部分中,DMA 引擎 生成中断。 如何排列 LCD DMA 中断的优先级?

如果您有任何建议、请随时告诉我。

非常感谢。

此致、

Janet

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

    您好!

    [引用 user="Janet Shen"]1. LCD DMA 是否与 UDMA 无关?  [/报价]

    是的、LCD DMA 引擎独立于 UDMA 模块。

    µDMA 数据表、DMA 控制器被称为微 DMA (μ DMA)。 μ µDMA 控制器提供了一种从 Cortex-M4F 处理器卸载数据传输任务的方法、从而可以更高效地使用处理器和可用的总线带宽。 μ µDMA 控制器可以在存储器和外设之间执行传输。 它为每个受支持的片上模块提供专用通道、并且可通过编程自动执行外设和存储器之间的传输、因为外设已准备好传输更多数据。

    LCD 控制器有其自己的专用高优先级 DMA 引擎、因此它不必从系统中的微 DMA (UDMA)模块窃取周期。 LCD DMA 引擎具有一个小型 FIFO、并且允许根据需要进行周期性中断。

    [引用用户="Janet Shen"]2. 如果是、我们如何设置 LCD DMA 优先级?  [/报价]

    LCD DMA 引擎中断看起来都是高优先级的、但看起来并不是相互优先级。 我认为这是因为这些中断仅与 LCD 模块相关、或者这可能意味着当任何一个中断被置位时、LCD 模块无法正常工作。 我将减少对优先级的关注、而是了解如何处理每个中断所代表的场景。

    [引用用户="Janet Shen"]3. 在20.3.2.1.2光栅模式部分中、DMA 引擎 生成中断。 如何排列 LCD DMA 中断的优先级?[/QUERP]

    请参阅我对问题2的评论。

    此致、

    James

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

    尊敬的 James:

    如果我们希望 LCD DMA 的优先级高于 EPI 和 UDMA、我们该怎么做?  

    因为当 EPI 将大数据写入 SDRAM 时、我们遇到了 LCD 显示屏闪烁的问题。

    我们已启用 LCD DMA 和双缓冲器、但没有改进。 我们是否可以让 LCD DAM 优先级作为最高优先级?

    如果您有任何建议、请随时告诉我。

    非常感谢。

    此致、

    Janet

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

    Janet、您好!

    LCD DMA 和 UDMA 是分开的。 如果您看一下数据表中的 uDMA 表、就不会有 LCD 选项。 LCD 配置似乎有问题、所以我不会担心优先级。 LCD DMA 中断标志是否指示问题?

    此致、

    James

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

    尊敬的 James:

    请在编码运行时查看 LCD DMA 的寄存器电流值。

    如果您有任何建议、请随时告诉我。

    非常感谢。

    此致、

    Janet

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

    Janet、您好!

    感谢您分享这些内容。 我看到 LCD_RISSET_FIFOU 设置为1。 根据 TRM、这意味着 LCD DMA 引擎无法跟上 LCD 消耗的数据速率。 该数据速率由 LCDCP 设置决定。 这可能是由于系统内存吞吐量问题或 LCDCP 设置不正确所致。 当发生此错误时、LCD 中断原始状态和置位寄存器(LCDRISSET)中的 FIFOU 位将置位。

    我看到 LCD_DMACTL_FIFORDY 设置为0x6 (512个字)、LCD_DMACTL_BURSTSZ 设置为0x4 (突发大小为16)。 这似乎是最大传输量、因此 LCD DMA 可能没有足够的时间在 LCD 数据速率的一个周期内传输所有数据。 尝试调整 LCDCP 设置。

    此致、

    James

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

    尊敬的 James:

    是的、我尝试将 LCDCP 从30000000 (30MHz)更改为6000000 (6MHz)。 但问题仍然存在。

    MAP_LCDModeSet (LCD0_BASE、LCD_MODE_RICG|LCD_MODE_AUTO_UFLOW_RESTART、6000000、ui32SysClock);

    因此、我仍然认为 LCD DMA 设置有问题。 您对 LCD 和 LCD DMA 引擎的设置有什么建议吗?

    请随时告诉我任何想法。

    非常感谢。

    此致、

    Janet

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

    Janet、您好!

    SysClock 频率是多少?

    在光栅模式下, ui32PixClk 指定光栅接口的像素时钟速率,有效值介于  ui32SysClk/2 和  ui32SysClk/255之间。 由于只支持整数分频器、实际时钟速率设置可能与所需速率略有不同。

    此致、

    James

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

    尊敬的 James:

    系统时钟为120MHz。

    除了减少像素时钟之外、您认为我可以尝试哪种解决方法?

    如果您有任何建议、请随时告诉我。

    非常感谢。

    此致、

    Janet

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

    Janet、您好!

    感谢您分享这些详细信息。 回顾一下您的初始帖子、我想知道您是否在询问是否更改与 NVIC 相关的中断优先级、而不是不同的 DMA 中断优先级。

    数据表(第6.3.3节)和 TRM (第2.2.2节)中讨论了中断优先级。 此外,我在 DriverLib API 指南 中发现,API IntPriorityGet ()和 IntPrioritySet ()可用于读取中断优先级,然后更改该优先级。

    此致、

    James