站内搜索
发作品签到
专业版

STC电调(AM32固件移植)

工程标签

7.8k
0
0
55

简介

AM32固件移植到AI8051U上

简介:AM32固件移植到AI8051U上

开源协议

CC BY-SA 3.0

创建时间:2025-01-12 16:37:10更新时间:2026-04-13 11:34:23

描述

注意MCU请确保是24年10月之后的(即MCU最下方丝印为2442开头)

相关固件及程序

介绍

AM32 固件原为 ARM 处理器设计,现成功移植到 Ai8051U,用于控制无刷电机 (BLDC)。该固件旨在安全、快速、平滑、快速启动和线性油门。它适用于多种车辆类型和飞行控制器。

AM32具有以下特点:

  1. 可通过 betaflight 直通、单线串行或 arduino 升级固件
  2. 伺服 PWM、Dshot(300, 600) 电机协议支持
  3. 双向控制
  4. KISS 标准 ESC 遥测
  5. 可变 PWM 频率
  6. 正弦启动模式,旨在让更大的电机加速

主控及外设配置

使用AI8051U作为主控芯片,AI8051U具有充足的外设资源和优异的性能表现。

MCU

mcu.png

MCU引脚图

mcu_pins.png
使用 PWMA 输出 3 组互补 PWM 来驱动 MOSFEET,使用 PWMB 捕获外部油门信号,使用 ADC 对电压和电流进行采样,用于低电压保护和过流保护(但我还没有完成)。使用内部 OPA 和 BEMF 估计转子位置。TMR0 和 TMR1 用于计算换向时间,TMR2 用于串口,TMR3 和 TMR11 用于延迟功能(实际上,只需要一个),TMR4 用于完成一些周期性任务。

引脚选择

image.png

AH AL BH BL CH CL : PWMA 输出

INPUT: PWMB 外部输入触发

A_BEMF: A相反电动势
B_BEMF: B相反电动势
C_BEMF: C相反电动势

CC_BEMF: 反电动势中电

CMP_OUT:比较器输出

ADC_V: 电压检测口
ADC_I: 电流检测口

为了统一 OPA 的中断入口,将 OPA 的输出到 P41 中,使用 P41 的引脚中断进行过零比较处理

P30 和 P31 用于通过 STC-LINK1、UART 或内部 USB 下载 bootloader,请注意在这个PCB中我将P30和INPUT短接在一起。

有关详细信息,请参考原理图!

初始化(板子仅供参考)

烧录Bootloader

  1. 对于空芯片,BootLoader 需要通过 STC-LINK1、UART 或内部 USB 进行烧录,如下图所示进行连接。

1f28c210933484ae9888c5bf5bb5fcb1.jpeg

  1. 使用 AIapp-ISP 打开 Bootloader 工程,编译后直接下载。

download.png
3. 使用单线串口(可以将 USB 转串口芯片的 RX 和 TX 连接在一起,比如 CH340,然后连接到板子上)连接到 ESC,并使用工具配置和更新固件。我用 CH340 来表现,接线如下图所示。

d1ed614ea0028a2217fbf203974ae57e.jpeg
e8c41f2af02c692a4848a7176b9bf1c7.jpeg
如果 Bootloader 烧录正确,打开 ESC_Config_Tool 配置工具并打开 ESC 电源。按照下图中的步骤进行单击。首次连接时,将显示 No EEprom!
first.png

直接点击下面的 发送默认设置 以烧写默认值。烧录成功后,重新开机。再次连接并单击 M1。将显示我们刚刚烧录的默认参数。

then.png

  1. 刷写固件和配置固件可以使用 Keil C251 进行编译,编译后的固件位于 Objects 文件夹中。
    hex.png
    使用文本编辑器打开 HEX 文件(我更喜欢使用 VScode),为了更好的支持 HEX 文件编辑,需要安装 Hex Editor 或 Intel HEX 格式插件,该插件可以在扩展市场中找到。安装后,打开 HEX 文件。
    Plug_in.png

    在这个 HEX 文件中,请注意第一行。
    :03000000023E5865
    0000H 的值更改为 1000H,将 65H 的值更改为 55H
    :03100000023E5855
    请注意,0000H 的值是程序的起始地址,65H 的值是校验和。1000H 的值是烧录 bootloader 后程序的起始地址。55H 的值是新的校验和。烧录 bootloader 后程序的起始地址是 0x1000H,因此 0000H 的值更改为 1000H。校验和的计算方法是将行中除起始冒号和校验和本身之外的所有数据相加,然后取总和最后一个字节的二进制补码。65H 的值更改为 55H,一般来讲,上面这个改动导致的校验位变化可以直接在校验位上面减去10H。具体计算方法可以在网上找到。如果 VScode 配合插件使用,可以直接点击地址值进行修改,插件可能会自动计算新的校验和。
    Hexline.png

Hex_change.png
回到工具的 FLASH 界面,我们点击 Load Firmware,选择我们刚刚修改的固件,会弹出 FLash Firmware 按钮。单击以开始更新程序。

updata.png

更新完成后,重新上电并重新连接 ESC 以配置 ESC。

para.png

成品

IMG_20250112_115558.jpg

测试

我移植的版本是 V2.16,固件本身支持 dshot300、dshot600、PWM 等信号。(但出于部分原因,我只实现了 PWM,不能使用 dshot)。

更新

2025/8/22 学弟学妹们发现了一个移植bug,该bug导致了电调响应速度较慢,现在已改正,并将移植版本提高的到2.18
2026/4/10 R16电流采样电阻改为1mΩ(如果不需要电流采样直接去掉即可),同时因为供电焊盘细长,请注意添加铜条。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
AM32_Bootloader_AI8051U.zip
191
2
Esc_Config_Tool_1_82_WIN.zip
264
3
AM32_AI8051U.zip
277
4
AM32_AI8051U_2.18.zip
161
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航