跳到主要内容

CAN总线

本教程介绍如何准备 Aotenjo One 板用于 CAN 总线通信并运行闭环角度控制。

信息

如果您同时拥有Aotenjo One V2.x和Aotenjo Master v2.x,请参阅CAN FD 通信教程。

为什么将 CAN 总线与 Aotenjo 一起使用?​

当您想要使用单个 Aotenjo Master 控制板控制多个 Aotenjo One 板时,我们建议使用 CAN 总线与 Aotenjo 板进行通信。 请参阅Aotenjo Master CAN Bus教程,了解更多有关Aotenjo使用CAN总线优势的详细信息。

准备工作​

本教程使用以下硬件:

  • Aotenjo One 控制板 单片机:STM32G431CBU6 版本:Aotenjo One V1.4
  • 沿直径方向充磁的圆片磁铁(Aotenjo One 附带)
  • ST-LINK V2 克隆版
  • BlackPill STM32 板
  • BE4108 75T云台电机
  • 电源(12V)
  • 焊接套件

您需要 ST-LINK V2 克隆版来将固件上传到开发板。您可以以低于 5 美元的价格购买廉价的 ST-LINK V2 克隆版。

CAN总线连接​

将各控制板以菊花链方式连接,使用 CAN_H 和 CAN_L 进行通信,使用 VCC 和 GND 提供电源和共同的接地参考。

为减少信号反射,CAN 总线的两个物理末端各需要一个跨接在 CAN_H 与 CAN_L 之间的 120 Ω 终端电阻。不要启用总线中间控制板上的终端电阻。下图仅展示 CAN 信号线,省略了电源线和接地线。

如何启用 Aotenjo One 的终端电阻

请根据控制板上配备的终端配置方式进行设置:

  • 配备焊接跳线的控制板: 当控制板位于总线的物理末端时,用焊锡连接终端跳线的两个焊盘。当控制板位于总线中间时,请保持焊盘断开,或移除连接焊盘的焊锡。
  • 配备 CAN 终端开关的控制板: 当控制板位于总线的物理末端时,将 CAN TERM 设为 ON;位于总线中间时,设为 OFF。

示例:绕线机​

我们的绕线机采用以下菊花链连接方式。此顺序表示物理连接顺序,而非通信方向:

Aotenjo Master — Aotenjo One (M3) — Aotenjo One (M2) — Aotenjo One (M1) — Aotenjo One (M0)

在此配置中,Aotenjo Master v2.1 的内置终端电阻为总线的一端提供终端匹配。在另一端的 Aotenjo One M0 上,通过焊接跳线或 CAN 终端开关启用终端电阻。M1、M2 和 M3 上的终端电阻应保持禁用。

如果在相同位置使用配备 CAN 终端开关的 Master 控制板,也请将其开关设为 ON。

配置开发环境​

VSCode 与 PlatformIO​

您可以从 VSCode 扩展市场安装 PlatformIO。

STM32CubeProgrammer​

您需要它来将固件烧录到开发板。

克隆代码仓库​

git clone https://github.com/aotenjo-xyz/one.git
cd one
git checkout v1.0

快速入门​

  1. 将磁铁放在电机轴上。

电机轴上的磁铁

  1. 将 Aotenjo One 板连接到 ST-LINK V2 编程器。

    ST-LINK V2 <-> Aotenjo One
    3.3V <---> 3.3V
    GND <---> GND
    SWDIO <---> SWDIO
    SWCLK <---> SWCLK
    RST <---> NRST
    信息

与 BlackPill 不同,STM32G4 系列还需要将控制板的 NRST 引脚连接到 ST-LINK V2 编程器。 或者,您可以在上传过程中按住Aotenjo One板上的NRST按钮来达到相同的效果。 ::: 3. 将 ST-LINK V2 编程器连接到计算机。 4. 在 VSCode 中打开项目文件夹。 5. 单击左侧栏上的 PlatformIO 选项卡,然后单击 Upload 按钮将固件上传到开发板。

现在您已准备好使用 CAN 总线通信来控制电机!

后续步骤请参考Aotenjo Master CAN 总线教程。