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.

[参考译文] TCAN332G:TCAN332G 和 ESP32故障

Guru**** 2390755 points
Other Parts Discussed in Thread: TCAN332, TCAN332G

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1280843/tcan332g-tcan332g-and-esp32-failure

器件型号:TCAN332G
主题中讨论的其他器件:TCAN332鳄鱼

我使用 ESP32 WROOM 和 TCAN332GDR 制作了定制 PCB。 它 通过1m 双绞线连接到 CAN 器件、无端接。 这不奏效。

我用 TCAN-EVM 和 一个现成的 ESP32开发板、它能够以500kHz 的频率与 CAN 设备进行通信。 这种设置的作用。

它们使用相同的软件、简单的测试程序。

我的定制 PCB 如下所示。 未连接120欧姆电阻器。 我将一个100欧姆电阻器装入连接器、但没有改进。 我将器件设置为使用125KHz、但仍然无法使用我的定制 PCB。

我有一个廉价的 USB 逻辑分析仪、它显示了我的 CANBUS 数据包、但没有来自另一个 CAN 器件的响应。 我在 使用 EVM/DEV 板时看到了响应。 (我还不知道有多少 CAN 可以说 CAN 器件根本没有任何内容)。 我没有任何东西会在总线上向我显示模拟信号。

两种设置都将永久传输(连接或不连接另一个器件)。 这说明两种设置都能够读取自己的传输。

我的电路板在 VCC 和 GND 之间没有我在 TCAN-EVM 上看到的4.7uf 电容、但是...

然后、我移除了 TCAN332芯片、并用一些鳄鱼夹线将 TCAN EVM 连接到定制 PCB、但仍然无法正常工作(RX、TX、VCC 和 GND)。

因此、我预计在开发板上的 gpio21/22 (Rx/TX)上会发现一些上拉电阻器或电容器、但没有这样的东西。 21/23的迹线很短且裸露。

我没有发现表明 ESP32-WROOM-32E (我的)和32D (开发板)之间存在差异的文档会影响这一点。

开发板上的电压为3.33、而定制板上通过 USB 由 ESP-PROG 供电的电压为3.28。

(https://oshwlab.com/cost.co/esp32_dev 与其他人的设计几乎相同,唯一的区别是他使用的是 SN65HVD,而我使用的是 TCAN332)

有人能给我一些想法吗?  

编辑:我的两个板可以相互通信。

此外、我将电路板、esp32DEV/TCAN EVM 设置以及 CAN 器件均集成在总线上(这确实是一个星型器件、但只有1个桥臂是1m)。 只有 DEV/EVM 设置能够从 CAN 器件进行发送和接收。 板执行发送操作时未执行任何操作、DEV/EVM 设置也不显示任何操作。

最后、我将另一个电路板放在星型上、它传输了一个它 的双子器件听到的数据包、但 DEV/EVM 设置没有、但之后它会冻结。 如果我重新启动该板、它会将另一块板提供给它的双板。 当它在巴士上听不到自己的声音时、我觉得会死机。

我要坚果了。

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

    听起来好像 TCAN332G 可以正常工作、并且您的 ESP 上运行的软件(配置)存在问题。 此时钟速度可能有所不同。

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

    您好、John:

    感谢您在 E2E 上分享您的问题。 当事情似乎如此接近工作、就像看起来在这里一样、我完全可以理解这是多么令人沮丧。  

    我同意 Clemens 的观点、即这可能是软件配置不匹配、因为听起来您的定制板可以彼此通信。 如果这是硬件问题、我希望这些电路板根本无法与任何东西通信。  

    电路板在尝试通信后"冻结"这一事实也表明、这可能是配置问题。 CAN 控制器可处理 CAN 通信的所有协议方面、并负责识别系统中发生的错误并作出响应。 如果怀疑是多个传输错误的罪魁祸首、其中一个责任是从总线中将其自身移除("关闭总线")。 同样、如果节点在一行中识别出多个接收错误、它将停止发送错误帧、不会中断可能能够正常通信的其他节点。  

    请确认所有 CAN 控制器配置为与总线其余部分相同的数据速率、确保考虑到本地参考时钟的速度(如果时钟速度是其他电路板时钟的2倍、 位时间配置需要为总时间份额的1/2)。 此外、确保没有任何节点配置为发送与另一个节点具有相同 ID 的 CAN 帧。 CAN 协议使用 CAN 帧的 ID 来确定消息优先级。 如果两个节点传输相同的 ID、它们将发生冲突、因为无法确定首先传输哪个消息具有优先级。  

    最后、在调试与收发器相关的问题时查看模拟行为会非常有用。 我知道示波器可能极具成本效益、但也有一些具有成本效益的选项、能够提供足够高的分辨率来执行一些有效的调试。 我在家里使用的是 Analog Discovery 2、它有两个示波器通道。  
    https://digilent.com/reference/test-and-measurement/analogue-discovery-2/start 

    如果您还有任何问题、请告诉我、并告知我们您的调试过程最新情况。  

    此致、
    埃里克·肖特  

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

    感谢您的反馈 Clemens 和 Eric。

    软件是相同的。 我将 USB 线缆从电路板上拔出(使用 esp-prog)、并将其插入 DEV/EVM 设置中、然后下载并运行。 我的简单测试用例 具有1个电路板或 DEV/EVM 设置、以及1个其他 CAN 器件。 因此、如果开发/ EVM 可以向器件发送查询并永远获得响应、那么我的板没有什么不同的原因。 在这两种情况下、我都在逻辑分析仪上看到查询数据包、但我没有从另一个 CAN 器件获得响应。

    只有时钟在 esp32内部。

    我不擅长电路设计的模拟部分。 我的意思是、我真的不明白何时放置电容器、以及如何调整电容器的大小等。 我在 EVM 板和 TCAN332之间看到的唯一区别是 VCC+GND 之间有一个4.7 uF 的电容器。 我认为、当收发器在500kHz 频率下弯曲时、该电容器会使功率平稳。 但是、移除 TCAN、改为通过导线连接到 EVM 仍然失败。  (TCAN332为什么不在其 VCC 上有一个内部电容器?)。  

    那么、我的电路板可能只是没有足够的储备就无法为收发器供电? 接地路径与 TCAN 相当电路、但我们要与 USB 通信几厘米。 我的 VCC 布线是0.25mm。 TCAN 显示最大 Icc 为60mA、该值看起来很大。 两种设置都可从 USB 端口获得最大0.5A@5V 电压。

    我认为 esp32和 TCAN332的组合对电路的模拟器件不是很挑剔。 我的意思是、如果我的迹线很短、而且板上没有其他高频材料、那就没问题了。 我错了吗?

    我将尝试使用更大的电源来测量电路板、并使用示波器。

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

    我终于注意到,时间刻度是不同的,在我和那个起作用的。 这意味着 esp32-wroom-32D 和 esp32-wroom-32 E 故障模式是不同的。 注意事项指出 E 的  最小 CAN 频率较低、但我认为这是个错误。 我想它们的意思是说它们下移了整个频率集、这样在 D 上的相同设置会在 E 上产生一个较低的频率。

    我使用的软件库将频率作为参数(例如50万个)、并进行查找以将正确的值填充到 ESP32上的 TWAI 事务中。 该表查找需要知道它是 D 版本还是 E 版本。

    太棒了!

    希望这能减轻一些沮丧。