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.

[参考译文] AM2434:AM24 I2C 噪声滤波器

Guru**** 2394295 points
Other Parts Discussed in Thread: AM2434, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1408256/am2434-am24-i2c-noise-filter

器件型号:AM2434
主题中讨论的其他器件: SysConfig

工具与软件:

您好!  

我们当前遇到 AM2434的 I2C 引脚上的硬件干扰问题。 由于部分硬件已经发货、我们想询问是否有方法可以通过软件进行过滤。

  1. 在 TRM 手册的"12.1.3.4.8 I2C 噪声滤波器"部分中、它提到 I2C 信号可以通过 PSC 寄存器进行滤波。 噪声滤波器被描述为:"噪声滤波器始终为 INTERNAL_CLK 时钟的一个周期。" 这是指简单的下采样、还是有实际的硬件滤波器?

  2. 我们已在 SysConfig 中将比特率设置为100kHz、PSC 寄存器值可读为19。 由于 INTERNAL_CLK 为4.8MHz、这是否意味着4.8MHz 已在使用周期为1/208ns 的滤波器?

  3. 如果我们要修改该滤波器设置、似乎这样做会影响 I2C 时钟配置。 此外、SysConfig 不提供此设置的选项(在 SysConfig 生成代码后似乎时钟已完全配置)。 您能否提供一个示例代码、说明如何以编程方式修改此设置? 在调用后修改 PSC 及相应 SCLL 和 SCLH 寄存器设置是否足够InitAM24xSystem()

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

    您好、弗雷德里克:

    感谢您访问德州仪器(TI) E2E 支持论坛。

    我已获取您的意见并进行处理。 请等待一段时间再回来。

    此致、

    Tushar

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

    您好、弗雷德里克:

    对延迟响应深表歉意。

    这是指简单的下采样、还是有实际的硬件过滤器?

    是的、这只是指 I2C 的采样率、没有硬件滤波器。

    [报价 userid="464815" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1408256/am2434-am24-i2c-noise-filter "]我们已在 SysConfig 中将比特率设置为100kHz、PSC 寄存器值读数为19。 由于 INTERNAL_CLK 为4.8MHz、这是否意味着4.8MHz 已在使用周期为1/208ns 的滤波器?[/QUOT]

    是的、以上理解是正确的。

    [报价 userid="464815" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1408256/am2434-am24-i2c-noise-filter "]如果我们要修改此过滤器设置、似乎这样做会影响 I2C 时钟配置。[/QUOT]

    您不能修改以上过滤器设置。 该设置取决于为 I2C 配置的内部时钟。

    希望上述信息对您有所帮助。

    此致、

    Tushar

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

    如果在 I2C 的 SCL 和 SDA 线路上进行宽度约为300ns~500ns 的滤波、有没有建议的滤除方法? (假定硬件已经出厂并且不能被修改、只能使用软件解决方案。)

    我们的 I2C 比特率=100kHz

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

    您好!

    你有什么建议吗?

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

    您好、弗雷德里克:

    您有什么建议吗?

    对延迟响应深表歉意。

    要增加滤波宽度、只需更改预分频器值以及 SCLL 和 SCLH 寄存器值即可生成1.2 MHz 内部时钟。

    在1.2 MHz 的这个内部时钟下、您将获得~833ns 的滤波宽度。  

    要实现上述目标、请在一开始的应用代码处配置预分频器和 SCLL、SCLH 寄存器。 就在 DRIVERS_OPEN 函数调用之后、将预分频器值配置为79、将 SCLL 和 SCLH 配置为0、以生成1.2 MHz 频率的内部时钟、保持 I2C 比特率为100KHz。

    希望上述信息对您有所帮助。

    此致、

    Tushar