网站大量收购独家精品文档,联系QQ:2885784924

关于28335的CAN通信问题总结.docVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于28335的CAN通信问题总结 最近在调试28335的CAN通信,调试的过程中遇到了关于一直等待发送成功TA置位的问题: ? ???do ? ???{ ? ?? ? ECanaShadow.CANTA.all = ECanaRegs.CANTA.all; ? ???} while(ECanaShadow.CANTA.bit.TA25 == 0 );? ???// Wait for TA25 bit to be set. 这是TI提供的A to B 的工程中的等待发送成功标志置位等待,该程序的工程名虽然是A to B,但是程序中并没有对B口接收邮箱进行ID,方向等初始化,仅仅是对A口的25邮箱(不同的例子可能有些区别)进行发送初始化并且使能了发送,所以这里我的测试是将A口接到我的USB接口的CAN卡上,与PC机通信。 开始测试的时候就遇到了等待TA置位的问题,示波器打CANH和CANL两端没有波形,后来在TI的论坛上查到了原因: /support/microcontrollers/tms320c2000_32-bit_real-time_mcus/f/171/p/69248/250556.aspx#250556 即如果通信不成功的话,物理层上CAN通信收发芯片(板子上的CAN驱动IC)是不会给DSP返回ASK应答信号的,那么TA就不会置位。那么通信不成功有哪些原因呢?我下面列举下我知道的原因,希望对大家调CAN有所帮助,同时也欢迎大家补充。 硬件问题: 1、画板子时28335 CAN的GPIO口的定义,就是要确认画板子的时候是否将CAN口的输入和输出口给定义正确,例如有可能就会将DSP的CANRXB口接到CAN驱动IC的TX脚上去,我测试的板子就犯了这样坑爹的错误;-_-| 2、驱动IC的选择,CAN 通信需要接专门的驱动IC才能通信,而不能简单的将28335的CANTX和CANRX连接进行通信。CAN协议经过ISO标准化后有ISO11898标准(125K---1Mbps)和ISO11519-2(10K -----125Kbps)标准两种,这两种协议的物理层的规格是不一样的,其总线连接方式也是不同的,两种规格需要有专门的驱动IC与之对应。一般采用的是ISO11898协议(总线终端电阻为120欧姆),常用的IC有HA13721RPJE/PCA82C250/Si9200/CF15这几种,本次调试用的是Si9200驱动IC; 3、驱动IC的供电电压,由于DSP的GPIO输出是3.3V,所以有些板子上的CAN驱动IC供电也是3.3V,所以在这里要确定所用驱动IC在3.3V的供电电压下是否能正常工作,在网上就看见有些网友说有些驱动IC在3.3V下是不能正常工作的,这个时候设计电路时就可以考虑用磁隔离芯片将DSP和驱动IC隔离开,驱动IC用5V供电; 4、终端电阻的问题,如果你采用的是ISO11898协议的驱动芯片,则你要做通信总线上接上两个120欧姆的终端电阻; 软件问题: 1、28335 CAN的复用GPIO口的设置,这一点28335和2812的是有区别的,2812的CAN口对应的IO是固定的,而28335确实不确定的,像A口就有(GPIO30,GPIO31)和(GPIO18,GPIO19)两种选择,B口有(GPIO8,GPIO10)、(GPIO12,GPIO13)、(GPIO16、GPIO17)和(GPIO20、GPIO21)。这里IO复用CAN使能的时候就要注意了,一定和板子上的接口对应上,TI给的CAN例程中已经完整的列出这些管脚的初始化,屏蔽掉不用的管脚就是了。 2、波特率问题,通信的两个CAN口的波特率必须一致,这个是毫无疑问的。这里28335的波特率设置与2812的也有区别,除了要使能CAN的block外,还要注意CAN clock仅仅是 SYSCLKOUT的一半, 150 MHz SYSCLKOUT (75 MHz CAN clock) 。还有要注意如TSEG1必须大于或等于TSEG2等这些小问题,具体参考TI的手册或者程序。 3、邮箱的初始化,这里参考Ti的例程就OK了,这里列举一些个人觉得比较要注意的寄存器赋值: ? ?? ???a、ECanbShadow.CANMC.bit.ABO = 1;? ? //auto bus on ? ?? ?? ?b、ECanbShadow.CANBTC.bit.SAM = 1;? ?//required if BRP is 4 ? ?? ?? ?c、ECanaShadow.CANMC.bit.STM = 0;? ? // Configure CAN for nomal mode 4、ID屏蔽的问题,这里建议刚开始调试时,如果是用CAN卡来接收,则建议

您可能关注的文档

文档评论(0)

zsmfjh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档