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.

[参考译文] MSP430F437:勘误表 US13.. 需要有关 USART 模块勘误表的其他信息..

Guru**** 2390755 points
Other Parts Discussed in Thread: MSP430F437

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/917382/msp430f437-errata-us13-need-additional-info-about-usart-module-errata

器件型号:MSP430F437

大家好、MSP430团队、

我的客户要求一些额外的信息/数据 WRT MSP430F437勘误表 US13、如下所示。

如果在下面的3种情况中的任何一种发生接收中断、那么微控制器是否有可能在上面的勘误表定义的2位时间内不为 USART RX ISR 提供服务。  我们在19200处运行 UART、因此2个位周期为105us。  

是否存在根据以下3种情形进行勘误的可能性。 是否有任何方法可以防止出现以下情况?  例如、我们能否在擦除/写入信息闪存之前禁用 UART RX 中断?

情景1. 另一个中断已经触发、CPU 处于另一个 ISR 中。 在 USART 接收数据包时、还有一些其他 ISR 处于活动状态。
 a)基本定时器 ISR
 b) TimerA1捕获中断
 c)后台任务触发的周期 ADC 中断

情形2. 在闪存写入非易失性数据期间、CPU 在闪存控制器擦除数据或将数据写入信息闪存时暂停

情景3. 程序在进入睡眠模式(LPM3)之前禁用全局中断、但不禁用 USART RX 中断。

此外... 是否有关于“不可预测的程序执行”的更详细的描述
 a) PC 计数器是否可以跳转到闪存中的意外位置?
 b)变量是否可以覆盖 RAM 中的变量?
 c)是否会发生 POR/WDT 复位?

谢谢、Merril

参考:

https://www.ti.com/lit/ds/symlink/msp430f437.pdf

https://www.ti.com/lit/ug/slau056l/slau056l.pdf

https://www.ti.com/lit/er/slaz208g/slaz208g.pdf

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

    勘误表是关于起始位检测中断的、因此场景3似乎与其使用冲突。 这将使 CPU 脱离禁用 UART 所用时钟的低功耗模式。

    URXSE 位控制该中断的产生、因此除非该中断被置位、否则不会出现问题。

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

    嘿、Merril、

    我无法找到更多信息、但似乎在第一个边沿请求起始位检测中断、这表示一个开始位进入。  但几位后、在接收到起始位后、它会自动清零。  似乎有一个时间窗口(我猜在第2位的末尾)、在这个时间窗口中中断标志被清除、但是 MSP430仍然认为有一个中断挂起。  如果允许、它将尝试为中断提供服务、但找不到设置的标志来将其指向正确的矢量。  因此、它最终会跳转到随机 ISR 矢量。   

    我认为情形1是此处的主要风险因素、防范风险的唯一方法是确保您的 ISR 足够短、仍能满足勘误响应时间要求。  

    对于场景2和3、如果禁用了 GIE 或 USCI 中断、那么我认为不会出现问题、因为永远不会有实际的中断请求。  (我认为所有中断应该在闪存擦除和写入前被禁用。)

    希望这对您有所帮助。  谢谢、

    JD  

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

    [引用 USER="JD Crutchfield">似乎有一个时间窗口(我猜在第二位的末尾)、在这个时间窗口中中断标志被清除、但 MSP430仍然认为有一个中断挂起。  如果允许、它将尝试为中断提供服务、但找不到设置的标志来将其指向正确的矢量。  因此、它最终会跳转到随机 ISR 矢量。  如果在中断服务之前清除了其他中断源的标志、则"跳转到随机 ISR 矢量"是否会发生?

    MSP430FR5994:在 另一个 MSP430上禁用/启用单个定时器中断时出现奇怪/未记录的行为、因此为 "无锁"技术清除 CCIE 位可能会导致跳转到错误的地址、原因不能理解。

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

    嘿、切斯特、

    老实说、我真的不确定、但我不认为... 至少在这种情况下、似乎是 USCI 模块中断请求的勘误表、可以使用另一个硬件版本进行修复。  

    我认为这不会对几代后推出的 FR5xx 器件提供太多见解。   

    谢谢、

    JD