




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OZ8920程序及作用经验OZ8920为O2micro公司的一款电池管理芯片,可支持5-8节电芯。AD采集为12W位,电流为16位,具有多种保护。可应用于电动工具、电动车、UPS等等。程序在末尾。通信注意:1、可以使用标准的IIC通信协议,就当作普通IIC外设进行操作即可,注:一组数据为两个BYTE,例如:第一节电芯电压,要取0x30/0x31两个数据。2、可配置为带PEC(CRC8校验)的IIC通信协议,如下图: 若为PEC通信方式,则第二个数据为CRC校验位。 CRC为CRC先前数据的CRC8值,多项式为: x8+x2+x+1,CRC函数在文章末尾 图1下图是PEC的设置位,具体说明看图: 图2操作BIT6 = 0 IIC为标准的IIC通信协议 = 1 IIC为带PEC的IIC通信协议IIC地址变更: 如图2, 操作BIT5:2(I2CADDR3-I2CADDR0)可变更现有IIC地址,规则为:0X60+N(0-15).电芯节数设置: 如图2,操作BIT1:0,即可对电芯进行操作,可选节数娄5-8节。 EEPROM操作: OZ8920 将可操作的EEPROM映射到了我们可以操作的普通地址中了,我们对变通地址进行操作即可对EEPCOM进行读写操作。程序:/*函数名称: SMbus_ReadOneWord函数功能: 输入参数: 输出参数: 备注: */uint16 SMbus_ReadOneWord(uint8 address,uint8 command )uint16 temp; IIC_Start(); IIC_Send_Byte(address); /发送写命令IIC_Send_Byte(command); /发送写命令IIC_ReStart();IIC_Send_Byte(address|0x01); /发送写命令 LS_BYTE(temp)=IIC_Read_Byte(1); HS_BYTE(temp)=IIC_Read_Byte(0); IIC_Stop();return temp;/*函数名称: SMbus_WriteOneByte函数功能: 输入参数: 输出参数: 备注: */void SMbus_WriteOneByte(uint8 address,uint8 command ,uint8 data) IIC_Start(); IIC_Send_Byte(address); /发送写命令IIC_Send_Byte(command); /发送写命令IIC_Send_Byte(LS_BYTE(data); IIC_Stop(); /*函数名称: SMbus_ReadOneByteWithPec函数功能: 输入参数: void输出参数: void 备注: */uint8 SMbus_ReadOneByteWithPec(uint8 address,uint8 command )uint8 temp; uint8 crc,checkcrc; IIC_Start(); IIC_Send_Byte(address); /发送写命令IIC_Send_Byte(command); /发送写命令IIC_ReStart();IIC_Send_Byte(address|0x01); /发送写命令 temp=IIC_Read_Byte(1); crc = IIC_Read_Byte(0); IIC_Stop(); checkcrc = SMbus_GetCrc8(0,address); checkcrc = SMbus_GetCrc8(checkcrc,command); checkcrc = SMbus_GetCrc8(checkcrc,address|0x01); checkcrc = SMbus_GetCrc8(checkcrc,temp); if(crc = checkcrc) SMbus_PecError =0; else SMbus_PecError = 1;/出错了 return temp;/*函数名称: SMbus_ReadOZ8920OneByteWithPec函数功能: 从OZ8920中读取一个WORD数据 输入参数: 输出参数: 备注: */uint16 SMbus_ReadOZ8920OneByteWithPec(uint8 address,uint8 command )/* 这里有做校验uint16 temp;uint8 err;err =0;/清0 SMbus_PecError =0;LS_BYTE(temp) = SMbus_ReadOneByteWithPec(address,command);err = err|SMbus_PecError;HS_BYTE(temp) = SMbus_ReadOneByteWithPec(address,(command+1);err = err|SMbus_PecError;if(err != 0)temp = 0; /若CRC不对,则值全为0*/不校验uint16 temp,temp2;temp2 = SMbus_ReadOneWord(address,command);LS_BYTE(temp) = LS_BYTE(temp2);temp2 = SMbus_ReadOneWord(address,(command+1);HS_BYTE(temp) = LS_BYTE(temp2);return temp;/以下函数在本机器内没有意义故删除/*函数名称: SMbus_ReadOneWordWithPec函数功能: 输入参数: void输出参数: void 备注: */uint16 SMbus_ReadOneWordWithPec(uint8 address,uint8 command )uint16 temp; uint8 crc ; IIC_Start(); IIC_Send_Byte(address); /发送写命令IIC_Send_Byte(command); /发送写命令IIC_ReStart();IIC_Send_Byte(address|0x01); /发送写命令 LS_BYTE(temp)=IIC_Read_Byte(1); HS_BYTE(temp)=IIC_Read_Byte(1); crc=IIC_Read_Byte(0);/获得校验合 /没有检验 IIC_Stop();return temp;/*函数名称: SMbus_WriteOneByteWithPec函数功能: 输入参数: 输出参数: 备注: */void SMbus_WriteOneByteWithPec(uint8 address,uint8 command ,uint8 data) uint8 temp; IIC_Start(); IIC_Send_Byte(address); /发送写命令IIC_Send_Byte(command); /发送写命令IIC_Send_Byte(data);temp = SMbus_GetPec(address,command,data); /计算校验合IIC_Send_Byte(temp); IIC_Stop();/*函数名称: SMbus_WriteOneWordWithPec函数功能: 输入参数: 输出参数:备注: */void SMbus_WriteOneWordWithPec(uint8 address,uint8 command ,uint16 data) uint8 crc; IIC_Start(); IIC_Send_Byte(address); /发送写命令IIC_Send_Byte(command); /发送写命令 IIC_Send_Byte(LS_BYTE(data); IIC_Send_Byte(HS_BYTE(data); crc =0;crc = SMbus_GetCrc8(crc,address);crc = SMbus_GetCrc8(crc,command);crc = SMbus_GetCrc8(crc,LS_BYTE(data);crc = SMbus_GetCrc8(crc,HS_BYTE(data); IIC_Send_Byte( crc ); IIC_Stop(); /*函数名称: SMbus_GetCrc8函数功能: 计算CRC的值 输入参数: 输出参数: 备注: */uint8 SMbus_GetCrc8(uint8 previous, uint8 data) static uint8 a_SM_PecTable16=0x00,0x07,0x0E,0x09,0x1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年网络编辑师考试网络编辑人工智能与智能数据清洗技术试卷
- 文件存档及资料管理系统设计规范
- 外包加工制造协议规定内容说明
- 2025年汽车维修工(汽车维修行业人才培养)职业技能鉴定全真试题卷
- 2025年无损检测员(初级)职业技能鉴定真题模拟解析技巧
- 期中试卷数学试卷
- 《树和喜鹊》课件 统编版语文一年级下册
- 宁夏的中考数学试卷
- 去年江西省会考数学试卷
- 七宝实验小学数学试卷
- 医疗集团薪酬管理办法
- 顶管培训课件
- 北京医院神经外科护理团队介绍
- 纸品供应及质量保证措施
- 2025年北京市中考物理试卷真题(含答案)
- 2025年安徽高考地理试卷真题(含答案)
- 现代畜牧专业教学标准(高等职业教育本科)2025修订
- 膝关节损伤康复护理讲课件
- 社区儿童主任培训课件
- 私企公司车辆管理制度
- 船务公司船舶管理制度
评论
0/150
提交评论