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.
我希望这条消息能让您满意。 我在 LCM 模块上有一个问题、锁步比较失败经常发生、但在我们频繁进行上电和断电测试时并不是很频繁。 当故障发生时、LCM_STATUS.LSEN=1、LCM_STATUS.CMP_FAIL=1、LCM_STATUS。 (位23位16)= 0x00、流程图如下:
问题1:为什么选择 LCM_STATUS。 发生故障时、软件复位无法清除 CMP_FAIL?
问题2:我们频繁进行通电和断电测试时、LCM 出现故障的原因、您有什么看法吗?
期待您的回复,谢谢。
塞缪尔,你好!
为什么选择 LCM_STATUS。 发生故障时、软件复位无法清除 CMP_FAIL?
寄存器位已经将源设定为"PORESETn"。 这意味着它仅在器件下电上电时
如果您希望自行清除状态、则可以使用 LCM_STATUS_CLEAR 寄存器强制清除。
问题2:当我们频繁执行开机和关机测试时、您对 LCM 失败的原因有什么看法吗?
您在通电和断电测试中进行哪些测试?
看起来您在软件中强制执行比较失败? 在输出端强制比较误差
否则、它可能表明 设备出现功能故障、但让我们了解您在测试过程中具体做了什么、以及您测试了多少个显示此错误的单元?
谢谢。
Prarthan.
您好、Prarthan、
是的、我在软件测试中强制 CMP1和 CMP2失败、但我在检查后清除了错误。 测试无法 使 LCM_STATUS 生效。 CMP_FAIL、所以我认为它与自检和强制测试无关。
我在下面发布了力测试和自检代码、
补充资料:
如果我不进行强制测试和自检、也会发生,LCM_STATUS。 当我们频繁进行通电和断电测试时、CMP_FAIL=1的频率
塞缪尔:
因此您只能接通电源-->启用比较器(LCM_REGs[LCM_CONTROL. CMPEN= 1]-->关闭电源-->重复
如果是上述情况、则属于功能故障。
您是否在多个装置上尝试过此功能? 您重现 CMP_FAIL 的频率如何?
谢谢。
普拉森
是的、在执行此测试时、几乎每个 MCU 都会发生这种情况、频率是不固定的、有时是40分钟、有时是2小时以上。
塞缪尔:
感谢您的澄清。
您能向我发送一个代码、让我在结束时能够尝试复制该代码吗?
谢谢。
普拉森
我的代码不复杂、您可以 在启用 LCM 后复位 MCU 以重复此情况。 我的复位资源是 SYSCTL_simulateReset (SYSCTL_SIMRESET_XRSN);
撒母耳,你好!
因此您不是每次迭代中仅使用针对 XRSn 的 SIMRESET 对 MCU 进行下电上电?
hanks.
从上图可以看出、每次迭代过程中、它都是通电、掉电的。
您能否分享电源的开机关闭斜坡时间并尝试放松上升和下降时间、然后再次尝试相同的操作?
谢谢。
普拉森
可能会发生重复上电和断电 LCM 比较失败、使用 SIMRESET 重复复位 MCU 也 会发生 LCM 比较失败。
您认为 LCM 失败的可能原因是什么? 你能给我一些调查的指示吗?
山姆:
我将不得不使用 SIMRESET 尝试重复性重置 MCU、并让您知道我是否能够重现您看到的比较错误。
谢谢。
普拉森
在进行测试时,是否还连接了调试器或独立设备?
谢谢。
普拉森
山姆:
根据您的输入、我将在我结束时在闪存上运行该代码、它将告知您我是否遇到比较失败的情况。
塞缪尔,你好!
我能够使用上述代码看到 CMP 失败。
您能否向我们发送有关芯片上器件型号的详细信息? 也许您看到的器件的芯片本身的图片
谢谢!
F2800157QPHPRQ1
塞缪尔:
我们需要知道您正在使用的芯片版本是什么?
修订版本 A 还是 B? 您会发现写入芯片本身的内容
例如,如下所示:
您好、Sam、
我在这里确认的是设计团队的一些问题、
明天再回来
谢谢
您好、Sam、
我仍在与设计团队合作、看看问题的原因是什么。
我将在收到他们的响应后立即更新
谢谢
您好、Sam、
上周更新。
我们能够在生成 SIMRESET XRSn 时重现错误并找到错误的根源。
我们将在我们做出原因并采取必要措施来防止此类情况发生后立即更新
但我们无法在下电上电测试中生成比较错误
您能否确认您是否能够在电源循环时生成错误?
谢谢。
普拉森
您好、Sam、
我们在同一个测试用例上再尝试了几次测试。
我们发现在下一个 XRSn 周期中启用比较之前、已发生比较失败。
因此、在前一周期和下一周期中启用比较失败和调查根本原因(可能是复位置位过程触发错误)之间会发生比较错误。
因此、对于这种情况、您应该按照此权变措施进行交叉验证并继续下一步。 我已经在最终验证了这一点、请检查一下、然后告诉我这是否对您有效
if((HWREG(LCM_CPU1_BASE + LCM_O_STATUS) & LCM_STATUS_CMP_FAIL) == 0U ) { HWREG_BP(LCM_CPU1_BASE + LCM_O_CONTROL) |= LCM_CONTROL_CMPEN; asm(" RPT #10 || NOP"); HWREG(CPUSYS_BASE + SYSCTL_O_SIMRESET) = 0xA5A50002; asm(" RPT #10 || NOP"); } else { Compare_error = true; // Clear compare fail from previous cycle and enable compare to continue HWREG_BP(LCM_CPU1_BASE + LCM_O_STATUS_CLEAR) |= LCM_STATUS_CLEAR_CMP_FAIL; asm(" RPT #10 || NOP"); HWREG_BP(LCM_CPU1_BASE + LCM_O_CONTROL) |= LCM_CONTROL_CMPEN; asm(" RPT #10 || NOP"); HWREG(CPUSYS_BASE + SYSCTL_O_SIMRESET) = 0xA5A50002; }
感谢您的回复、我稍后会测试、结果将在下周与您分享。
我在启用 LCM 之前清除了 LCM 状态、故障也发生了、这种方法不能解决这个问题、请进一步研究、谢谢。
撒母耳、你好!
这里的重点是在启用比较之前清除比较标志、因为该标志是在上一个复位周期中设置的。
也发生故障
连续的复位触发器会触发比较错误、但只要您在启用比较之前检查标志并清除标志、就应该没有问题。
您能解释一下您想要在应用中实现什么与多个背对背 XRSn ?
谢谢!
启用 LCM 后 I TEST LCM 自检和 CMP 错误强制测试、然后复位 MCU。 故障也会发生。
Sam、您好!
我们已将问题范围缩小至 sysclkdivsel、因此在重复 xrsn 触发测试中、应该像您将 sysclkdivsel 设置为2而不是1一样有效。
#define DEVICE_setClock_CFG (SYSCTL_OSCSRC_XTAL | SYSCTL_IMULT (48)|\
SYSCTL_REFDIV (2)| SYSCTL_ODIV (4)|\
SYSCTL_SYSDIV (2)| SYSCTL_PLL_ENABLE |\
SYSCTL_DCC_BASE_0)
-> 将 SYSDIV 从1设置为2应该可以解决您的问题这个定义在 device.h 文件中
请尝试此操作、我们已验证此操作可以正常工作。
谢谢。
为什么更改 SYSDIV 可以解决此问题? 理论的细节是什么? 请给我更多的信息,谢谢。
如果我将 SYSDIV 从1更改为2、是否仍需要清除 LCM 状态、然后才能启用 LCM?
您好、Sam、
如果已将 sysdiv 设置为2、则在启用之前无需检查状态、否则它将正常工作。
将 sysdiv 设置为1并触发连续复位(在您的情况下为 SIMRESET. XRSn)在复位置位期间具有传播到比较器并产生错误的时钟干扰。 由于在复位生效期间发生错误并不重要、因此如果您希望 sysdiv 设置为1、那么您可以在启用前遵循状态清除权变措施、否则将 sysdiv 设置为2。
只有 F2800157有此问题? F2800156是否有相同的问题? 换言之、是否每个包含 LCM 的 TI 芯片都有该问题?
山姆:
适用于所有 f280015x 器件。
谢谢