0x00 官方仓库

  • originbot :                     originbot 机器人端功能包仓库;
  • originbot_desktop :       originbot电脑端功能包仓库;
  • originbot_controller :    originbot控制器源码仓库;

本节我们一起来分析一下,下位机控制器端电路原理及通信协议;

0x01 控制器仓库内容

D:.
├─firmware
├─images
├─material
│  ├─数据手册
│  ├─电气图纸
│  └─通信协议
├─source
│  └─originbot_controller_project
│      ├─DebugConfig
│      ├─List
│      ├─Obj
│      ├─RTE
│      │  └─_Project
│      ├─Source
│      │  ├─APP
│      │  └─Drive
│      └─STM32F10xLib
│          ├─inc
│          ├─Include
│          ├─M3
│          ├─src
│          └─startup
└─tools

firmware : 存放下位机固件(*.hex)文件;

images : 小车照片一张;

material : 数据手册,电气图纸(AD原理图),通信协议; 本节重点;

source : 下位机源程序;

tools: FlyMcu.exe MCU下载器;

0x02 OriginBot_Controller原理图

做硬件和做软件一样,要分模块,高内聚低耦合; PCB模块化布局,布线各模块间留有接口组合成一个系统;

0x03 STM32F103C8T6 最小系统

STM32F103C8T6单片机简介-CSDN博客

STM32F103C8T6单片机采用LQFP48封装设计,芯片一共引出44只引脚,其中A口有A0-A15共16个引脚,B口有B0-B15共16个引脚,C口有C13-C15共3个引脚,D口有D0-D1共两个引脚。

值得注意的是最小核心板C14和C15接了32.768K晶振,D0和D1接了8MHz晶振。

控制板可选两种程序下载接口,分别是ISP下载和SWD下载;

  • ISP下载

通过Type-C座子或者J5排针进行程序下载。

串口芯片采用 CH340C,这里2号管脚TXD 上的 SS14二极管的作用是防止电流倒灌; 当 MCU 需要复位以实现下载时,发现复位不成功,可能也是由于该原因造成的。

CH340电路设计电压匹配和防止电流倒灌问题-CSDN博客

RTS# 和 DTR# ,Q2,Q3 实现了自动下载电路,具体原理如下:

这两个引脚:DTR#和RTS#都是 输出类型,  MCUISP(一键下载工具),会控制CH340这两个引脚的高低电平状态,通过控制DTR#和RST#这两个引脚的高低电平状态,从而控制STM32的BOOT0 和 RESET. 

DTR#、RST#初始状态的时都是高电平,
在启用下载的时候,DTR#维持高,RST#拉低,此时两个三极管Q2 和Q3 导通,那么BOOT0 为高电平,RESET为低电平复位,然后DTR#变低,Q2不导通,复位结束,此时BOOT0 为高电平。由启动模式可知,stm32的启动模式变为从系统存储器启动,启用串口下载,STM32 和 MCUISP下载软件进行通信,进行代码下载,等到代码下载结束时 RST#先变为高电平,然后DTR#在变成高电平。  如果DTR#先变成高电平,那么会在一次产生复位。

D8 二极管同理,防倒灌;

程序在下载时 D5 发光二极管会闪烁;

参考:

串口一键下载电路(CH340)的理解_ch340n无法隔着电容拉低rst-CSDN博客

STM32的一键下载CH340 DTR RTS与复位电路NRST的学习笔记_nrst复位电路_流心蛋好吃的博客-CSDN博客

  • SWD下载

使用SWD接口下载只需要连接3.3V(如果烧录程序的板子自带供电的话3.3V引脚也不用连)、GND、SWDIO(PA13)、 SWCLK(PA14)、RST(非必要连线)。

使用SWD接口除了可以烧录程序外,还可以实现在线仿真(debug),仿真过程可以监视寄存器等数据,

电机控制相关引脚:

PA0: PWM1

PA1: PWM2

PA2: PWM3

PA3: PWM4

PA6:M1A

PA7:M1B

PB6:M2A

PB7:M2B

陀螺仪相关引脚:

PB8: SCL

PB9: SDA

PB10: U3_TX

PB11: U3_RX

电压检测引脚:

PA4: vol

分压电路;

LED & BUZZER:

PC13: LED

PA3 : BUZZER

D10作用续流二极管:

0x04 电机控制电路

AT8236是一款直流有刷电机驱动器,能够以高达6A的峰值电流双向控制电机。利用电流衰减模式,可通过对输入信号进行脉宽调制(PWM) 来控制电机转速,同时具备低功耗休眠模式。

内部保护功能包含过流保护,短路保护,欠压锁定和过温保护。AT8236N 提供一个故障检测输出管脚。(本项目没有)

H桥快衰减在控制电流时,会通过控制开关的开启和关闭,快速地将电流切断,使电机快速停止。而慢衰减则通过逐步减小电流的方式,使电机缓慢停止。

快衰减由于电流切断较快,所以电机的速度会迅速下降,这可能导致电机的位置控制精度较低。而慢衰减由于电流逐渐减小,电机会在较长时间内保持较高的速度,因此可以获得更高的位置控制精度。

H桥快衰减和慢衰减的主要区别在于电流控制方式和电机控制精度这两个方面。

0x05 电源电路分析

  • 12V-5V主电源

XL4005是一款高效降压型DC-DC变换器芯片,广泛应用于电源供电电路中。其功能是将较高的输入电压(+12V)降压为较低的输出电压(5V),最大输出电流为5A。

SMAJ15A: 单向TVS 15V截至,16.4A峰值脉冲;(D1)

SS54: 肖特基二极管; 电压:40V 电流:5A; 开关电源电感续流作用;(D2)

SMAJ5A: 单向TVS 5V截止 峰值脉冲;(D3)

ZMM5V1: 稳压二极管,5.1V;(D4)

FB 为反馈电路,从滤波电容后取电:

输入输出回流路径尽量小;减小电磁干扰;

  • 5V-3.3V电源

3.3V LDO 使用 AMS1117

同DCDC,输入输出回流路径尽量小,滤波电容靠近IC管脚放置;

  • TypeC接口供电给 X3 派

0x06 总结

接下来准备复刻这个PCB了,

2023.11.28于长沙。