TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28374S: TMS320F28374S

Part Number:TMS320F28374SOther Parts Discussed in Thread:C2000WARE

大家好,我在使用F28374S时CANB通信异常,求助,谢谢!

问题描述:CANA、CANB都有使用,波特率1MHZ,扩展帧,1-16号邮箱发送,17-28号邮箱接收,同样的初始化,CANA可以正常收发,CANB不能,通信流程是PC通过CAN上位机软件给分别F28374S的CANA、CANB发数据,CANA、CANB收到之后应答2包数据给PC,仿真查看CANA、CANB的寄存器,发现有一处不一样CAN_TEST,查询手册CAN_TEST = 0x80,表示其bit7 (RX)为1(隐形),但CANB为0(显性),用万用表量CANA、CANB的RX都为高电平(隐形),为何CANB的CAN_TEST的RX位不更新 ?用示波器测量过CANH、CANL差分信号,波形是很好的,错误寄存器也没报错。

PS:测试过程中发现一些奇怪的现象

  1. 在工程中交换CANA、CANB初始化顺序,CANB可能收发成功
  2. 假设CANB当前可以工作,然后再工程中添加更多的代码,这些代码跟CAN无关,CANB也会收发失败

查看存储器的空间使用,并未使用满,增加Flash存储空间,CANB仍然收发失败。

Yale Li:

参考的是哪个例程?

看一下CAN_TEST Register的描述:

spruhx5g_TMS320F2837xS Microcontrollers Technical Reference Manual (Rev. G)第2382页21.15.2.6 CAN_TEST Register (Offset = 14h) [reset = 0h]

,

xb wang:

抱歉,您发的图片打开不了,我是根据C2000Ware里3.03版本“ f2837xs\examples\cpu1\can_external_transmit\cpu01\can_external_transmit.c”修改的,我想知道是CAN_TEST的RX具体有什么作用,数据什么时候会更新,因为我用示波器测CAN收发器的RX引脚是高电平(隐性状态),该引脚直连DSP的RX引脚,为啥CAN_TEST的RX不是1呢 ?

,

Yale Li:

我重新编辑了一下,试一下现在是否能打开?

,

xb wang:

这个描述我看了,我奇怪的是RX用于检测CANRX引脚的状态,这个引脚实际(示波器测试)是隐形状态,但CAN_TEST的RX并未置1

,

Yale Li:

CAN TEST寄存器是在test mode中使用的。可以看一下TRM的21.4.3 Test Modes,每一种test mode的信号连接都不同。

在正常的工作模式中是不参考这个寄存器的。

,

xb wang:

问题已找到,是在初始化CANB的RX管脚时不小心使能了输入反相(GPAINV寄存器),导致CAN_TEST的RX异常时为0,关闭输入反相后可以正常通信。

,

Yale Li:

问题解决就好~也感谢分享

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28374S: TMS320F28374S
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1