控制模块
控制模块选择 MiaowLabs-STM32F1-Tiny 核心板,板载 STM32F103C8T6 控制芯片和 CH340 串口一键下载电路。
控制芯片相当于人的大脑,接收、处理各个传感器(包括陀螺仪和加速度传感器的信号),完成计算和规划后,向各执行机构(比如电机)发出控制命令。
MiaowLabs-STM32F1-Tiny 核心板有以下特色:
板载 2 个 LED,1 个用户指示灯 User LED(蓝色) 和 1 个电源指示灯 Power LED(红色),其中电源指示灯 Power LED(红色)通电即亮,用户指示灯 User LED(蓝色)则通过编程进行控制。
板载 3 个按键,2 个用户按键 User SW1、User SW2 和 1 个复位按键 RST SW3,其中2 个用户按键 User SW1、User SW2 通过编程进行使用。
板载 CH340 USB-TTL 电路和 Micro-USB 接口,使用数据线就能与上位机通信,也可以作为代码烧录、固件升级接口使用。
预留有 SWD 接口,可以外接调试器(比如 JLink-ob、ST-Link等)进行下载和调试。
控制芯片选择使用 STM32F103C8T6,因为它的体积小(LQFP48,7x7mm),功耗低(3.3V工作电压),运算速度快(10.25MIPS, ARM 32-bit Cortex™-M3 CPU),具有丰富的外设模块。它的主要外设包括但不限于:
- PWM: 8通道;
- AD转换器:10通道,12位;
- 定时器: 3通道16位通用定时器(TIM2/TIM3/TIM4),1通道高级控制定时器(TIM1);
- 丰富的外部串行接口:SCI,I2C,SPI;
- IO口:最多可以提供 32 路,可以与 5V 器件直接相连。
- 内部存储器资源包括: 64k 程序 Flash, 20k 数据 RAM。
下图显示该单片机的内部资源情况。
在「小霸王Lite」两轮自平衡小车中,STM32F103C8T6 芯片必须用到的的 IO 引脚有:
- I2C 通讯接口:读取 MPU-6050 数据
- I2C1_SCL(PB8,PIN45);
- I2C1_SDA(PB9,PIN46);
- Timer正交解码接口:读取编码器的脉冲数据
- TIM2_CH1(PA0)和TIM2_CH2(PA1):TIM2定时器增量编码器输入;
- TIM4_CH1(PB6)和TIM4_CH2(PB7):TIM4定时器增量编码器输入;
- 电机 PWM 驱动接口:控制电机转速
- TIM3_CH1(PA6)和TIM3_CH2(PA7):电机驱动;
- 电机转向驱动接口:控制电机转向
- AIN1(PB0)、AIN2(PB1)、BIN1(PA3)、BIN2(PA4)
- 程序调试 SWD 接口
- SWDIO(PIN34);
- SWCLK(PIN37);
- 串口下载 UART 接口
- TXD(PIN6);
- RXD(PIN7);
- 蓝牙通讯 UART 接口
- TXD(PIN33);
- RXD(PIN34);
除了以上确定使用的引脚,其它没有占用的引脚全部预留出来,并且在底板上用两排排针引出,用户可以非常方便地使用杜邦线连接其他模块进行扩展。