2020-04-30 10:15:46 +08:00
|
|
|
|
<!--
|
|
|
|
|
* @Description: file content
|
|
|
|
|
* @Author: CK.Zh
|
|
|
|
|
* @Date: 2020-02-20 11:39:38
|
|
|
|
|
* @LastEditors: CK.Zh
|
2021-03-10 12:03:49 +08:00
|
|
|
|
* @LastEditTime: 2021-03-10 11:40:42
|
2020-04-30 10:15:46 +08:00
|
|
|
|
-->
|
2020-02-20 11:39:38 +08:00
|
|
|
|
# NaviKit_stm32
|
2020-04-16 20:05:03 +08:00
|
|
|
|
PM1导航套件中电源控制板源码,STM32F107VCT6,开发环境STM32CubeIDE
|
2020-04-30 10:15:46 +08:00
|
|
|
|
# 特性
|
2020-04-16 20:05:03 +08:00
|
|
|
|
|
2020-04-30 10:15:46 +08:00
|
|
|
|
## 1.电池管理统计功能(基于IIC协议的库仑计)
|
|
|
|
|
## 2.负载的启动顺序编辑和软件改变/查询负载状态
|
2020-08-21 18:13:24 +08:00
|
|
|
|
## 3.电源监控功能(多轨电源电压监控)
|
2020-04-30 10:15:46 +08:00
|
|
|
|
|
|
|
|
|
# 串口通信协议
|
2021-02-05 18:22:21 +08:00
|
|
|
|
* 在jetson nano系统中,找到串口ACM,发送数值(0-11),即可通过硬件重启12个usb口对应的设备
|
2020-04-30 10:15:46 +08:00
|
|
|
|
|
|
|
|
|
`STM32作为CDC Device接入到USB2.0-HUB的Downsteam 7端口下`
|
|
|
|
|
|
|
|
|
|
* 负载开关部分
|
|
|
|
|
| 位置 | 字节0 | 字节1 | 字节2 | 字节3 | 字节4 | 字节5 | 字节6 | 字节7 |
|
|
|
|
|
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|
|
|
|
|
| 功能 | 帧头 | 读写 | 指令 |
|
|
|
|
|
| 示例 | 0xA5 | 0x80 读 </br> 0x81 写 </br> 0x7f 返回 |
|
|
|
|
|
|
|
|
|
|
* 电池管理部分
|
2020-04-14 17:28:14 +08:00
|
|
|
|
|
|
|
|
|
# Note
|
|
|
|
|
在使用usb的时候,
|
2021-03-10 12:03:49 +08:00
|
|
|
|
文件`stm32f1xx_hal_pcd.c`
|
|
|
|
|
函数`void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd)`
|
|
|
|
|
代码段`HAL_PCD_SuspendCallback(hpcd); ` 务必屏蔽,否则导致枚举失败,提示获取设备描述符失败。
|
2020-08-21 18:13:24 +08:00
|
|
|
|
|
2021-01-07 19:01:08 +08:00
|
|
|
|
> EC日志输出口波特率为56000bps
|
|
|
|
|
|
2021-03-10 12:03:49 +08:00
|
|
|
|
# 维护指南
|
|
|
|
|
* 为提高可移植性、可维护性、可阅读性,开发(应用层)时尽量使用`CMSIS_OS2`的抽象接口,特殊情况时再考虑使用RTOS的原生接口
|
|
|
|
|
* 线程任务实例及属性、句柄的声明及定义,独立存放在`App`文件夹
|
|
|
|
|
* 线程、定时器、事件标志、互斥锁、信号量、消息队列等功能的初始化统一在`freertos.c`文件中进行初始化(内核启动前的预装载)
|
|
|
|
|
* `freertos.c`中的任务实体只保留默认任务即可
|
2021-01-07 19:01:08 +08:00
|
|
|
|
# 勘误
|
|
|
|
|
硬件的v1.0以前版本中,SYS_RESET脚和MOD_SLEEP到单片机的实际连接与网络标号是相反的(问题发生在TXB0108PWR芯片附近),故代码中在GPIO处进行了相反的设置。
|