STC mini-FOC 体积缩小到11.5x15mm
小体积应用参考:使用STC32G8K64,硬件采用N+P MOS+EG3033进行驱动
硬件平台
- 主控:STC32G8K64,主频 40MHz(内部 HIRC)
- 驱动:N+P MOS 管方案
- 供电:2S~3S 锂电(6~12.6V),最大持续电流 10A
- 适配电机:1103 7500KV(极对数 6),换电机需改 FOC 库参数
接口定义
┌─────────┬───────────────────────┬─────────────────────────────┐
│ 引脚 │ 功能 │ 说明 │
├─────────┼───────────────────────┼─────────────────────────────┤
│ P20~P25 │ 三相 PWM 输出 │ U/V/W,50kHz 载波 │
├─────────┼───────────────────────┼─────────────────────────────┤
│ P36/P37 │ 反电动势检测 │ 高阻输入,需分压电阻网络 │
├─────────┼───────────────────────┼─────────────────────────────┤
│ P30/P31 │ UART1 │ 115200-8N1,控制/调试 │
├─────────┼───────────────────────┼─────────────────────────────┤
│ P32 │ PWM 输入捕获 │ 油门信号,1kHz~200kHz 方波 │
└─────────┴───────────────────────┴─────────────────────────────┘
控制协议(串口)
- 帧格式:0x55 + ID(1B) + DataH + DataL + ADD8
- ADD8 校验:前 4 字节相加取低 8 位
- 数据范围:0~1024,对应占空比
- 默认 ID=0,示例:55 00 00 C8 1D = 占空比 200
- 停机:发 < Min_duty(默认150)
- 不断电下载:发 55 00 FF FF 53
保护机制
- 油门启动保护:需低油门≥50ms → 高油门≥50ms 时序
- 串口超时保护:10s 无合法命令自动停机
- 堵转保护:FOC 检测换向异常,调用 Stop_Moto()
- 超速保护:ERPM > 300000 自动降占空比
- PWM 信号丢失:>24.4μs 无有效边沿立即停机
用户可配参数(main.c 宏定义)
- Min_duty:最小启动占空比,默认 150
- Set_Timeout:串口超时,默认 10000ms
- Low_Duty_Time / High_Duty_Time:油门保持时间,默认各 50ms
- MAX_ERPM:最大电转速,默认 300000
- START_MODE:上电行为(0=直接启动,1=等待信号)
- UART_DEBUG:调试开关(0=PWM+串口混合,1=仅串口+调试输出)
刹车
- 惯性停止:关 MOS 管,滑行
- 快速刹车:下管全开短路制动(仅限低速/紧急)
已知限制
- 正反转仅支持编译时静态配置,运行时切换未完成
- 速度闭环未实现,超速保护仅为比例限幅
- FOC 库开环参数已针对 1103 优化,其他电机需要自行修改启动参数
666 STC牛,建议好东西弄点成品,
挂个链接出售(贵一点也无妨)。
让用户去打板,买料贴片,太麻烦一般的人都不会去搞了。
代码只看不去亲自调试硬件,学不到真经。
{:4_174:}{:4_174:}{:4_174:}
页:
[1]