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.

[参考译文] TMS570LC4357:诊断 GIO1A/B -它如何工作?

Guru**** 2430620 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1282050/tms570lc4357-diagnostic-gio1a-b---how-does-it-work

器件型号:TMS570LC4357

尊敬的专家:

我看了看你对我的问题的回答:
TMS570LC4357:GIO1A 和 GIO1B 的实施(内部模拟环回)-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

查看您在此处发布的代码后:
RM48L952:IO 环回诊断-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
我有几个问题。

读取 DIN 寄存器中相应引脚的位即可开始测试:

txdata = SL_gioGetBit(sl_gioPORT, pin);

我不明白这一行的目的是什么。 永远不会使用存储在 rxdata 中的值:

rxdata = txdata;

已读取的位被翻转并写入 DSET 或 DCLEAR (取决于该值)。 我假设这样做是为了强制改变引脚状态:

txdata ^= (uint32)0x1U;

/* set txdata on the pin */
SL_gioSetBit(sl_gioPORT, pin, txdata);

在引脚更改 DIN 寄存器后、回读并与通过 DSET/DCLEAR 写入 DOUT 的值进行比较:


/* read back the value */
rxdata = SL_gioGetBit(sl_gioPORT, pin);

/* compare values */
if(rxdata == txdata)
{
    retVal = TRUE;
}
else
{
    retVal = FALSE;
}

根据我的理解、该测试只能向 DOUT 写入值、然后检查 DIN 是否反映 DOUT。 是这样吗?

谢谢、此致、
最大值

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

    您好、Max:

    我已开始处理您的问题、并将尽快提供更新。

    --

    谢谢。此致、
    Jagadish。

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

    您好、Max:

    很抱歉我的答复出现延误。

    Unknown 说:
    根据我的理解、该测试只能向 DOUT 写入一个值、然后检查 DIN 是否镜像了 DOUT。 这是否正确?

    是的、这是正确的。 在此测试中、我们将通过写入不同的值和回读相同值来测试 GIO 的信号路径。

    如果 GIO 的信号路径中存在任何问题、我们可能无法读取写入路径中的值、这表示 GIO 信号路径故障。 这看起来可能很简单、但它验证了完整路径(如模拟环回)、DIN 上的回读值并不仅仅是我们写入的值、而是根据该引脚上存在的引脚值计算得出的值。

    我的意思是、例如假设引脚对地短路、并且我使用 DSET 寄存器写入逻辑高电平、但读取 DIN 寄存器后、我没有获得逻辑高电平、因为引脚对地短路后、引脚值将为逻辑零。 因此、在本例中、我们的 GIO 模拟出现故障并指示发生了故障。 所以、这个测试看起来简单但是非常有效、并且测试了完整的 GIO 路径。

    --

    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    这意味着、对于 电容性负载、我们会在将 DOUT 设置为正确后延迟 DIN 的回读?

    谢谢、此致、
    最大值

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这意味着在 容性负载情况下,我们会在将 DOUT 设置为正确时延迟 DIN 回读?

    您说得对、容性负载将延迟回读。

    --

    谢谢。此致、
    Jagadish。