秋意浓的**多功能智能小车**功能描述:
![GD32多功能智能小车3D图.png]

## **项目初步介绍:**
①基于官方训练营基础功能+外扩功能。
②基于GD32梁山派的多功能智能小车开发。
③电路包括摄像头模块,I2C OLDE模块, PNP蜂鸣器,蓝牙模块,Adc电压采集测量Vbat,同时板载2.4G E01 ML01DPS 500mW SPI通信模块,五路循迹电路模块,以及标配Key-Mode,Key-Start双按键,以及N20电机驱动模块,主IC由RZ7899驱动,开环无感驱动。![image.png]

④暂时还没写三环PID控制,将主要聚焦于放在u8g2的UI界面开发。
**⑤UI开发进度:**
(1)电量显示 (√)
(2)开机界面 (√)
(3)进度条 (√)
(4)多级菜单 (√)
(5)力控旋钮 (ing)
(6)实时数据反馈界面 (ing)
(7)状态机编程(ing)
待构思:................
![image.png]

## **硬件电路设计:**
创新设计:
**①电源输入&CHG切换电路**![image.png]

电路介绍:VBUS为Tyep-c供电口,当开关向上拨时,VBUS接入X非连接标识,即此时BAT接入主供电回路,经过SS34二极管压降约0.7V后经过HE6250 500MA的LDO将VBAT降压5V输出给整个电路供电。
当开关向下拨的时候,此时VBUS接入电路,BAT接入BAT_CHG,即此时Type-c为输入5V给整个系统供电的同时,BAT_CHG接入充电管理芯片引脚可为VBAT进行充电。
实现了电源输入&CHG电源切换的同步设计。
————————————————————————————
**②锂电池Type-c充电管理电路**
![image.png]

**原理介绍:**
6Pin Type-c通过开关来切换锂电Mode或充电Mode的两种模式,采用主充电管理IC:CS5090E 为2S锂电池进行平衡充电。下面通过其datasheet介绍一下其主要特性。
来自国产的一家双节锂电池升压充电IC,支持Vin=5V,最大1.5A充电电流,集成大功率开关MOS,减少功耗,转换效率高,开关频率500KHZ,内置四个环路来控制充电过程,恒流CC环路,恒压CV环路,搭配温度调节环路,支持LED充电状态指示,包含电路保护功能:输出过压保护,短路保护,输入欠压保护,IC集成PESD可耐2KV高压击穿。
![image.png]

引脚定义:
![image.png]

典型电路应用图:
![image.png]

**注意:根据实际自身应用需要来拓展外围无源器件电路选型**
————————————————————————————
例如根据电感纹波电流需控制在电感平均电流的40%,必须根据其数据手册上的计算公式,计算出所选电感的饱和电流大小在输出负载范围内大于系统工作时的电感峰值电流,以保证特征工作频率下电感的DCR和此信损耗小,保证其系统效率。
![image.png]

————————————————————————————
例如充电管理IC本身支持NTC热敏电阻过温保护功能,通过NTC引脚检测电池的温度高低,其保护工作方式为:通过NTC外接电阻到GND后,NTC_Pin固定输出20uA电流,通过电流产生的压降来判断电池的温度范围,其内部温度-电压拟合线性曲线中,内部温度过低判断点为1.43V
内部温度过高判断点为0.38V,如果不需要NTC功能,该引脚悬空。
**值得注意的是:一般现在买的锂电池本身自身都带温度保护功能,其充电管理IC附加的NTC热敏保护功能只是附加项**
![image.png]

————————————————————————————
**充电LED指示:**
![image.png]

————————————————————————————
**CS5090E布线布局推荐:**
①充电管理IC特别容易带来EMI电磁干扰,故必须对其做好EMC电磁兼容方案的设计,根据Datasheet中建议,其大功率开关管高频开关信号产生的干扰,需在LX引脚中增加RC一阶滤波网络,能够有效的降低开关信号的辐射。
![image.png]

②PCBA 注意事项:
(1)电源走线尽可能的宽,能够铺全铜和阻焊层开窗更是好的选择,且单独从电源走线为CS5090E供电
(2)此为典型的BOOST升压模块其主要的电流环路应尽可能包围圈小,走线短而粗
(3)LX引脚走线尽量短,以减少EMI,将RC一阶滤波电路靠近引脚,电源端的输入电容应尽可能的靠近芯片放置,且底部的散热片是功率地PGND,应与整板铺全铜相连,而尽可能的扇孔。
(4)个人参考布局,欢迎批评指正:![image.png]

————————————————————————————
## #PCBA布线布局#
采用四层板设计:
![image.png]

————————————————————————————
## 软件设计
部分板级支持包:
![image.png]

PS:仅展示基于u8g2库撰写的GD32的UI部分代码,目前已撰写4个Demo,包含4PIN I2C基础点亮代码,其余代码均为训练营开源代码,故不展示电机驱动,蜂鸣器,LED等基础代码。![image.png]

且整理了u8g2常用API函数,待完工后全部开源展示。
————————————2月24日分割线—————----------------————
# 新增简易多级菜单
详解:本次多级菜单的实现逻辑方式根据菜单项对应的索引值以及字符指针数组定义的菜单选项,我们通过按键的轮询扫描,假设向下的按键1次就把索引值自增1,然后进入菜单描绘界面,一旦索引值+1,那么我们对应for循环的i也自增1,也就是若索引值跟跟菜单索引值相等,就将当前选中的菜单项用sprintf进行输出,再按一次按键此时索引值继续+1,从而通过字符指针数组中i就代表索引值的当前序号即可用u8g2库对应的此时每次循环都被轮询的变量i而输出。
![image.png]

**对应的图片演示:**
![image.png]