调试的前期准备可以参考前面的博文:DSP篇--C6701功能调试系列之前期准备_nanke_yh的博客-CSDN博客
CAN总线的工作模式有两种:BasicCAN模式和PeliCAN模式。同时,其处理方式又分为:直连和托管两种。
目的:测试CAN总线的接收和发送数据功能。
方法:借助ZLGCANTest.exe软件,直接观察数据的接收情况。
名称 | 地址 | 读写(W/R) | 复位值 | 注释 |
CAN1 | 0x1000 0400~0x1040 03FF | W/R(直接) | —— | 仅在直接模式下可操作,各寄存器配置详见《SJA1000 datasheet》 |
CAN2 | 0x1000 0400~0x1040 07FF | W/R(直接) | —— | |
CAN模式控制寄存器 | 0x1040 0800 | W/R | 0x00 | 直接控制:写入0xFF,读出0x01 托管控制:写入0x00,读出0x00 |
CAN通道选择寄存器 | 0x1040 0940 | W/R | —— | 通道1:写入0x00,读出0x00 通道2:写入0xFF,读出0x01 |
CAN发送数据缓冲区 | 0x1040 0840~0x1040 0870 | W/R | 0x00 | |
CAN接收包计数寄存器 | 0x1040 0880 | R | 0x00 | |
CPU读握手标志寄存器 | 0x1040 08C0 | W/R | 0x00 | CPU开始读是写入0xFF,读完成后写入0x00 |
CPU发送握手标志寄存器 | 0x1040 0900 | W | —— | CPU写完发送数据后,写入任意数据 |
CAN托管状态寄存器 | 0x1040 0980 | R | 0x89 | |
CAN芯片状态寄存器 | 0x1040 09C0 | R | 0x0C | 该寄存器内数据为最近一次发送CAN芯片状态寄存器 |
CAN复位寄存器 | 0x1040 0A00 | W | —— | 写入0xFF复位两路CAN,写入0x00恢复 |
CAN芯片接收错误寄存器 | 0x1040 0A40 | R | 0x00 | 该寄存器内数据为最近一次发送CAN芯片接收错误寄存器 |
CAN芯片发送错误寄存器 | 0x1040 0A80 | R | 0x00 | 该寄存器内数据为最近一次发送CAN芯片发送错误寄存器 |
CAN接收数据缓冲区 | 0x1042 0000~0x1042 FFFF | R | —— |
注意:正确配置寄存器,正确挂载中断;
can设备连接正确,并如下图设置;再分别选择CAN路数并启动。后面boot烧录均是通过can测试程序为例的。