00. 开始之前
你可能已经会给 ESP32 烧录程序,也可能只跑过几个例程,但还没真正接触过 CAN。看到 CANH、CANL、终端电阻、Node-ID、SDO 这些词时,不知道它们之间是什么关系,这很正常。
这套教程会从安装开发环境开始,带你接好一条真实的 CAN 总线,看到第一帧 CAN 报文,再一步步走到 CANopen 和电机控制。使用的器材是 ESP32-C3、TJA1050 底板和 IG35EC020 电机,但学到的 CAN 和 CANopen 知识并不只适用于这套硬件。
不要先运行最终程序
课程最后会得到一个能够访问电机对象并执行 CiA 402 位置运动的完整工程,但现在不要跳到最后一个实验。直接运行完成版程序可能看到电机工作,却无法帮助你判断报错究竟来自开发环境、接线、波特率、CAN 报文还是 CANopen 对象。
我们会按下面的顺序走:
先让一个普通 ESP-IDF 工程跑起来
|
认识并接好 CAN
|
收发普通 CAN 报文
|
看懂 CANopen 的通信规则
|
只读取电机信息
|
最后再控制运动
前面的步骤看起来慢一些,后面排错时却会轻松很多。
跟着文章实际操作
遇到命令时,不要只阅读命令,要在终端里执行并看实际输出。遇到接线图时,拿着自己的底板和线束逐项对照。文章里的“预期结果”也不是装饰,它用来判断你能不能继续下一步。
例如,工程编译成功只能说明代码生成了固件,不能说明 CANH 和 CANL 已经接对;发送函数返回成功,也不能说明电机已经收到报文。后面的课程会告诉你每一步应该寻找什么证据。
某一步与文章不一致时,先停在这一步。保留你执行的命令和从第一条异常开始的完整日志,不要为了碰运气同时修改好几个参数。
建议随手记下这些信息:
我正在做哪一课:
执行了什么命令或操作:
预期看到什么:
实际看到了什么:
第一条异常信息:
我改过哪些接线或配置:
这几项通常比一句“运行不了”更容易找到问题。
资料中的图应该怎么看
课程会使用到底板原理图和电机厂家手册。看到这些图时不用把整页都看懂,只找正文指出的部分。
比如查看底板原理图时,我们会一起沿着这条路径找信号:
ESP32-C3 GPIO19
-> TJA1050 TXD
-> TJA1050 CANH/CANL
-> 底板接线端子
图片下面会写明原始 PDF 和页码。这样以后换一块控制板或换一台电机,你仍然知道该去原理图、数据手册和连接器定义中找答案,而不是照背本教程的引脚号。
先约定一条安全规则
前面的 CAN 实验不会要求电机运动。接线和电阻测量必须断电完成。
真正进入运动实验后,文章会明确说明将要写入哪些对象、预计转动多少以及什么时候停止。在那之前,不要因为看到某个 CANopen 地址就尝试写入。电机要固定好,输出轴周围不要放手指、线材和工具。
现在开始
下一篇会准备 ESP-IDF v5.5.4。即使电脑里已经装了另一个版本,也不要急着删除;我们会把新版本并行安装,并解释为什么当前工程需要它。