当前位置: 首页 > news >正文

中颖AFE芯片:SH367303、SH367306 和 SH367309

中颖电子(Sinowealth)的 SH367303、SH367306 和 SH367309 都是锂电池管理(BMS)中常用的模拟前端(AFE)芯片,它们各自针对不同电池串数的应用场景设计。下面是它们的详细介绍。

一、SH367303芯片介绍

SH367303是一款专为3至5串锂电池包管理设计的模拟前端芯片,它集成了电池管理所需的多种保护、采样和通信功能。

特性类别具体参数/功能
基本信息适用电池:3-5串锂电池
封装:QFN28L
核心保护功能硬件过充电保护
硬件放电短路保护
集成平衡开关
检测与唤醒充电器检测
负载检测
小电流唤醒
采集与ADC电芯电压:12-bit VADC
电流:13-bit CADC
温度:2通道
通信接口TWI(兼容I²C),CRC-8校验
系统管理与功耗集成WatchDog与Reset功能
3.3V LDO输出
正常模式:≤ 70μA
PowerDown模式:≤ 1μA

 集成化硬件保护与平衡:芯片内置了独立的硬件过充和放电短路保护电路,响应速度快,可靠性高。同时,集成的平衡开关有助于实现电芯间的主动均衡,提升电池包整体一致性。

全面检测与低功耗唤醒:SH367303具备充电器和负载检测功能,能自动识别系统状态。其小电流唤醒机制确保了在低功耗模式下也能被特定事件及时激活,兼顾了系统功耗与响应性。

高精度采集与系统支持:通过12位VADC和13位CADC,芯片能精确测量电芯电压和电流。内置的3.3V LDO(最大输出电流25mA)可为外部MCU等器件供电,简化了电源设计。

增强系统可靠性:集成的看门狗和复位电路能有效防止MCU死机,提升整个BMS系统的稳定性。Alarm功能的加入也能分担MCU在处理异常状态时的程序负荷。

强大的驱动与控制:芯片直接驱动N-MOSFET,并提供一个专用的CTLD管脚用于PWM控制放电MOSFET的驱动,实现了精细的充放电管理。 

二、SH367306芯片介绍

SH367306是一款专为6至10串锂电池包管理的模拟前端芯片,来自中颖电子 (Sinowealth)。它高度集成,能精确监控和守护电池组,广泛用于电动工具、扫地机器人、无人机等产品。

特性类别详细参数
基本信息适用电池:6-10串锂电池
封装:QFN28L
核心保护硬件过充电保护
硬件放电短路保护
集成平衡开关
检测与唤醒充电器检测、负载检测
小电流唤醒功能
采集与ADC电芯电压:12-bit VADC
电流:13-bit CADC
温度:2通道
通信接口TWI(兼容I²C)接口
支持CRC-8校验
系统管理与功耗集成WatchDogReset功能,防MCU死机
3.3V LDO输出(最大25mA)
正常模式功耗 ≤ 70μA
PowerDown模式功耗 ≤ 1μA
工作电压8V - 50V

 硬件保护与平衡:SH367306内置了独立的硬件过充和放电短路保护电路,响应速度更快,可靠性高,能及时切断故障。芯片集成了平衡开关,有助于实现电芯间的主动均衡,提升电池包整体一致性。

全面检测与低功耗设计:芯片具备充电器和负载检测功能,能自动识别系统状态。其小电流唤醒机制确保了在低功耗模式下也能被特定事件激活,兼顾了系统功耗与响应性。

高精度采集与系统支持:通过12位VADC和13位CADC,芯片能精确测量电芯电压和电流。内置的3.3V LDO(最大输出电流25mA)可为外部MCU等器件供电,简化了电源设计。

增强系统可靠性:集成的看门狗和复位电路能有效防止MCU死机,提升整个BMS系统的稳定性。Alarm功能的加入也能分担MCU在处理异常状态时的程序负荷。

驱动与控制:芯片直接驱动N-MOSFET,并提供一个专用的CTLD管脚用于PWM控制放电MOSFET的驱动,实现了精细的充放电管理。它支持电芯乱序上电,为生产流程带来便利。 

三、SH367309芯片介绍

SH367309是一款专为5-16串锂电池包管理的电池数字前端采集芯片,来自中颖电子。它能全方位守护电池安全,并支持灵活的配置与应用。

特性类别详细参数
基本信息适用电池:5-16串锂电池包
总电压:不超过70V
封装:TQFP48L
核心保护功能过充/过放保护、温度保护
充放电过流/短路保护
二次过充电保护
断线保护
采集与ADC电压/温度/电流:13-bit VADC (10Hz, 16路电压+3路温度)
电流:16-bit Ʃ-∆CADC (4Hz)
内置EEPROM (≤100次擦写)
工作模式保护模式 (独立工作)
采集模式 (配合MCU)
仓运模式、烧写模式
通信与控制TWI接口 (兼容I²C), 支持CRC8校验
集成看门狗模块
CTL管脚优先关断MOSFET
系统与功耗内置3.3V LDO (25mA Max)
支持乱序上下电
低功耗状态:IDLE, SLEEP, Powerdown

 双重工作模式:SH367309提供了保护模式和采集模式。

  • 在保护模式下,芯片可以独立工作,无需外部MCU,即能实现对电池包的各种硬件保护,适合对成本和空间有严格要求的应用。
  • 在采集模式下,芯片与外部MCU配合,除了完成所有的数据采集任务,保护功能也同时保持使能。这使得系统能够进行更复杂的电池状态计算(如SOC估算)和智能管理。

全面的硬件保护:芯片内置了丰富的硬件保护功能,能够应对各种异常情况,包括过充电、过放电、充放电过流、短路、二次过充电以及断线检测等。这些保护由硬件直接实现,响应速度快,可靠性高。

高精度采集与均衡:通过13位的VADC和16位的CADC,芯片能够高精度地测量每节电芯的电压、电流以及温度。内置的平衡开关有助于实现电芯间的主动均衡,改善电池包的一致性,延长使用寿命。

集成化与可靠性设计:芯片内部集成了EEPROM,可用于保存用户自定义的保护阈值、延时等参数,提供了灵活性(但需注意,其擦写次数有限,约为100次)。内置的看门狗和3.3V LDO(最大输出电流25mA)进一步增强了系统稳定性和集成度。其CTL管脚能在发生保护时优先关闭充放电MOSFET,确保快速响应。 

四、中颖AFE芯片选型考量

基于上面的表格,我们来进一步了解每款芯片的侧重点和适用场景。

SH367303:适用于3-5串电池包。这款芯片集成了完备的硬件保护功能(如过充和放电短路保护)和平衡开关,提供了基础的12-bit电压和13-bit电流采集精度。其特点是集成了WatchDog(看门狗)和Reset(复位)功能,能有效防止MCU死机,降低了系统设计的复杂性并提升了可靠性。它非常适合那些需要高集成度和可靠性的中小规模电池包应用。

SH367306:适用于6-10串电池包。SH367306定位于6-10串的电池应用。它同样具备硬件保护功能和内置平衡开关。此外,它还支持小电流检测功能,这对于需要精确监控待机功耗或微小电流的应用场景很有帮助。这款芯片是中规模电池包应用的一个选择。

SH367309:适用于5-16串高性能电池包。这是中颖电子面向更高串数、更高性能需求推出的一款数字前端芯片。它不仅提供了全面的硬件保护,还集成了高精度的13-bit VADC和16-bit CADC,用于高精度采集电压、温度和电流。其显著特点是内置EEPROM,可用于保存保护阈值及延时等可调参数,提供了极大的灵活性。同时,它支持多种工作模式(如采集模式、保护模式等),允许芯片既可与MCU配合工作,也可独立运行保护功能,非常适合需要复杂管理和高可靠性的高性能电池系统。

总的来说,这三款芯片的选择主要取决于你的电池组规模和对功能的具体需求:

对于3-5串的电池包,追求高集成度和防死机可靠性,SH367303是一个精简而强大的选择。

对于6-10串的电池包,SH367306提供了适中的规模和基础功能。

对于5-16串且需要高性能、高精度采集和灵活配置的复杂电池系统,SH367309则更为合适。

五、中颖AFE芯片驱动代码示例

1、寄存器地址

//系统标志状态控制寄存器
#define AFE_FLAG1				0x00
#define AFE_FLAG2	    	0x01
#define AFE_BSTATUS	    0x02
#define AFE_INT_EN		  0x03
#define AFE_SCONF1 			0x04
#define AFE_SCONF2			0x05
#define AFE_SCONF3    	0x06  //电芯电压,芯片内部温度,外部温度
#define AFE_SCONF4			0x07  //平衡寄存器--不会置位
#define AFE_SCONF5			0x08
#define AFE_SCONF6			0x09
#define AFE_SCONF7			0x0A
#define AFE_SCONF8			0x0B
#define AFE_SCONF9			0x0C
#define AFE_SCONF10			0x0D  //第14个//电芯寄存器地址
#define AFE_CELL1H			0x0E
#define AFE_CELL1L			0x0F
#define AFE_CELL2H			0x10
#define AFE_CELL2L			0x11
#define AFE_CELL3H			0x12									    
#define AFE_CELL3L			0x13
#define AFE_CELL4H			0x14
#define AFE_CELL4L			0x15
#define AFE_CELL5H			0x16
#define AFE_CELL5L			0x17
#define AFE_CELL6H			0x18
#define AFE_CELL6L			0x19
#define AFE_CELL7H			0x1A
#define AFE_CELL7L			0x1B
#define AFE_CELL8H			0x1C
#define AFE_CELL8L			0x1D
#define AFE_CELL9H			0x1E
#define AFE_CELL9L			0x1F
#define AFE_CELL10H			0x20
#define AFE_CELL10L			0x21//外部温度寄存器地址
#define AFE_TS1H					0x22
#define AFE_TS1L					0x23
#define AFE_TS2H					0x24
#define AFE_TS2L					0x25
//内部芯片温度寄存器地址
#define AFE_TEMP1H				0x26
#define AFE_TEMP1L				0x27
#define AFE_TEMP2H				0x28
#define AFE_TEMP2L				0x29//电流寄存器
#define AFE_CURH					0x2A
#define AFE_CURL  				0x2B#define AFE_ALARM_SC			0x40
#define AFE_ALARM_OV			0x20
#define AFE_ALARM_CD			0x10
#define AFE_ALARM_CADC		0x08
#define AFE_ALARM_VADC		0x04
#define AFE_ALARM_WDT			0x02
#define AFE_ALARM_TWI			0x01

2、初始化代码

xdata u8 WriteBuf[50];
xdata u8 ReadBuf[50];u8 TestBufLen;u16  Reg_Addr = AFE_SCONF3;typedef struct	_AFEREG_                            //data for AFE set in init
{u8  AFEFLAG1;u8  AFEFLAG2;u8  AFEBSTATUS;u8  AFEINTEN;u8  AFESCONF1;u8  AFESCONF2;u8  AFESCONF3;u8  AFESCONF4;u8  AFESCONF5;u8  AFESCONF6;u8  AFESCONF7;u8  AFESCONF8;u8  AFESCONF9;u8  AFESCONF10;
}AFEREG;AFEREG    REG;        u8 Vcell_01[2] = {0,0};
u8 Vcell_02[2] = {0,0};
u8 Vcell_03[2] = {0,0};
u8 Vcell_04[2] = {0,0};
u8 Vcell_05[2] = {0,0};
u8 Vcell_06[2] = {0,0};
u8 Vcell_07[2] = {0,0};
u8 Vcell_08[2] = {0,0};
u8 Vcell_09[2] = {0,0};
u8 Vcell_10[2] = {0,0};u32 bVal[10] = {0};u8   Wrdata = 0; u8  Crc_buf[3]={0x36,0,0};  
u8  Crc_Value = 0;  //CRC运算得到的值u8 code CRC8Table[256]=
{							//120424-1			CRC Table0x00,0x07,0x0E,0x09,0x1C,0x1B,0x12,0x15,0x38,0x3F,0x36,0x31,0x24,0x23,0x2A,0x2D,0x70,0x77,0x7E,0x79,0x6C,0x6B,0x62,0x65,0x48,0x4F,0x46,0x41,0x54,0x53,0x5A,0x5D,0xE0,0xE7,0xEE,0xE9,0xFC,0xFB,0xF2,0xF5,0xD8,0xDF,0xD6,0xD1,0xC4,0xC3,0xCA,0xCD,0x90,0x97,0x9E,0x99,0x8C,0x8B,0x82,0x85,0xA8,0xAF,0xA6,0xA1,0xB4,0xB3,0xBA,0xBD,0xC7,0xC0,0xC9,0xCE,0xDB,0xDC,0xD5,0xD2,0xFF,0xF8,0xF1,0xF6,0xE3,0xE4,0xED,0xEA,0xB7,0xB0,0xB9,0xBE,0xAB,0xAC,0xA5,0xA2,0x8F,0x88,0x81,0x86,0x93,0x94,0x9D,0x9A,0x27,0x20,0x29,0x2E,0x3B,0x3C,0x35,0x32,0x1F,0x18,0x11,0x16,0x03,0x04,0x0D,0x0A,0x57,0x50,0x59,0x5E,0x4B,0x4C,0x45,0x42,0x6F,0x68,0x61,0x66,0x73,0x74,0x7D,0x7A,0x89,0x8E,0x87,0x80,0x95,0x92,0x9B,0x9C,0xB1,0xB6,0xBF,0xB8,0xAD,0xAA,0xA3,0xA4,0xF9,0xFE,0xF7,0xF0,0xE5,0xE2,0xEB,0xEC,0xC1,0xC6,0xCF,0xC8,0xDD,0xDA,0xD3,0xD4,0x69,0x6E,0x67,0x60,0x75,0x72,0x7B,0x7C,0x51,0x56,0x5F,0x58,0x4D,0x4A,0x43,0x44,0x19,0x1E,0x17,0x10,0x05,0x02,0x0B,0x0C,0x21,0x26,0x2F,0x28,0x3D,0x3A,0x33,0x34,0x4E,0x49,0x40,0x47,0x52,0x55,0x5C,0x5B,0x76,0x71,0x78,0x7F,0x6A,0x6D,0x64,0x63,0x3E,0x39,0x30,0x37,0x22,0x25,0x2C,0x2B,0x06,0x01,0x08,0x0F,0x1A,0x1D,0x14,0x13,0xAE,0xA9,0xA0,0xA7,0xB2,0xB5,0xBC,0xBB,0x96,0x91,0x98,0x9F,0x8A,0x8D,0x84,0x83,0xDE,0xD9,0xD0,0xD7,0xC2,0xC5,0xCC,0xCB,0xE6,0xE1,0xE8,0xEF,0xFA,0xFD,0xF4,0xF3
};u8 CRC8cal(u8 *p, u8 counter)                   //look-up table calculte CRC 
{    u8 crc8 = 0; for( ; counter > 0; counter--){crc8 = CRC8Table[crc8^*p];    p++;    }    return(crc8);    
} 
void InitAFE_Reg(void)
{u8 i = 0;u8 temp_time = 1000; //延时时间u8 Flag = 1; // 读/写函数的返回值,0=成功,其它=失败for(i=0;i<14;i++){Flag = TWI0_WriteBuf(AFE_ID, i, 0x00); DelayXms(temp_time); //延时if(!Flag) //如果返回0(不为真值),表示通信成功{SendStr("\n...Write Okey; Reg_addr[ 0x");SendHex(i);SendStr(" ] = 0 ");}else{SendStr("\n...Write Err; Flag = ");SendHex(Flag);}}REG.AFEINTEN  = 0x00; REG.AFESCONF1 = 0x50;  REG.AFESCONF2 = 0x00;	REG.AFESCONF3 = 0xF8;  REG.AFESCONF4 = 0x00;	 REG.AFESCONF5 = 0x00;	 REG.AFESCONF6 = 0x70;	 REG.AFESCONF7 = 0x01;  REG.AFESCONF8 = 0x03;	REG.AFESCONF9 = 0xff;	 REG.AFESCONF10= 0x00;	TWI0_WriteBuf(AFE_ID, AFE_INT_EN , REG.AFEINTEN  );	DelayXms(temp_time); //延时TWI0_WriteBuf(AFE_ID, AFE_SCONF1 , REG.AFESCONF1 );DelayXms(temp_time); //延时TWI0_WriteBuf(AFE_ID, AFE_SCONF2 , REG.AFESCONF2 );DelayXms(temp_time); //延时TWI0_WriteBuf(AFE_ID, AFE_SCONF3 , REG.AFESCONF3 );     DelayXms(temp_time); //延时TWI0_WriteBuf(AFE_ID, AFE_SCONF4 , REG.AFESCONF4 );DelayXms(temp_time); //延时TWI0_WriteBuf(AFE_ID, AFE_SCONF5 , REG.AFESCONF5 );DelayXms(temp_time); //延时TWI0_WriteBuf(AFE_ID, AFE_SCONF6 , REG.AFESCONF6 );DelayXms(temp_time); //延时TWI0_WriteBuf(AFE_ID, AFE_SCONF7 , REG.AFESCONF7 );DelayXms(temp_time); //延时TWI0_WriteBuf(AFE_ID, AFE_SCONF8 , REG.AFESCONF8 );DelayXms(temp_time); //延时TWI0_WriteBuf(AFE_ID, AFE_SCONF9 , REG.AFESCONF9 );DelayXms(temp_time); //延时TWI0_WriteBuf(AFE_ID, AFE_SCONF10, REG.AFESCONF10);DelayXms(temp_time); //延时for(i=0;i<14;i++){Flag=TWI0_ReadBuf(AFE_ID, i, &ReadBuf,2);DelayXms(temp_time); //延时if(Flag==0) //如果返回0,表示通信成功{SendStr("\n...Read Okey; Reg_addr[ 0x");SendHex(i);SendStr(" ] = 0 ");SendHex(ReadBuf[0]);}else{SendStr("\n...Read Err; Flag = ");SendHex(Flag);}}
}

http://www.dtcms.com/a/580976.html

相关文章:

  • 数据结构—排序算法篇三
  • 从“医疗大模型”向“医疗智能体”架构与路径分析(白皮书草案-上)
  • LeetCode算法日记 - Day 95: 回文子串
  • DockerCompose与多容器编排
  • AngularJS与SQL的集成使用指南
  • 【ZeroRange WebRTC】TWCC 在 WebRTC 中的角色与工作原理(深入指南)
  • 数据结构常见的八大排序算法
  • 个人怎么做网站app推广引流方法
  • 初识光伏逆变器
  • 一文了解LLM应用架构:从Prompt到Multi-Agent
  • MongoDB 内存管理避坑指南:解决高占用、页错误等核心问题,让数据库性能翻倍
  • 关于DNS中毒攻击的解决方案分享
  • 【C++】数据挖掘算法在软件测试中的应用
  • WebSocket 完全指南:从原理到实战,搭建实时通信桥梁
  • STM32项目分享:智能水产养殖系统
  • 网站开发线框个体营业执照网上年报
  • iPhone苹果手机拍的照片默认是heic如何换成jpg格式
  • 基于微信小程序的旅游攻略分享互动平台设计与实现-项目分享
  • Neo4j Windows桌面版安装及更改默认数据存储位置
  • 智能安防新篇章:EasyGBS助力重塑物业视频管理服务
  • ps2017做网站当阳网站建设电话
  • H5短视频SDK,赋能Web端视频创作革命
  • 如何选择温州本凡科技进行小程序开发服务?
  • 融智兴科技邀您共赴2025中国洗涤展
  • STM32上使用HAL库完美实现驱动MAX98357声卡模块(I2S+DMA+音频环形缓冲区)
  • 【React】打卡笔记,入门学习03:useState、useEffect、useRef、useMemo
  • M|烟花 (1995)
  • 平顶山网站建设2022年黄台片区
  • 人工智能的未来之路:华为全栈技术链与AI Agent应用实践
  • 基于openresty反向代理、dns劫持、实现对http请求、响应内容抓包