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.

[参考译文] TM4C1294NCPDT:CAN 总线工作不正常、怀疑电源连接有问题。

Guru**** 2465890 points
Other Parts Discussed in Thread: EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/659422/tm4c1294ncpdt-can-bus-not-working-properly-power-hook-up-is-a-suspect

器件型号:TM4C1294NCPDT
Thread 中讨论的其他器件:EK-TM4C1294XLTM4C123

大家好、

我有两个几乎相同的板、使用几乎相同的内核。 它们通过 CAN 总线进行通信

我只有其中一个发生 CAN 总线错误。 我确保它不是单板问题:它在整个5批中重复出现。

两个电路板都使用 Artesyn DC-DC POL 12V/3.3V 转换器来实现 VDD、3A 功能单元。

这种解决方案似乎可以正常工作、它具有一个单独衍生的 VDDA、由通过隔离式 POL 运行的外部12V 电源、然后是5V LDO、再是3.3V LDO。 (如果芯片想锁定、我在 VDD 和 VDDA 之间确实有一个二极管)。

有问题的解决方案具有连接到 VDD 和 VDDA 的相同3.3V 总线、这种情况并不少见。

我决定将电路板中的两个正常工作的电压短路(电压是独立产生的)、并且开始出现完全相同的问题。

电路板的其余部分似乎正常工作、代码运行正常、直到发生 CAN 通信、此时它发出错误信号。

此问题仅在下电上电后出现:最初、当通过调试器对电路板进行编程而不进行下电上电时、其工作正常。

在应用报告 SPMA056–2013年10月的《TivaTmC 系列微控制器 TM4C129x 系列的系统设计指南》中,我有以下内容不确定是否完全理解:

3.4.1微控制器电源。

'连接到 VDD 的电源必须能够适应短暂的额外浪涌时间(40μSec μ s 至60μSec μ s)
连接到 VDDC 轨上 LDO 的去耦电容器充电至时产生的电流
VDDC 电压电平。 内部电路将浪涌限制为的数据表中指定的 IINRUSH (最大值)
部件。 连接到 VDD 的电源可以将其提供的电流自限制在小于的值
最大 IINRUSH、但这会延长使 VDDC 上升到工作电压所需的时间。"

这是具有相同 VDD/AVDD 的电路板设置。

这是具有单独 VDD/AVDD 的设置

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有趣。 您使用的是哪种类型的 CAN 收发器?它们是如何供电的? 需要特别关注的是收发器微侧的电源与 TM4C1294 VDD 的关系。 您可能需要查看 CAN RX 线、其中示波器用于故障配置、以查看信号电平以及信号是否跟随 CANL。 您能否查看 CAN 状态寄存器并判断 LEC (最后一个错误代码)位发生了何种错误?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob

    感谢您的观看。

    收发器为 SN65HVD233D、如右上角所示。 由与 VDD 相同的电压供电(通过铁氧体直接连接到 VDD)。

    信号电平正常、TTL 和 CAN H/L 均正常  
    同样、这两个板在这方面的布置完全相同。 如果两个"正常"板(具有单独的 VDD 和 VDDA)使用"正常"和"不良"板的相应代码进行编程(它们具有不同的功能、但几乎相同的内核、包括我在上一个帖子中展示的 CAN 接口)、则一切都正常。

    如果"正常"电路板将其 VDDA 和 VDD 连接在一起、则会变为"不良"且 CAN 发生故障。

    Mike。

     

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

    [引用 user="Michael Nudelman"]如果"好"的板将其 VDDA 和 VDD 连接在一起,则它将变为"坏",CAN 将失败。

    这是否意味着  A、"时间问题"(VDDA 和 VDD 之间)可能存在-并且(必须)可以得到解决?   当您"结婚"这两个针脚时、不能实现 "计时调整"、因此您的问题会开始...

    我会遵循 kiss (当然是照常)和(暂时) "断开与 CAN Xcvr"的连接-因此其 对  您的问题的"贡献"(如果有)可能会被静音。   (即 kiss -虽然在这里被禁止-仍然提供必要的见解和价值!)    当您报告时、 "只有 CAN 功能受到影响-我们对此类问题的经验表明、"跨多个外设模块的问题"-(暂时)"与 CAN 收发器的连接中断"消除了 "一个可疑之路!"   建议测试/验证 ADC (尤其是)、而此类问题"有效"。

    怀疑对 VDD 的电流需求 "超过"对 VDDA 的电流需求-这可能会使 VDDA "在 VDD 之前上升"-证明存在问题!   

    Fire/I 对"4C129"-我们使用 HF 和 LF 电容器以及铁氧体磁珠-尽可能接近"4C3"S" VDDA。   我们的 CAN 收发器运行时不存在问题-我(几乎)倾向于"将 VDDA 与 VDD"关联并报告-但这种"风险"要求(某些)"奖励"-不是吗?

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

    这是令人困惑的。 我们以前使用过 VDD 连接到 TM4C1294上的 VDDA 的 SN65HVD233D、但没有任何问题。 您是否能够从 LEC 位获得故障类型?

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

    至 CB1_MOBILE:

    我不知道“吻”是什么意思…

    至于 VDD 与 VDDA 时序:它们是相同的总线、在我的 sch 中为+3.3V、物理上是一个极低电感宽电源平面。 我不确定在物理上如何可能出现时序问题。

    我知道您是 TI 的工厂工程师:我能不能为您提供原理图、以便您查看它吗? 我在这个非常相同的 uController 中使用了这个连接(这是我们现在的主要 uC 部件、因为我们已经从 Stellaris 迁移了、它也使用了相同的连接)、以前没有问题、 当然、CAN 总线没有使用、所以我们根本不知道它是否会起作用。 (使用 Stellaris、我实际上使用了与 CAN 总线相同的设置、虽然该项目从未投入生产、但软件是为其编写的、CAN 工作正常。)

    问题:在加电时限制 VDDA 中的浪涌电流是否有任何要求? 我不确定它是如何工作的、但在"好"电路板中、单独提供的 VDDA 具有一个非常弱的 LDO、可提供+3.3V_ANA、而在"坏"电路板中、它是一个具有3A 电流的 LDO。

    加电后、我可以对模拟掉电/复位位位位进行任何处理以尝试修复它吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。 我们收到以下错误:(来自我的软件工程师)

    在接收端、我们通常会得到错误2–

    //
    //! 出现格式错误。
    //
    #define CAN_STATUS_LEC_FORM 0x00000002

    但偶尔会出现错误1–

    //
    //! 发生了位填充错误。
    //
    #define CAN_STATUS_LEC_Stuff 0x00000001


    在发送端、我们得到错误4 -

    //
    //! 总线保持位电平1的时间比允许的时间长。
    //
    #define CAN_STATUS_LEC_BIT1 0x00000004
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Michael Nudelman"]我知道您是 TI 工厂工程师

    这种理解证明了"不正确"。   (我们不知道这是如何制定的-公司/我对"外部人员"感兴趣-为多个客户提供服务-这里和其他地方)

    我联系的是(从内存)向您报告情况(类似)但影响"多个 MCU 外设"(并非所有此类外设)的现有客户。

    我还可以合理地回顾、至少在某些情况下、问题是与版本相关的-如果您"拍摄 MCU 芯片标记"、可能会证明很有用-并在此处提供给 Bob。

    我们"喜欢"您的说法、"加电后、我可以使用模拟欠压/复位位位位来尝试修复它吗?"   首先-注意并比较-然后展示-"好与坏"板之间的(任何)差异。

    "kiss"描述了一种经实践检验的方法 、可加速和简化问题解决-通常是通过"尽可能限制潜在影响变量的数量-并始终创建"可测量测试和/或目标"来实现的、并且在通过/解决此类测试之前不会继续进行。   我们首选的"kiss"定义 "保持简单和系统"(尽可能一次只处理一个变量)。   增加复杂性-正如这里经常显示的那样-不是最有效的成功手段!   (这种情况久经考验-过度雄心胜过"经验/基本谨慎"-运行猖獗-几乎没有"发出警报!")

    请允许我注意、" 其他供应商"的 ARM MCU 上存在此类问题。    然而、我在这里仅将我的评论局限于那些现有"TM4C"客户所报告的那些采用"129级"MCU"的客户...

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

    >>这种理解证明,“不正确”。

    我的希望被粉碎了:哈哈:

    不管怎样、芯片版本-请参见下图。

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

    [引用用户="Michael Nudelman"]我的希望已破灭:llo:

    感受您的痛苦-真的。   (但有一点...)

    甚至是一只“近眼松鼠”(在这些部件周围看到... 我被告知)可以从这张整洁的照片中读取芯片标记(Ver)!   (您的相机镜头-或上帝禁止-您的 MCU -是否需要"空气爆炸?")

    至於「希望破灭」,由於有合作关系,已将科技公司公开,「简单工程工作」, 「兴趣不大」。    

    自主汽车软件-和 A380: "每个翼都有10K 传感器"- 以及"技术客户端评估"中的辅助 Vc -提供了(部分)抵抗"希望破灭"的能力。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这些误差表示 CAN 总线上的速度问题。 我不明白连接 VDD 和 VDDA 是如何影响这一点的。 您使用的波特率是多少、CAN 总线有多长、总线上有多少个节点? 请确认总线两端都有120欧姆的端接电阻。 您是否尝试以较低的波特率进行通信?

    澄清一下、LEC = 4表示器件希望发送高电平(隐性)、但总线读数为低电平(显性)。 由于收发器驱动主导状态、但终端电阻器创建隐性状态、因此从支配状态到隐性状态的转换通常比从隐性状态到支配状态的转换慢。 接收位填充错误和格式错误也可能是由显性转换缓慢引起的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是器件的最新版本。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。

    并且-在这个"最新/最伟大"芯片下、任何(接近)相似(客户问题)"勘误表"都"不是预期的"-是这样吗?

    要完成-我们应该确认"每个/每个"(故障) MCU 已标记-如图片所示-我们不应该?

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

    这是我同事的手机;我拒绝发送照片,但结果是一样的:照明加上(实际上非常干净-就在包装外)表面纹理,使它看起来像多尘的表面。 工作时、我通常会将 Canon 5D 和 Canon 放在家中100毫米的宏镜头、尽管有几次使用它来制作组件文档。 )  

    现在、只是为了显示 CAM 波形(考虑了范围较长的 GND、但并不比我在附注中看到的情况差很多)。

    从上到下-良好和不良的 CAN 通信。 如您所见、在发生故障的情况下、通信开始、然后卡在"0"(CAN 电平分散)、这是其中一个故障代码所反映的情况。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的意思是说,“不好不好”,“差”分别位于顶部,“好”则位于底部图片。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    用于显示不同数据的示波器电容器(显示)-不是"相同数据"会证明更有声音-更易于比较/对比?

    根据"kiss"( 您现在是专家)-我们力求尽量减少变量。   (特别不必要-可能混淆-变量!)

    Bob 最近提供了"重要的 CAN 错误发现"-您的团队应全面审查/考虑这些发现。   (我的团队也在寻找(在完成他们的周末计划之间)-第一件事-你知道)

    我们必须问:"是什么促使您"将两个电源引脚连接在一起?"   这是如何实现的?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我让我的软件工程师回答、他即将蜂鸣、我认为这是尝试发送相同的数据、但结果良好/不良。

    但是、我想刷新每个人的存储器:如果电路板保持通电、并且在不循环通电的情况下从调试器重新编程、一切都正常。 根本没有 CAN 错误。 它都在下电上电后启动。 对我来说、这意味着 CAN 物理部件是可以的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    >>我们必须问:“是什么促使您“将两个电源引脚连接在一起”? 这是如何实现的?

    在设计中、还是在"好"电路板上进行故障排除的结果中、您的意思是什么?

    如果前者完全不使用模拟器件、而参考设计将其显示为连接在一起、这样就节省了模拟/数字平面分区、使用单独的电源、担心锁定等问题

    如果后者运行正常、因为两个具有相同内核的电路板运行方式不同、 这种差异发生在功率循环之后、我的目光敏锐地注意到、VDD/VDDA 的相同功率/不同功率是两者之间唯一的差异、因此我决定模拟好电路板的条件、然后再测试! 它确实具有相同的确切效果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以"接受"为什么您会认为-但 IC 应该在所有(现在的法律条款)"正常和习惯"条件下运行。 "下电上电"当然适合该"正常/必须"条件。

    我们公司的经验是、此类电源循环问题(通常是但并非总是)是由"时序问题"导致的(您的设计链中存在的某个地方...) 不幸的是,这些(往往)证明是"间歇性的",是"最难确定和解决的问题"之一。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Michael Nudelman"]电路板根本不使用模拟器件,参考设计将其显示为连接在一起,这样可以节省模拟/数字平面分区、使用单独的电源、担心锁定等问题。

    了解-但作为过去 的工程经理@ 一个类似 的"半巨人" -这些 MCU 的模拟部分 很重要-并且仍然如此-即使 "未充分使用"-尤其是 "未充分使用"。  

    我们的主要客户和投资者要求我们娱乐来自所有 ARM 供应商的 MCU -实际上我们遵守了-我们的经验(至少涵盖四个 ARM 供应商)表明、 "正确的模拟/数字平面分区-正如您所说的-确实是物有所值!"   重复-即使在-不使用模拟子部分(或限制使用) 。   同样、MCU 芯片的承诺以及关键/关键内部 MCU 布线"我们发现"值得"平面分区"以及其他关键因素的实施。   

    此 MCU 的"VDD 加电勘误表"-您自己注意到并介绍了哪些内容-引起了应有的关注-这是不是吗?

    "参考设计"何时采用(视在)快捷方式-一个奇迹-这种(详尽)方式是否经过测试和充分权衡/考虑?    虽然客户(例如您自己)很遗憾地发现"参考设计"中(潜在)存在的弱点、但这种情况有点"异常"(并非"未知")。   

    这种情况还有待证实--需要收集更多的审查和事实--但"谨慎行事的错误"--而不是"希望/祈祷最好的"--得到一些支持者的支持...

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

    这个甚至不是间歇性的:它在加电后表现得非常可靠。

    我在查看3.3V 的上电时注意到的另一件事让我感到困惑。  我有两个完全相同的基于 Tiva 的板、上面有不同的功率 POL 3.3V DCDC。 由于 机械限制、我不得不用一个水平的 Artesy 单元替换一个垂直单元(今天的 GE)、否则行为完全相同。 两个单元均可承载3A 电流。

    我在这里看到的是:当电压上升到大约2.7V 时、两个单元的电压都出现了0.3-0.4V 的"下降"。 考虑到我的电容(所有 X7R 芯片电容、从0.1uF 到47uF) 在整个平面上具有大约300uF 的陶瓷芯片、极低的电感等、每个引脚去耦、 而且尺寸很小、处理器器件启动时应存在相当大的电流浪涌。 我从未在 Stellaris 中看到过这种情况。

    这与沿袭 POL 有关

    这是与 Artesyn POL 相同的电路板。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    噢、是-黄色表示电源、蓝色表示复位信号。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我是 Mike 的软件工程师。 数据应该是相同的、因此即使是不良样本迹线的开始部分也会出现问题。

    Scott
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的观看-我们(似乎)准备了4通道版本。 (+ 16通道混合信号)的示波器。)
    对于重要的设计文档-最好对活动通道进行"标记"。 (查看此类"未贴标签的电容器"-从现在起数月-将为您节省时间"下游!" (在澄清努力的同时-这里和现在-再次说明这是亲吻!)

    我会要求供应商提供有关 VDD 和 VDDA 供电"最佳实践"的指导。 (我会寻求"超越"(现有)技术锅炉-板文档。 -除非"One & DONE (一个并完成)"是 SOP。 (标准运算 过程-因为您不熟悉 kiss。)

    供应商的 Bob 曾问过一些基于 CAN 的实施问题、您是否已完全回答过这些问题? 或者-至少-启动了该过程。 我必须很快离开(需要一些盈利)、但可以在这一晚返回-如有需要。 和快克员工/I "大多数周末工作!" (我们认识到-客户的兴趣/愿望*不大可能"持续下去、永远...)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Scott、

    我们的帖子刚刚交叉-我们不可能"未知"-非常感谢您的澄清。
    请倒一页-供应商的 Bob 提出了一些最有用的"基于 CAN 的问题"-作为"外部人员"、我(不一定)是技术问题解决方案-但减去"供应商延迟、内部信息"-有时有助于解决此类问题。 (例如、60年代的汽车维修...)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bob

    很抱歉以前没有回答。
    速率为100kbaud /秒
    总线非常短(2英尺)、通常与一个端接器一起工作、但线路两端都有120欧姆电阻。
    有两个节点-好坏板(一个是器件的通用控制器、另一个是电机控制器、通过 CAN 接收命令并提供读回)。 因此它是点对点的。

    前面的文章中的示波器布线说明了 PHY CAN 总线。 我可以用短 GND 拍照、但我认为到目前为止我得到的结果表明 PHY 可以正常运行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    实际上、这相对较慢且 CAN 总线非常短。 您是否有一根接地线作为连接两个器件的总线的一部分?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。 虽然没有什么不同、但由于我的两个电路板独立于隔离式电源(台式类型的两半)运行、我的 CAN 连接器为3路、第三根导线为 Sig GND。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我更仔细地看了示波器照片。 首先、看起来您以大约500K 波特运行、而不是以100K 波特运行。 示波器镜头上的窄脉冲宽度大约为2us、而不是10us。 (水平扫描看起来是40uA/除法。) 但是、除非某些时序已关闭、否则它仍应以该速度工作。

    如果两个示波器图片与发送的同一条消息相同、则第一个差异是发生故障情况下 START 位之后的第三个隐性位(顶部图片)。 在这种情况下、获取发送器故障代码的器件是不是? 如果是、最好查看来自收发器的 CANL 信号和来自 TM4C 的 CANTX 引脚的示波器快照。 当 CANTX 引脚为低电平时、CANL 信号绝不应为高电平(隐性状态)。 长显性相位是一个误差帧(6个或更多显性位)。 它可能是先前检测到的错误而不是实际问题的结果。

    为了消除硬件问题、您能否在两个节点之间运行一些简单的示例代码? 这两个节点都基于 TM4C129器件吗? (或者可以通过这种方式设置网络吗?) CANTX 和 CANRX 使用哪些引脚。 我将会看到我是否可以调用真正简单的 CAN 传输和 CAN 接收例程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Bob、

    您说得对、我们以500K 的速度运行、但我将其降低至100K、看看这是否有帮助。 在500公里时拍摄了范围内的照片-很遗憾这种混乱。 发送器始终报告 CAN_STATUS_LEC_BIT1错误。 接收器通常报告 CAN_STATUS_LEC_FORM、但偶尔会报告 CAN_STATUS_LEC_SALES。

    是的、两个节点都使用 TMC129。

    我们将再次运行它、并根据您的请求捕获一些新的示波器截图。 我还可以用简单的发送和接收代码替换代码、以查看我们得到的结果。

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

    大家好、

    我已经对电路板进行了重新编程、以使用 simple_Rx 和 simple_tx 示例代码。  从发送器、这是我要发送的内容:

    uint32_t ui32MsgData;
    uint8_t * pui8MsgData;

    pui8MsgData =(uint8_t *) ui32MsgData;

    ui32MsgData = 0x55555555;
    sCANMessage.ui32MsgID = 1;
    sCANMessage.ui32MsgIDMask = 0;
    sCANMessage.ui32Flags = MSG_OBJ_TX_INT_ENABLE;
    sCANMessage.ui32MsgLen = sizeof (pui8MsgData);
    sCANMessage.pui8MsgData = pui8MsgData;

    这里是 CANH、CANL 和 CANTX 的示波器波形。  

    看起来一切都很好、直到 ACK。  发送器报告 CAN_STATUS_LEC_ACK。  

    所有器件都保持通电状态、但只需重新编程接收板(发送硬件复位具有相同的效果)并再次发送命令即可:

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Scott、
    这是否是启动同步问题? 如果发送器在接收节点完成 CAN 模块初始化之前启动、则接收模块可能与发送器不同步、无法提供 ACK。 这将导致一个来自发送器的 NAK 和消息的重新传输。 然后、应该正确接收该重新传输。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bob:

    传输仅在我们启动时发生、因此接收节点有足够的时间完成初始化。  问题是可重复的-无论我们在发送传输之前等待多长时间、每次首次加电时都失败。  并且始终在重新编程/复位接收节点后工作、无论我们在复位后发送命令的速度如何。

    为了简化示波器跟踪、我使用了 CANRetrySet 命令来禁用重试。  在禁用此功能之前、重试也会失败。  以下是一条曲线、显示了这一点(仅使用 CANH):

    当错误条件发生时、我已经尝试重新初始化 CAN、清除所有中断等、似乎没有任何允许它开始工作的东西-只有硬件复位。

    Scott

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

    以下是我今天所做的工作:

    我使用 LDO 创建了一个单独的+3.3V 电压来馈送到 VDDA。
    我单独提起了 VDDA 引脚、并将其连接到装有4.7uF 陶瓷电容器的 LP2981-33DBVR LDO 输出端。

    首先、我使用了来自直流/直流的5V 电压、该电压与输入电压3.3V 直流/直流(可调类型)完全相同。
    这不会导致电路板行为发生任何变化。

    然后、我决定在 VDDA 中引入一些延迟、为此、我将一个1kOhm 电阻器与 LDO 输入串联、并将其连接到12V 的公共电路板输入、从而为其他所有东西馈电。
    这导致 VDDA 相对于电压上升沿顶部的 VDD 有几毫秒的延迟、之后 CAN 总线工作正常。

    Scott 和我重复上电、但仍然可以正常工作。
    Scott 还将不同版本的软件与引导加载程序结合使用、但仍然可以。

    我没有看到 VDDA 延迟是唯一的、最初连接到 VDD 的 VDDA 意味着它们至少在芯片的引脚上按完全相同的时序上升。

    所以… 有什么意见?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    老实说,这对我来说仍然没有意义。 我们可能有数百万个电路板、其中 VDD 连接到 VDDA、而 CAN 正常工作。 此时我无法想象对这种行为的逻辑解释。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="CB1_MOBIT)]这是否表明  可能存在"计时问题"(VDDA 和 VDD 之间)-并且(必须)可以接受?   当您"结婚"这两个针脚时、不能实现 "时间调整"、因此您的问题发布了...[/QUERPLET]

    在这里介绍了这种情况: 1月26日星期五至7时42分。   (非常早进入此"诊断过程"。)

    似乎成功了-不是吗?

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

    好的。 作为一名硬件人员,没有什么能让我更开心地指责软件(对不起,Scott:),但在这种情况下,Scott 已经跳过许多被燃烧的恶作剧,在与软件斗争的同时,用 tambourine 播放了所有可能的歌曲和舞蹈。

    我自己怀疑是硬件。

    我有另一个具有相同类型内核的板(嗯、用于时序目的的铁氧体磁芯将 VDD 和 VDDA 分开)、但该板没有 CAN、否则性能正常、没有问题。 我们显然无法验证 CAN 操作、因为它没有。

    但是、我们确实有基于 Stellaris 的旧设计、这些设计是在早期开发的、具有完全可以正常工作的电源设置(我们只在 Stellaris 停产后切换到 Tiva)、我知道、随着软件的编写和 CAN 通信的工作、这种情况也是如此。 我觉得这两者比较相似。

    现在,我确实理解它可能是一个逻辑障碍,但我们需要以某种方式继续进行设计,所以我想听到一些比我更受教育的猜测:)

    (我是否一直在为我解决这个问题?我永远不会淘汰 Stellaris、这给我们带来了巨大的痛苦)。

    Mike。

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

    这篇"很长的过去文章"(哪篇文章"很好"地解决了 您的问题)难道不值得 "这篇文章解决了我的问题?"  (即绿色按钮点击)

    当 LM3S 被"阳极化"时、我们遭受了同样(严重)的损失-我们使用(许多)竞争 MCU -增加了(战略性)见解/理解。

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

    您好、Michael、

     与 Bob 一样、我无法真正理解为什么连接的 VDD 和 VDDA 会使 CAN 操作失败。 我没有解决您的问题的方法、但我可以考虑一些实验供您尝试。 这更是一个消除过程。 我想知道故障是否与收发器有关。 您是否可以使用二极管而不是收发器来建立具有以下连接的双节点 CAN 网络? 请参见下图。 您需要在总线上使用3V 而不是5V。 如果它产生的影响是在首次上电后不会失败、那么它将使我们专注于收发器。 由于我们使用的是二极管、因此请尽可能缩短两个电路板之间的距离。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、我想我没有看过所有过去的帖子。 似乎您发现了 CB1中电源之间的一些时序问题。 您可以忽略我先前的帖子。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    您的建议很聪明/很有创意、但仍然如此、"限制"标准生产可以为 Xcvr" 证明"公平和合理吗?"    " 指责收发器"(尤其是在"MCU 复位"之后)是否公平?收发器... "无瑕疵地执行?"

      (非常)强烈的"供应管理/时序问题的可能性"筛查结果是否未被(不公平和不当)拒绝?    这难道不能证明 "外部人员"的价值-他们具有更广泛的 MCU 经验/背景-从而证明 "更有可能"遇到此类问题-并且已经 (已经)开发了解决方案?

    通过我们对许多 ARM MCU (许多供应商)的"深入探讨"、我们注意到了这种"敏感性"、这种"敏感性"可能"并不总是"(容易且容易)揭示。

    并可通过提出的建议加以克服... (甚至)   由外部人员执行(有时尤其由外部人员执行)...

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

    我不知道这到底是要做什么。 如果我到目前为止所做的工作不能免除收发器的责任、我想知道您为什么这么认为、以及会证明这一点的原因是什么。 无论如何都很难实现-我必须移除所有 CAN PHY 芯片、然后...
    我们已经确定、当我相对于 VDD 延迟 VDDA 时、收发器的工作方式是正常的。 或者、当我在工作板上将它们连接在一起时、通信将停止工作、而您仍然可以看到 CAN 总线上的正常工作电平符合 TTL RX/TX。
    噢...我在我的 CAN 上使用3.3V。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯… 我的问题没有得到解决、只是因为即使我认为我已经很确定了某个连接、并且只有在电路板中、只有在我的电源设置中、 (简单地说、我没有其他基于同一 CPU 的电源设置不同的电路板、这些电路板上也有 CAN 总线)、导致 CAN 总线故障、如果这是1、则无法确定)由于芯片本身存在一些问题、 或者2)我所做的事情的问题、以及3)需要做的事情(我不是很担心必须在两个电源之间使用延迟、因为我在电路板上发现这使其正常工作)。
    我需要芯片内部或外部的真正原因、以便我可以治疗该疾病、而不是在重新设计电路时出现症状(如果需要的话)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Michael Nudelman"]我需要芯片内外的真正原因,以便我可以治疗这种疾病,而不是重新设计电路时的症状[/引用]

    您是否会为 "每一个/每一个" 其他芯片功能寻找这样的"真正原因-芯片内外-听起来"-到目前 为止、"观察"(一个希望)的行为符合预期?

    您在 本例中应用了唯一的"限定符"-为什么会这样?    正如"此处的供应商代理"(很可能)"未观察到"您的问题-可能"其他问题"-也回避(有限)供应商 观察?   (即一个且只有一个品牌的 MCU -已行使/已探测/观察!)

    我祝你一切顺利-我在这里的时间/努力都显示为"谢谢和无果!"   您"感谢太阳底下的每个人"、但从未向他(中的第4篇文章)正确诊断了您的问题!  

    没有 "充分/适当地遵守 问题"(尚未)。 不应该逃避这样的“真正的理由,发出声音!”   很好的悲伤!   玩得开心...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michael、
    我同意您的问题尚未解决、我同意我们尚未确定问题的根本原因。 我觉得 VDD 和 VDDA 的上升时间有所不同。 您的看上去大约为8ms。 我们的 EK-TM$C1294XL Launchpad 的 VDD/VDDA 上升时间约为300美元。 在这两个(您的设计和我们的 Launchpad)上、您都可以看到晶体管导通时电压下降约2.5V 至2.7V。

    我可以推测内部上电复位释放并且部件开始运行、但是缓慢的电压斜坡会导致电压在 CAN 初始化期间保持低电平、从而导致 CAN 无法正常工作。 但是、如果是这种情况、在电源稳定后复位部件将使其正常工作。 如果我记得正确的话,情况正好相反。 完全通电时系统复位导致问题再次出现。 是这样吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bob:

    没有复位会纠正问题并允许 CAN 正常运行。  因此您的理论可能是正确的。

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果是这种情况、延迟 VDDA 的上升可能会使内部上电复位(POR)的释放保持足够长的时间、使 VDD 稳定。 它还将解释为什么器件在由 CCS 编程后工作、因为在代码执行开始时、功耗已经稳定。

    您的下一个问题可能是、为什么器件会在器件正常工作之前释放其内部 POR? 简而言之、发布的 POR 级别因流程而异。 我们有一个很小的工作范围。 电压过低、部件无法正常工作、电压过高、并且可能无法在允许的 VDD 范围的低端运行。 当 POR 被释放时、此部件开始运行并消耗功率。 电流需求的增加会导致电压下降、直到稳压器能够进行补偿。

    如果无法缩短 VDD 的上升时间、则可能会尝试使用外部 nRST 引脚延迟 POR 的释放。 最好的方法是使用精确的外部电压监控器。 更便宜的方法是在 nRST 引脚上使用 RC 电路。 如果您的电源连接有噪声,例如将电线连接到12V 时,您可能需要添加二极管(电容正极和 VDD 阴极)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CB1、
    我认为你是第一个走上正确轨道的人。 但是、VDD 和 VDDA 之间的差异不会导致问题、而是可能掩盖了问题。 起初、我无法错过这样一个事实、即如此多的电路板都与 VDD 和 VDDA 连接在一起。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bob、

    感谢您-您在"问题描述"中发现了一个巧妙但微妙的区别。

    我可以告诉您、正如我之前的帖子所暗示的那样、我们曾在(其他人的) ARM MCU 上遇到(并解决了)此问题、并通过了此类调查结果、试图达到"某种价值"。

    正如您所注意到的、其他供应商受到"流程变更"的影响、同时还获得了多项好处、这是一种强加的(新的和不想要的)限制。 我们很幸运地解决了这一问题、并为我们的时间/努力获得了很好的补偿...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CB1、

    谢谢。 您非常有帮助。

    我所说的是、我希望对正在发生的情况进行工厂分析并提出补救措施。

    似乎我们正在消耗一小部分。

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

    是的、在事后看来、我希望我引入一个外部 RST 监控器、但到目前为止、我们从未遇到过任何问题、在10个左右的板配备了 Stellaris、两个板配备了 Tiva、一切正常、我从未尝试过这种情况。
    另一种方法可能是通过启用 VDDA 的 VDD 实现电源正常。 遗憾的是、我使用的3.3V POL 没有 PG 输出、并且使用3.3V 本身存在风险、因为它确实会在顶部经历这种下降。 这也告诉我、即使它与 PG 一起输出、它本身也会闪烁、我最终可能会遇到相同的问题。

    顺便说一下、明天我计划查看我有几块车载评估板、看看它们是如何工作的。