Other Parts Discussed in Thread: TCAN4550
器件型号: TCAN4550
您好的团队、
1.检查异常状态 (h000C) 后、我们观察到位 27 至 24 发生了异常。
您能否解释一下发生这些情况的条件?
它们在什么情况下发生?
2.这个状态是否被锁存?
(触发后,似乎保持该状态。 27 位至 24 位故障不会同时发生;它们按顺序发生、最终导致所有 27 位至 24 位都为“H"。“。)。)
此致、
Ryu。
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.
您好、Ryu、
TCAN4550 使用 SPI 接口上的 FIFO 来处理 MCU 使用的 SPI 时钟域与连接到运行数字内核和 MCAN 控制器的 OSC1/2 引脚的高速时钟(晶体)之间的频域交叉。
MCU 使用 SPI 时钟将数据加载到 FIFO 中以及从 FIFO 中拉出数据。 同样、数字内核使用高速时钟将数据加载到 FIFO 中并从 FIFO 中拉取数据。 器件还监测时钟周期以确保通过 FIFO 传递正确数量的数据位。 如果检测到不正确数量的时钟周期、则会导致在状态寄存器 0x000C 中报告“下溢“或“溢出“条件。
设置这些位的原因可能有几个。
第一个优势是整个 SPI 读取/写入事务的芯片选择不会保持低电平。 它必须保持低电平至少 64 个 SPI 时钟周期、该周期将包含标头字(0x41 或 0x61 的读取/写入操作码,地址和长度字段)后跟 32 位数据字。 支持多字读取/写入事务、因此数据字的数量必须与标头字中的 Length 字段的值相匹配。 因此、一个 SPI 事务中的 SPI 时钟数= 32 +(长度* 32)。
在初始开发过程中、这种类型的错误更为常见、当时正在开发 SPI 驱动器以满足 TCAN4550 协议和格式要求。
您可能看到将位 27-24 设置的第二个原因是时钟的物理中断。 如果 SPI 时钟正确、则最可能的问题是高速时钟(晶体)电路的配置。
TCAN4550 在 OSC1/2 引脚上支持晶体和单端时钟。 OSC2 引脚上使用电压比较器、通过提供小电流并检查电压是否小于 100mV(典型值)来检查是否存在“接地“引脚。 在不同的工艺、电压和温度条件下、实际阈值范围可以是 90-150mV。 当检测到这种情况时、器件将禁用晶体电流放大器、并使用多路复用器将单端时钟传递到数字内核、该时钟将在 OSC1 引脚上提供。 但是、如果 OSC2 引脚电压高于阈值、则器件将启用电流放大器并向 OSC1 引脚上连接的晶体提供电流、然后获取 OSC2 引脚上的输入信号为数字内核提供电流。
但是、如果晶体电路未优化、并且限制流向晶体的电流的负载电容器和串联阻尼电阻器的尺寸不正确、 存在让晶体在大电平振荡并在 OSC2 引脚上产生振荡波形的风险、该振幅具有足够大的峰峰值幅度、从而导致波形最低电平越过单端检测比较器阈值以下、并导致瞬时模式转向单端时钟模式。 这将阻止数字内核和 MCAN 控制器具有有效时钟、因此它们基本上会暂停、直到振荡振幅衰减且器件切换回晶体模式为止。 如果在该时钟模式移位期间发生 SPI 或 CAN 消息、则这些消息将生成错误、例如 SPI 下溢或溢出错误。
请参阅 TCAN455x 时钟优化和设计指南应用报告 (链接)、了解有关优化时钟/晶体电路的更多信息。
如果您确实认为 SPI 驱动器协议是正确的、并且这可能与时钟/晶体问题有关、则建议的解决方案如下:
1.在 OSC1 引脚和晶体之间添加一个串联电阻(通常称为阻尼电阻)。 这将减少流向晶体的电流量并降低峰峰值幅度。 通常要尝试的值是 30 欧姆、但通常小于 100 欧姆就足够了。
2.如果无法选择串联阻尼电阻器,您可以增加晶体上两个负载电容器的电容值。 例如、如果每个引脚都是 8pF、则可以将它们增加到 10pF 至 12pF、然后重新测试。 由于晶体上的总负载电容发生变化、这将导致轻微的频移。
为避免频率偏移、您可以调整 OSC1 和 OSC2 引脚上的电容量、使更多的电容放置在晶体的 OSC2 侧、而 OSC1 侧的电容更小。 这会与电容电抗和晶体的 ESR 产生分压器效应、从而提升 OSC2 电压电平、但允许晶体上的总负载电容保持不变。
此致、
Jonathan
您好、Ryu、
是的、这可能是一个可能的原因、因为如果器件从晶体切换到单端模式、内部多路复用器会断开晶体信号作为数字内核和 MCAN 控制器的时钟源的连接。 如果没有时钟、数字内核和 MCAN 控制器实际上会“暂停“、在恢复有效的时钟信号之前将无法再次运行。 时钟恢复后、操作将直接从中断的位置恢复。
因此、如果在发送 CAN FD 消息过程中发生该时钟中断、则 MCAN 控制器将无法更改 TXD 位、并将在发生时钟中断时保持 TXD 位的任何状态。 这可能会导致暂停超过 5 个 CAN FD 位时间、然后总线上的其他节点会将其视为填充位错误。
此致、
Jonathan
您好、Ryu、
晶体和 TCAN4550 必须协同工作以产生振荡、因此必须在两项元件要求之间实现平衡。
晶体制造商提供的建议可能是晶体的最佳选择、但会无法满足 TCAN4550 的需求、并防止 OSC2 最小电平电压降至 150mV 以下、并导致模式转换到单端时钟模式、这将导致您观察到的中断和误差。
TCAN4550 的关键要求是确保在所有工作条件下 OSC2 电压都保持在 150mV 以上、以防止观察到错误。 此要求与为晶体创建最佳配置没有直接关系、但如果不希望出现时钟中断和错误、这一点很重要。
此致、
Jonathan
尊敬的 Jonathan:
感谢您的答复。
您是否可以访问 GPIO1 引脚?
可以访问 GPIO 引脚。
您能否提供详细说明?
我使用 1.8pF FET 探头测量了 OSC2 引脚的电压。
尽管由于探头的寄生电容、测量结果显示的波形不太准确(视在振幅较低)、
发现峰值电压低于 150mV。
・将振幅降低太大可能会导致器件停止振荡、因此请允许我们讨论实际可接受值。
对于没有异常的电路板、即使峰值降至低于 90mV 的下限、某些器件也能正常运行。 如果您有数据表明可接受的降低范围作为实际值、是否可以分享这些数据?
・是否有办法解决振荡器模式而不是使用自动开关?
此致、
Ryu。
您好、Ryu、
我已经向您发送了一封包含该过程的私人消息。
由于电路中各个元件之间的制造容差分布、模式开关的确切值因器件和电路板而异。
TCAN4550 还具有自动增益控制 (AGC) 和峰值检测电路、该电路将监测 OSC1 引脚上的波形、并尝试调整放大器输出电流、以保持大约 1Vpp 的峰峰值电压幅度和大约 0.7V 的共模电压。 如果振幅小于 1Vpp、则输出电流将增加;如果大于 1Vpp、则输出电流将减小。 但是、始终存在最小的电流量、并且电流电平无法降至零。
您面临的情况是、当 OSC1 和 OSC2 引脚之间连接一个小的外部负载时、即使 AGC 输出尽可能小的电流、振荡振幅也会变得大于 1Vpp。 如果发生这种情况、TCAN4550 将无法调节振幅。 假设共模电压保持不变(例如 0.7V)、并且幅度增加将具有更高的最大峰值电压和更低的最小峰值电压。 如果较低的峰值电压降至过低、器件可能会短暂切换到单端时钟模式、此时会认为 OSC2 引脚已“接地“。 这将禁用时钟放大器、因为时钟放大器会停止向晶体提供电流、进而导致振幅自然衰减。 最终、器件将切换回晶体模式、并且重新启用放大器。 如果负载条件保持不变、则可能会有一个循环。
防止这种情况的唯一方法是调整 OSC1 和 OSC2 引脚之间电路中的外部元件、使电路在 AGC 的最小/最大调节窗口内工作、从而使其保持适当的 1Vpp 振幅、以在晶体模式下稳定运行。
遗憾的是、在使用晶体时无法禁用单端时钟模式检测电路。 但是、如果使用的是单端时钟而不是晶体、OSC2 引脚会接地、可以有效地将器件“固定“为单端模式、但无法将其“固定“到晶体模式。
您可以考虑使用 LVCMOS 晶体振荡器代替晶体来创建单端时钟。 这些器件采用与晶体类似尺寸的 4 引脚封装、无需优化晶体电路。
此致、
Jonathan
尊敬的 Jonathan:
感谢您的答复。
您能再告诉我一件事吗?
当产品暴露在高温下时、我们会观察到这个问题。 一般而言、我们预计信号振幅会随着温度的升高而减小、这与我们看到的现象不一致。
因此、您能否提供有关 IC 检测阈值 (90mV 至 150mV) 如何随温度变化的信息?
如果阈值在温度升高时趋向于增加到较高侧(接近 150mV)、则可以解释我们看到的行为。 ‑来说、由于我们的设计在阈值下限附近运行、因此温度 Δ T 引起的漂移可能会导致器件越过检测边界并导致错误的模式检测。
此致、
Ryu。
您好、Ryu、
晶体上的总容性负载 (Cload) 是两个物理陶瓷负载电容器与晶体、PCB 布线和 OSC1/2 引脚的寄生电容的组合。
陶瓷电容器由在整个温度范围内保持稳定的电介质材料制成、并具有 X7R 等温度系数。
但是、PCB 的 FR4 材料和引脚电容的寄生电容在整个温度范围内并不那么稳定、因此寄生元件对 Cload 产生的电容量会随温度而变化。 这反过来会导致 Cload 随温度变化、并可能导致振荡振幅发生变化。
通过我们的测试、我们看到较高温度下的振荡幅度增加、这与 Cload 的减少有关、这可归因于寄生电容的减少。 如前所述、如果振幅变得过大、则会触发单端时钟检测比较器、并导致模式偏移、这在较高温度下比较低温度下更有可能发生。
增加由温度稳定的电介质材料制成的陶瓷电容器的电容量、可以抵消因温度升高而导致的寄生电容减少的影响、并保持足够的 Cload 以产生稳定的振荡。 增加 OSC1 引脚和晶体之间的串联电阻也应能有效地降低高温下的振幅。
此致、
Jonathan