杰发科技AC7840——CAN通信简介(1)

简介

7840支持4路CAN-FD

杰发科技AC7840——CAN通信简介(1)_第1张图片

Demo调试

官网下载demo,烧录,打开串口发现打印如下。原因是没有连接CAN盒子,总线错误。

杰发科技AC7840——CAN通信简介(1)_第2张图片

杰发科技AC7840——CAN通信简介(1)_第3张图片

CAN收发器端波形 

CAN_L有信号,CAN_H没有

杰发科技AC7840——CAN通信简介(1)_第4张图片

波形放大

杰发科技AC7840——CAN通信简介(1)_第5张图片

GPIO端波形

有持续波形输出

杰发科技AC7840——CAN通信简介(1)_第6张图片

波形放大查看,有50Us延迟(不排除测试仪表的延迟原因)

杰发科技AC7840——CAN通信简介(1)_第7张图片

接CAN盒子

以图莫斯为例(便宜好用,500-1200RMB)

总线协议使用CAN,可以快速探测找到仲裁域波特率为500K

杰发科技AC7840——CAN通信简介(1)_第8张图片

双击进入数据展示界面

杰发科技AC7840——CAN通信简介(1)_第9张图片

杰发科技AC7840——CAN通信简介(1)_第10张图片

重启发现串口没有数据打印了

杰发科技AC7840——CAN通信简介(1)_第11张图片

测试CAN1

Demo板子的CAN1因为接了LED灯暂时不能使用为CAN

杰发科技AC7840——CAN通信简介(1)_第12张图片

测试CAN2

CAN2接上之后,将代码的CAN2开启,代码写的还行,可以在这里直接修改使用的CAN通道

杰发科技AC7840——CAN通信简介(1)_第13张图片

编译烧录后没有信号

难道是没有CAN收发器的原因??

于是把CAN2的GPIO引脚接在CAN0引脚上,此时CAN0没有初始化。

发现有信号了。

杰发科技AC7840——CAN通信简介(1)_第14张图片

仔细一看,是PC16,也就是RX有信号,感觉很奇怪,demo只写了发送,没有做接收处理。

于是怀疑是高低电平的原因,把CANRX接在3.3V的电源上,果然有了同样的信号。

在此有了疑问,为什么直接给3.3V电源就能产生RX信号,需要和大佬请教下。

通过断点发现,在走完这一行代码后开始有接收信号出现。

杰发科技AC7840——CAN通信简介(1)_第15张图片

分析CANRX出现的原因

留坑 后续再填

分析CAN2没有信号的原因

需要配置内部上拉,对上拉理解更深了。

GPIO_DRV_SetPullSel(PORTC, 16U,PORT_INTERNAL_PULL_UP_ENABLED);
GPIO_DRV_SetPullSel(PORTC, 17U,PORT_INTERNAL_PULL_UP_ENABLED);

杰发科技AC7840——CAN通信简介(1)_第16张图片

CAN0在硬件上做了上拉

杰发科技AC7840——CAN通信简介(1)_第17张图片

测试CAN3

同样上拉后,有数据

杰发科技AC7840——CAN通信简介(1)_第18张图片

至此,Demo的测试已经OK,下一步看看CAN的细节

你可能感兴趣的:(AutoChips,杰发科技,MCU,7840)