
【智能车竞赛】CH32V307主板(轻量化)
简介
以CH32V307为主控,以追求轻量化为主要指标,大量参考FPV飞控设计,软件上略做修改后兼容逐飞库,拥有小体积(4cm*4cm)与低自重(焊接后全重13.2g)特点,焊接难度较低的智能车气垫组主板。
简介:以CH32V307为主控,以追求轻量化为主要指标,大量参考FPV飞控设计,软件上略做修改后兼容逐飞库,拥有小体积(4cm*4cm)与低自重(焊接后全重13.2g)特点,焊接难度较低的智能车气垫组主板。开源协议
:GPL 3.0
描述
一、板载外设
1.CH32V307主控芯片;
2.HSE(16Mhz)与LSE(32.768Khz)晶振;
3.W25Q32(使用SPI接口);
4.BMI270(逐飞商品名为IMU660RA);
5.三色LED;
6.切换开关;
二、板载接口
1.WCH-link接口,包含一个串口(UART3);
2.DVP接口(逐飞总钻风摄像头接口,使用同面软排线连接,有独立3.3V稳压);
3.SPI接口(有独立3.3V稳压,可用于外接屏幕);
4.I2C接口;
5.无线模块接口(支持逐飞无线串口);
6.传感器接口(串口,可用于外接传感器板);
7.编码器接口;
8.舵机电调接口(12路定时器通道);
9.电源电压测量接口;
三、设计思路
这块板子面向19届智能车气垫组设计,设计时考虑的是全无刷方案,为船体配备的动力是6台M1106无刷电机+4台MG90D舵机,利用舵机+无刷实现推力矢量控制,因此可以发现这块板子引出了多达12路PWM,但是几乎没有引出GPIO,也没有常规的有刷驱动接口。
早期设计时考虑的测速方案是利用压差传感器自制空速管进行测速,因此可以看到板子上引出了一个看起来非常意义不明的传感器接口,用于外接自制的测速板进行速度测量,但后期由于系统复杂度被迫放弃了空速管方案,因此在4.2版本后主板临时加入了一个编码器接口,使用测速轮进行测速。
这块板子设计时出于方便走线的考虑大量修改了逐飞库中各传感器使用的外设与引脚,因此需要对逐飞库中对应传感器使用的外设进行修改。
四、缺陷
1.由于早期过于追求体积使用了2016晶振,但由于2016晶振的常见阻值不包括8Mhz,因此使用了16Mhz频率,导致使用无论是逐飞库还是标准库都需要在时钟配置文件中对晶振频率进行修改,流程如下:
(1)修改ch32v30x.h头文件中的HSE_VALUE定义为((uint32_t)16000000),以适配16Mhz晶振;
(2)在zf_common_clock.c中修改clock_set_freq()函数,在PLL配置部分(108-125行)添加RCC_PLLXTPRE_HSE_Div2宏定义,用于对输入的时钟信号进行分频。
使用官方标准库仅需进行步骤(1),使用逐飞库则需要执行(1)和(2)。
若不想执行上述流程,则需要修改晶振封装,并对相关部分的布局进行修改。
2.仅有一个开关,难以进行多模式切换,也几乎不可能实现脱机调参。
3.供电输入有DAP、电调、电池三种,但是三种供电方式之间没有任何形式的隔离,5V稳压的输出也没有防倒灌设计。
设计图

BOM


评论