# NaviKit_stm32 PM1导航套件中电源控制板源码,STM32F107VCT6,开发环境STM32CubeIDE # 特性 ## 1.电池管理统计功能(基于IIC协议的库仑计) ## 2.负载的启动顺序编辑和软件改变/查询负载状态 ## 3.电源监控功能(多轨电源电压监控) # 串口通信协议 * TODO `STM32作为CDC Device接入到USB2.0-HUB的Downsteam 7端口下` * 负载开关部分 | 位置 | 字节0 | 字节1 | 字节2 | 字节3 | 字节4 | 字节5 | 字节6 | 字节7 | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | 功能 | 帧头 | 读写 | 指令 | | 示例 | 0xA5 | 0x80 读
0x81 写
0x7f 返回 | * 电池管理部分 # Note 在使用usb的时候, `stm32f1xx_hal_pcd.c`文件内 `void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd)`函数内 `HAL_PCD_SuspendCallback(hpcd); `代码段 务必屏蔽,否则导致枚举失败,提示获取设备描述符失败。 # 电源模式状态机 ![](power_state_machine.jpg) # DFU模式 > Device Firmware Update , 针对Jetson Nano的固件升级模式 * 进入方法: 1. 关机状态; 2. 按下`重启`按钮; 3. 按下`电源`按钮; 4. 听到滴声后,松开两个按钮。 5. 检查Host PC是否有一个名为Nvidia的设备 # BIOS升级模式 > 主板上基础功能控制器的固件升级 * 固件及升级工具: https://github.com/autolaborcenter/EmbeddedProductData * 进入方法: 1. 断开主板的主电源和备用电源,并将主板BIOS的USB typeC接口和Host PC连接; 3. 按下`重启`按钮,插入主板的主电源,听到滴声后,松开`重启`按钮; 4. 打开STM32CubeProgrammer,选择UART模式,点击Connect; 5. 点击Open,选择新固件,点击Download