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();
        }
}
相关推荐
小李不想当小白1 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
LCG米1 小时前
STM32驱动W5500以太网模块实测:TCP吞吐瓶颈定位、TX指针回绕陷阱与断线重连保活落地
stm32·单片机·嵌入式硬件·tcp/ip
尼喃3 小时前
662K/65Z5三脚稳压芯片规格书—PW6566B33/B30引脚功能
嵌入式硬件
创界工坊工作室3 小时前
63-基于STC89C52霍尔传感器的智能化电能表设计
stm32·单片机·嵌入式硬件·51单片机·proteus
智购科技自动售货机厂家4 小时前
让AI经营自动售货机:从Project Vend看工具权限与业务规则~YH
大数据·服务器·单片机·嵌入式硬件·深度学习
Zwawa5 小时前
从 printf 到曲线:把数据送上 VOFA+
c语言·单片机·嵌入式
意法半导体STM326 小时前
【官方原创】LAT6048 如何扩大MP2的A35核和M33核共享内存
stm32·单片机·嵌入式硬件·内存映射·stm32mp2
en.en..6 小时前
STM32(F429)启动模式与两种烧录方式
stm32·单片机·嵌入式硬件
单片机仿真设计7 小时前
基于 51 单片机的数字温度计(DS18B20+LCD1602+Proteus 仿真,支持阈值可调声光报警)
单片机·嵌入式硬件·proteus·课设
芝士爱沙拉7 小时前
原生内置agent智能开发能力的MCU IDE-MounRiver Studio
ide·单片机·嵌入式硬件