本帖最后由 小恩GG 于 2023-5-9 15:20 编辑
LPC55xx:CAN例程实践经验分享 经客户反馈,在运行SDK下的CAN 示例程序(mcan_interrupt_transfer)时,经常遇到困难,通信失败。本文主要分享如何快速在LPC55s06-EVK开发板运行此例程,并通过串口输出,打印测试结果,希望客户使用CAN 例程时能轻松成功。本文适用于lpc55(s)0xx/lpc55(s)1xx。 一、CAN demo介绍 在示例程序中,两块LPC55s06-EVK开发板板通过CAN总线连接。设置A、B节点后,当用户在节点A终端中按空格键时,节点A(板A)发送CAN报文至节点 B(板 B)。节点 B 接收消息后,将消息内容在终端打印,并发送返回消息至节点A。节点 A 将收到的消息打印并等待用户发起的下一次传输。 二、准备工作 1.软件:MCUXpresso(IDE)、mcan_interrupt_transfer demo。 2.硬件:两块LPC55s06-EVK开发板、两个USB转串口工具、两个USB下载线。 3.CAN知识。 CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。 简单说,CAN通信过程中用到两根数据线,对应例程实验过程需要注意的点是要把两个开发板对应的CAN_H、CAN_L和GDN相连接,来实现两个LPC55s06-EVK开发板CAN通信。 三、操作步骤 3.1软件操作
通过使用MCUXpresso(IDE)给两个LPC55s06-EVK开发板下载测试程序,软件程序选择如下 选择程序后编译->下载到开发板。 注意:下载程序时 JP9通过跳线帽短接,移除JP12跳线帽。 3.2硬件配置 下载程序到开发板后,需要进行硬件连接。 1) CAN通信口接线 1. 首先,在原理图找到CAN接口,如下图所示:
可以看出在J19接口上,CANH连接在7引脚,CANL连接到2引脚,GND在3引脚。 2.然后,在开发板上找出对应引脚。 接线时需要三根杜邦线,想要正常通信,需要保证两块板通信线的CANH、CANL、GND连接正确,看图更清晰,如下:
2) 串口工具接线 需要串口工具原因: 测试CAN通信打印通信数据时,不能使用J1打印测信息,应使用J3作为串口打印输出,其中J3的1引脚作为 UART的RX, J3的2 引脚作为UART的TX。 串口工具与LPC55s06-EVK开发板接线如下图所示: 3) 跳线帽连接注意事项 JP12必须断开 JP25的2、3引脚必须短接 JP26的2、3引脚必须短接 这两个操作,目的是选择打开开发板CAN通信功能 3.3通信测试准备 1)连接串口工具,通过设备管理器->端口,查看端口名 可以看出COM6、COM7为串口打印端口,用来打印输出测试信息 2)MCUXpresso(IDE)中集成了Terminal串口调试功能,打开如下图: 选择窗口->显示视图->其它, 然后搜索Terminal,选择打开 之后会出现Terminal窗口,选择右上角小显示器图标 会出现串口设置界面,选择SerialTerminal ,选择端口(在设备管理器中查看到的端口),如下图所示: 打开COM6和COM7后,如下图所示 3.4通信测试过程 1) 首先设置B节点 两个LPC55s06-EVK开发板分别连接串口工具后,按下其中一个LPC55s06-EVK开发板的复位键,会打印出如下信息。 然后通过键盘,输入“B”,设置B节点,此开发板作为节点B。 设置后,便会等待A节点发送数据。 2)然后设置A节点 选择另一个LPC55s06-EVK开发板按下复位键,打印如下信息: 然后通过键盘,输入“A”,设置A节点,此开发板作为节点A,会打印出如下信息: 3.5测试结果 当成功设置好A、B节点后。 在A节点,通过键盘按下任何按键时,便会向B节点发送数据。 当在A节点键盘按下时候,B节点接收的数据如下图所示: A节点接收的B节点返回数据如下图所示: 四、注意事项 1)LPC55s06-EVK开发板做CAN通信实验时,需要注意跳线帽的状态。 JP12必须断开 JP25的2、3引脚必须短接 JP26的2、3引脚必须短接 2)需要注意CAN通信数据打印测试时,不是用到LPC55s06-EVK开发板 J1的USB Link接口,需要用到串口工具。 3)在进行通信实验时,需要对两块开发板分别设置为A、B节点,B节点先运行。
|