SH367309中颖单片机专用动力电池保护板开发资料 原理图PCB代码

资料下载地址:SH367309中颖单片机专用动力电池保护板开发资料 原理图PCB代码

目录

1、简介

2、原理图和PCB

3、程序

1、简介

中颖BMS5-16 串 前端芯片,用于充电管理+电池保护+电量计量,有规格书,原理图,PCB, DEMO CODE全套开发资料 。

2、原理图和PCB

3、程序

cpp 复制代码
#include "system.h"
#include "Uart.h"
#include "Main.h"


void main(void)
{
        Initial();                                        //Initialize the system
        
        while(1)
        {
                RSTSTAT = RSTSTAT;

                  if(bAFEFlg)
                {
                         bAFEFlg = 0;
                        AFERdFlag();
                }

                if((ucResetFlag==0x12) && bUartSndAckFlg)        //Software reset occurs, and ended UART communication
                {
                        if(!bWrFlashFlg)
            {
                                EA = 0;
                                ResetAFE();                                                //Reset IC
                                ResetInit();                                        //Reset MCU
                        }
                }
                
                if(bWakeupFlg)                                                //The charger / load, keys can wake up the system
                {
                        bWakeupFlg = 0;
                        WakeUpProcess();                                //System to be awakened
                }

                if(bBleOnOffFlg)                                        //按键长按5秒开启/关闭蓝牙
                {
                        bBleOnOffFlg = 0;
                        BleOnorOff();
                }
                BleDisplay();

                if(bCADCFlg)
                {
                        bCADCFlg = 0;
                        CurProcess();                                        //Calculate the current value and determines the state of charge and discharge
                }

                if(bCalibrationFlg)
                {
                        bCalibrationFlg = 0;
                        CaliProcess();                                        //PC calibration
                }

                if((bWrFlashFlg)&&(ucUpDataLimitTime == 0))
                {
                        bWrFlashFlg = 0;
                        if(FlashProcess())
                        {
                                if(bUartNeedAckFlg)
                                {
                                        UART_SEND_ACK;
                                }
                        }
                        else
                        {
                                if(bUartNeedAckFlg)
                                {
                                        UART_SEND_NACK;
                                }
                        }
                        bUartNeedAckFlg = 0;
                }
                
                if(bLEDOpen)
                {
                        bLEDOpen = 0;
                        bLEDFlg = 1;
                        ucLEDTimeCnt = 0;
                        LEDPowerOn();                                        //By LED displays battery capacity
                }

                if(bEnEEPRomBK && bE2PProcessFlg)
                {
                        bE2PProcessFlg = 0;
                        E2PRomBKProcess();
                }

                if(bISPFlg && bUartSndAckFlg)
                {
                        bISPFlg = 0;
                        ISPProcess();
                }

                if(bTimerFlg)                                                //timer is 1s
                {
                        bTimerFlg = 0;

                        AFECheck();                            //Check AFE Register                

                        LEDPowerOff();                                        //When the LED display 4s, turn off the LED

                        BatteryInfoManage();                        //Get battery voltage and temperature information

                        RamCheckProcess();                    //Detect the xdata block data

                        GaugeManage();                                        //Calculate the battery charge and discharge capacity

                        VolProcess();                                        //Detection of battery charge and discharge cut-off voltage
                        
                        BalProcess();                                        //Process external voltage balance

                        ProtectProcess();                                //Process battery abnormal state
                        
            if(bEnEEPRomBK)
            {
                            E2PRomBKCheck();                        //Detecting whether to backup EEPRom
            }

                        ShutDownProcess();                                //Detecting whether to enter a low-power
                }
                
                IntoShutDown();
        }
}
相关推荐
ACP广源盛1392462567312 小时前
IX8024@ACP# 搭配此芯 AI 服务器 + 爱芯元智产品完整方案
大数据·运维·服务器·人工智能·分布式·嵌入式硬件
ShallWeL13 小时前
NVIDIA Jetson 早期系列演进
人工智能·嵌入式硬件·边缘计算·智能硬件
2501_9142459315 小时前
C语言与硬件交互:从GPIO到中断的嵌入式编程实践
c语言·单片机·交互
2401_8541515515 小时前
嵌入式 Bootloader 与 OTA 固件升级深度解析——从 Flash 分区到安全回滚
开发语言·stm32·单片机·嵌入式硬件·安全·php
炸膛坦客16 小时前
单片机/C/C++八股:(二十四)编译文件( .bin 和 .hex ,包括 .elf 和 .axf )
c语言·c++·单片机
Yunhoa16 小时前
51单片机(DS18B20 数字温度传感器)
单片机·嵌入式硬件·51单片机
zlinear数据采集卡18 小时前
2mV纹波的代价:硬核拆解ZLinear模拟前端放大器与正负可调电源设计
arm开发·单片机·嵌入式硬件·fpga开发·架构·开源
Wallystech-Linda18 小时前
Exploring WiFi 7 Module Designs for Next-Generation Wireless Applications
嵌入式硬件
不上岸的旱鸭子20 小时前
PCB设计
单片机·pcb工艺
吠品20 小时前
多语言支持,从后台到前端我都趟过哪些坑
stm32·单片机·嵌入式硬件