ADBMS1818菊花链通信

这篇具有很好参考价值的文章主要介绍了ADBMS1818菊花链通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        ADBMS1818是一款多通道电池堆监控器,可测量多 达18串电池电压,总测量误差(TME)小于3.0 mV。ADBMS1818具有0V至5V的电池测量范围,适合大多数电池应用。可在290 μs内完成所有18个电池电压测量,并可以选择较低的数据采集速率以实现高降噪抑制。

        当电芯数高于18时,可将多个ADBMS1818器件串联,以便同时监测更长 串的高压电池组。每个ADBMS1818都有一个isoSPITM 接口,用于实高速抗干扰局域通信。多个器件以菊 花链形式连接,通过最顶端或底端的器件连接到主 处理器。该菊花链可双向操作,即使通信路径出错,也能确保通信完整性。

        ADBMS1818引脚图:

菊花链通讯,BMS电池管理,单片机,嵌入式硬件

 

        ADBMS1818串联菊花链通信电路可采用容性耦合isoSPI,电路图如下:

菊花链通讯,BMS电池管理,单片机,嵌入式硬件

         同时,ADBMS1818的9个GPIO可以有用来采集电芯温度,S引脚可用来控制被动均衡电路中的MOS管开关。通过软件去配置1818的寄存器进行初始化,再通过发相关指令去读取电芯电压,具体的bsp层驱动可在官网上下载,

下载地址:ADBMS1818 Datasheet and Product Info | Analog Devices.

        首先初始化1818的相关寄存器

        菊花链通讯,BMS电池管理,单片机,嵌入式硬件

         在官网上下载完成后,在这两个文件夹中的.C\.H都是1818相关的底层驱动,找到配置CFGAR\CFGBR的函数,进行初始化。

菊花链通讯,BMS电池管理,单片机,嵌入式硬件

#define TOTAL_IC 3 //1818串联个数
static cell_asic BMS_IC[TOTAL_IC];

void ADBMS1818_Task_Init(void)   
{	
    ADBMS1818_Reg_Param_Init();
	Status_Param_Init();
    ADBMS1818_init_cfg(TOTAL_IC, BMS_IC);
	ADBMS1818_init_cfgb(TOTAL_IC, BMS_IC);
    ADBMS1818_set_cfg_reg();
	ADBMS1818_reset_crc_count(TOTAL_IC, BMS_IC);
    ADBMS1818_init_reg_limits(TOTAL_IC, BMS_IC);
}

         TOTAL_IC就是ADBMS1818串联的个数,用到多少个,修改宏定义即可;BMS_IC是缓存cell数据的结构体,类型为cell_asic,在官网下载的文件中可找到。

       初始完寄存器后,通过数据手册的命令,触发1818ADC转换,以及读取电压值。

    菊花链通讯,BMS电池管理,单片机,嵌入式硬件

         

#define ADBMS1818_CHIP_MAX_CELL_CHANNELS  18
void ADBMS1818_Sample_Task(void)
{
#define TASKE_TIME120MS 80
#define TASKE_TIME10MS  20
    static T_Sample_Status tADBMS1818Sampling = BIO_TASK_IDLE;
	static u32 SampleTaskTicker = 0;
    static u8 TaskTime = TASKE_TIME10MS;
	E_Bool eState = False;
    u8 nIc = 0;

    eState = Ticker_Out(&SampleTaskTicker, (u32)TaskTime);	
	if(True == eState)
    {
        Ticker_Out(&SampleTaskTicker, 0);
		switch (tADBMS1818Sampling)
		{
            case BIO_TASK_IDLE: //初始化寄存器
				ADBMS1818_Wakeup_Sleep(TOTAL_IC);
                Confirm_Ref_On();
				Check_Reg_Data(0xFFu);
                tADBMS1818Sampling = BIO_BAT_MEAS_CMD;	
			break;	

            case BIO_BAT_MEAS_CMD: 	//发生ADC转换命令
				ADBMS1818_Wakeup_Sleep(TOTAL_IC);
				ADBMS1818_adcv(ADC_CONVERSION_MODE, ADC_DCP, CELL_CH_TO_CONVERT);
                tADBMS1818Sampling = BIO_BAT_WAIT;
			break;
        
            case BIO_BAT_WAIT: 	
				tADBMS1818Sampling = BIO_BAT_RD;
			break;
            
            case BIO_BAT_RD://读取电压
				ADBMS1818_Wakeup_Sleep(TOTAL_IC);
				ADBMS1818_rdcv(SEL_ALL_REG, TOTAL_IC, BMS_IC);
               tADBMS1818Sampling = BIO_TASK_IDLE;	
	            for (nIc = 0; nIc < TOTAL_IC; nIc++)
	            {
                    memcpy(&tAdbms1818InfoBuf[nIc].BattVolt[0],                               
        
     &BMS_IC[nIc].cells.c_codes[0],sizeof(u16)*ADBMS1818_CHIP_MAX_CELL_CHANNELS);
                }    
			break;	 
                
    }
}

        在发生指令前,必须发生唤醒信号ADBMS1818_Wakeup_Sleep(TOTAL_IC),如果不发,菊花链通信将会失败。

菊花链通讯,BMS电池管理,单片机,嵌入式硬件

 

        每个步骤延时时间根据你选择的采样频率,低于1Khz,每个步骤必须有80ms的延时,大于等于1KHZ,20ms即可,如果延时不够,ADC转换未完成,读取的电压值将会出错。BMS_IC.cells.c_codes就是电压采样值,一个电压值占2个字节。文章来源地址https://www.toymoban.com/news/detail-522027.html

到了这里,关于ADBMS1818菊花链通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • BMS电池管理系统纯硬件版,和软件版有什么区别?

    当今社会,电池已经成为人们生活和工作中不可或缺的重要组成部分。而电池的使用寿命、性能和安全性等问题一直是人们关注的焦点。为了保证电池的安全、高效和长寿命运行,BMS电池管理系统应运而生。 BMS电池管理系统通常由硬件和软件两部分组成,其中 硬件版BMS 和

    2023年04月23日
    浏览(44)
  • SH367309 BMS 锂电池保护板方案 该电池管理系统由SH367309和MCU实现,其主要功能包括:充电管理、放电管理、容量计、安全保护、数据备份、ISP、静 置功耗和低功耗模式等

    SH367309 BMS 锂电池保护板方案 该电池管理系统由SH367309和MCU实现,其主要功能包括:充电管理、放电管理、容量计、安全保护、数据备份、ISP、静 置功耗和低功耗模式等 烧写工具 Write Tools 配置 EEPROM (1)Write Tools 工具烧写 SH367309 的 EEPROM,支持“在线烧写”(配合上位机软件)

    2024年02月08日
    浏览(38)
  • 那么,储能电池的BMS与动力电池的BMS有什么区别呢?

    随着新能源汽车的快速发展, 储能电池BMS系统 和 动力电池BMS系统 成为了热门话题。虽然它们都是电池管理系统,但是它们之间还是有着很大的区别。本篇博客将详细介绍储能电池BMS系统和动力电池BMS系统的区别。 BMS系统(Battery Management System,电池管理系统)是一种负责监

    2024年02月15日
    浏览(40)
  • BMS——电池均衡算法

    1.1 基本概念 ​  在电池簇电芯间容量存在一致性差异时,会导致电池系统整体可用电量下降及SOC估算不准以致出现充放电末端出现跳变。电池均衡的意义就是利用电力电子技术,使锂离子电池单体电压或电池组电压偏差保持在预期的范围内,从而保证每个单体电池在正常

    2024年02月11日
    浏览(42)
  • 三电技术(电池(BMS)、电驱(MCU)、电控(VCU))

    三电技术不仅是新能源汽车的核心技术,也是基础性技术。 三电是指电池,电驱(电机),电控,简称 BMC。 为了区分新能源汽车上的低压电池将其称为 动力电池 ,“动力电池“也是行业术语。 动力电池系统通常由电芯,电池组,电池管理系统,冷却系统,高低压线束,保护

    2023年04月18日
    浏览(39)
  • 【毕业设计】13-基于单片机的锂电池管理系统(原理图+源码+仿真工程+答辩论文+答辩PPT)

    包含此题目毕业设计全套资料: 原理图工程文件 源码工程 仿真工程 论文低重复率,字数:27821。 详情请私信! 研究基本内容: 1.了解在以单片机为基础上的动力锂电池管理系统的研究目的、意义及研究现状; 2.利用单片机实动力电池电压、电流、温度检测的功能,并完成电

    2024年02月19日
    浏览(45)
  • 41、基于51单片机手机无线充电器系统锂电池存电系统设计

    方案选择 单片机的选择 方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。其片内的8K程序存储器是FLASH工艺的,这种单

    2024年02月09日
    浏览(47)
  • 中颖单片机SH367309全套量产PCM,专用动力电池保护板开发资料

    方案总体介绍         整套方案硬件部分共2块板子,包括MCU主板,采用SH79F6441-32作为主处理器。MCU主板包括2个版本。PCM动力电池保护板采用SH367309。     软件方案采用Keil51建立的工程,带蓝牙的版本,支持5~16S电池。 硬件方案--MCU主板  MCU主板采用的是采用SH79F6441-32主

    2024年02月08日
    浏览(32)
  • Windows 笔记本电脑电池寿命管理:如何查看电池循环计数?

    您可能知道,充电电池是消耗品。 虽然您的笔记本电脑中的电池有望使用数年,但随着您使用它,其性能会随着时间的推移而降低。 这意味着即使在 100% 充电的情况下,电池在两年后的使用寿命也不会像新电池一样长。 要量化您对设备电池的磨损程度,您可以检查其电池循

    2024年02月07日
    浏览(99)
  • 基于51单片机的通讯聊天系统

    通过编写51单片机通讯聊天程序,掌握51单片机的各个模块的知识点和运用C语言编写51单片机的能力。 用51单片机与口袋开发板设计实现一个单片机与电脑串口助手实现通讯功能的程序。程序的主要功能如下: 1 OLED初始化显示Welcome to Bluetooth communication! 字符串。 2 程序开始时

    2023年04月08日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包