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.

[参考译文] TCAN4550-Q1:ECCERR 不断下拉 nINT

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1280631/tcan4550-q1-nint-is-constantly-pulled-down-by-eccerr

器件型号:TCAN4550-Q1
主题中讨论的其他器件:TCAN4550

你好

我正在通过跳线运行 rpi4 +定制 tcan4550板。

我已成功在 Linux 中启动 CAN 接口(rpi4 Linux 6.6.0)、并且能够向主机 PC 发送一条消息、rpi4的主机无法正常工作。

这跟踪到由错误 ECCERR 下拉的中断。

这是一个完整的 regdump:

 

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0000: 4e414354
0004: 31353534
0008: 00110201
000c: 00000008
0010: 3f3f0000
0800: c80004a0
0804: 00000002
0808: 00000000
080c: 00000800
0810: 00000000
0814: 00000000
0818: 00000000
081c: 00000000
0820: 00010083
0824: 20010000
0828: 00000000
082c: 00000000
0830: ff96a8ff
1000: 32150320
1004: 87654321
1008: 00000000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我已尝试屏蔽中断、但在尝试发送/接收数据后仍然看到它。 (请参阅随附的日志)

e2e.ti.com/.../log_2D00_can_2D00_rpi4.txt

您能否说明可能的原因?

是否需要更换芯片?

CAN 的原理图如下所示:

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

    内核日志如下:

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

    Filip、您好!

    我可以从寄存器转储中看到 ECCERR 位已设置、但我也看到 ARA (对保留地址的访问)位已设置。  如果这些是相关的、则可能表明导致问题的是对保留或未定义的空间存在一些不正确的 SPI 写入/读取访问。

    外部产生 ECC 错误的其他潜在原因包括器件损坏、或者访问期间发生的某种电压或时钟中断、从而导致位损坏。

    我已经查看了您的寄存器转储、没有看到跳出为明显错误或导致此问题的原因的任何内容。  我还审阅了原理图、结果看起来非常好。  但我对晶体/时钟电路也有一些建议。

    TCAN4550支持晶体和单端时钟。  当器件加电时、从 OSC2引脚提供一个1uA 的小电流、并使用一个比较器来确定 OSC2引脚上的电压是"接地"还是电压低于100mV (典型值)。  如果电压低于该阈值、该器件将禁用晶体跨阻放大器并在 OSC1上等待一个单端时钟信号。  如果 OSC2引脚电压大于该阈值、器件将启用互阻抗放大器并从 OSC1引脚向晶体提供电流、并且器件将监测 OSC2引脚上是否有振荡波形用作时钟。

    如果 OSC2波形峰-峰值幅度变得太大、则波形的最低电平可能超过用于检查 OSC2引脚是否"接地"的阈值。  如果出现这种情况、器件可能会暂时禁用放大器并切换到单端模式、直到波形 Vpp 衰减到较小的水平并且器件切换回晶振模式。  但在这段时间内、器件没有工作时钟、可能会发生 SPI、CAN 和存储器访问问题。

    从原理图中可以看出、晶体负载电容器看起来有点小、并且 OSC1和晶体之间没有一个串联阻尼电阻器可用于限制流向晶体的电流并防止振幅过大。  

    有关更多信息、请参阅 TCAN455x 时钟优化和设计指南应用手册。 (链接)

    我还没有看到未优化的晶体电路会导致 ECC 错误、但您可以尝试增大晶体电容器上的电容值、以查看是否有任何改进。  

    我已经看到一个未优化的晶体电路导致 SPI 和 CAN 通信问题。 如果没有任何 SPI 错误、ECC 错误可能意味着 TCAN4550器件已损坏。  

    此致、

    乔纳森

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

    您好、Jonathan!

    感谢您的全面解释和指向负载电容器的指针。

    在我将电容改为8.2 pF 并更换了芯片后、我启动了它并正常运行。

    供将来参考:

    我使用的这个晶体振荡器 ESR 是60Ω。 这将设计置于可接受值的边界范围内。 电容值较低+晶体错误导致出现了上述问题。
    感谢您发送编修。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Filip、

    不客气、我很高兴能为您提供帮助。

    此致、

    乔纳森