Bilibili----葛大工程师
移植笔记链接:https://www.bilibili.com/read/readlist/rl452550?spm_id_from=333.1369.opus.module_collection.click
1.准备工作
1.下载CANFestival源码。
1.发送SYNC配置步骤
1.配置字典
主要是配置SYNC的索引,索引从CIA301协议中查找。
2.配置时钟
3.发送
2.发送PDO配置步骤
1.配置字典
主要是查索引号,索引从Cia301协议中查找。
2.配置时钟
us、ms的系数配置。
3.发送
3.发送SDO配置步骤
在拿到一款驱动器(一款设备)比如一款支持CANopen的驱动器,通常都需要配置它,
配置基本可以用上位机、也可以用SDO指令去配置驱动器内部的字典,如果有上位机可以配置,这样更好、更方便。
但是如果没有上位机,就需要用到SDO的发送,CANFestival也有SDO发送功能。
配置步骤如下:
1.打开Objdictedit字典配置工具,准备配置字典
点击"文件"-->"新建"
类型选择 "主控",因为我们是单片机,属于主控。
名字可以随便起。
Profile 如果是驱动器就选择 402协议。
2.选择SDO主索引段(0x1200----0x12ff) SDO Parameters
左下角有"添加"按钮,点击之后选择"客户端",即添加客户端。
因为用单片机控制驱动器,那么就是从驱动器里面发送数据到单片机,驱动器就相当于服务器提供数据给单片机,所以这里单片机选择客户端。
左下角再次点击 "添加"按钮,可以配置第二个驱动器。依次类推添加多个驱动器。
这里1个SDO其实相当于1个通道,有几个驱动器就添加几个通道,如果安装两个驱动器,却只添加1个通道,就只能控制一个驱动器,另一个驱动器就不受控。
3.配置
配置通道1:
COB ID Client to Server(Trasmit SDO) 值一般配置为0x00000601,也就是0x600+1,1就是1号节点即1号驱动器。
COB ID Server to Client(Receive SDO) 值一般配置为0x00000581,也就是0x580+1,1就是1号节点即1号节点。
配置通道2:
COB ID Client to Server(Trasmit SDO) 值一般配置为0x00000602,也就是0x600+2,2就是1号节点即2号驱动器。
COB ID Server to Client(Receive SDO) 值一般配置为0x00000582,也就是0x580+2,2就是1号节点即2号节点。
这样单片机请求服务器,就会发送0x601,驱动器返回就会返回0x581。
up好,6:33那里的字典里为什么客户端到服务器发送SDO是0x601啊,主给从发sdo不应该是0x581,从给主发不应该是0x601吗,是我理解错了还是写反了,up求解。
解答:单片机是主机,是客户端。服务器是提供数据的一方,主机从机是控制上的概念,两个不是一个领域。
注意:
CAN的底层配置一定要为 正常模式。因为有的是回环模式,回环模式是用来测试的。
2.配置字典:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】