資源簡介
電池管理系統BMS項目,包括電路圖設計,PCB板設計和源代碼,電路經過驗證無需修改,PCB板直接可以打板回貼片生產,源代碼無Bug,已經量產出貨

代碼片段和文件信息
#include?“LTC6803.h“
//LTC6803初始化
void?LTC6803_Init?(void)?
{
???byte?i=0;
???byte?ret=0;
???uint8_t?pec=0;
???uint8_t?CFGR[6]={0x890x000x000x000x000xff};
???uint8_t?CFGR_Buff[14]={0};
???
???SPI_CS12V_PutVal(0);?//片選置低
???ret=AD12V_SPI_SendChar(WRCFG);//發送寫命令
???delay100(10);
???ret=AD12V_SPI_SendChar(0xC7);//發送校驗碼
???delay100(10);
???pec=CRC8(CFGR6);???????????//計算校驗??
???for(i=0;i<6;i++)?//寫入配置
???{
???????ret=AD12V_SPI_SendChar(CFGR[i]);?
???????delay100(10);
???}????
???ret=AD12V_SPI_SendChar(pec);?//發送校驗碼
???delay100(10);????????
???SPI_CS12V_PutVal(1);?//片選置高
???delay100(1200);?
???SPI_CS12V_PutVal(0);?//片選置低
???ret=AD12V_SPI_SendChar(0x02);??????//發送讀命令
???delay100(10);
???ret=AD12V_SPI_SendChar(0xce);??????//發送校驗
???delay100(10);
???for(i=0;i<14;i++)
???{????????????//讀取寄存器
????ret=AD12V_SPI_SendChar(0x00);????//提供時鐘信號
????delay100(10);
????ret=AD12V_SPI_RecvChar(&CFGR_Buff[i]);?//讀取寄存器值放入緩存區
????delay100(10);
???}
???SPI_CS12V_PutVal(1);?//片選置高?
???delay100(10);?
}
//計算PEC校驗
uint8_t?CRC8(uint8_t?*buf?int8_t?len)???
{???
??uint16_t???ij=0;???
??uint8_t??crc?=?0x41;???
??
??while(len--!=0)??
{???
????for(i=?0x80;i!=0;i/=2)??
{???
??????if?((crc?&?0x80)!=0)??
{???
????????crc?*=?2;???
????????crc?^=?0x07;???
??????}??
else??crc?*=?2;??????
??????if?((*(buf+j)?&?i)!=0)???
????????crc^=0x07;???
????}????
????j++;
??}???
??return???crc;???
}
//讀取電壓值
uint8_t?ReadCellVoltage(uint16_t?cellVol[])?
{
?? uint8_t?i=0;
?? uint8_t?ret=0;
?? uint8_t?pec_code=0;
??uint8_t?CVR[7]={0};
??uint16_t?SPI_Data[8];
??SPI_CS12V_PutVal(0);?????????????????//片選置低
??ret=AD12V_SPI_SendChar(CLRV);???? ?? //清空命令
??delay100(10);
ret=AD12V_SPI_SendChar(0x93);??????????//清空命令PEC校驗碼
??delay100(1200);???????????????????????//延時20ms
??SPI_CS12V_PutVal(1);?????????????????//片選置高
? delay100(10);?
? SPI_CS12V_PutVal(0);?????????????????//片選置低
??ret=AD12V_SPI_SendChar(STCVAD);????????//啟動全部電壓轉換
??ret=AD12V_SPI_SendChar(RDCVA);
??delay100(10);?
??ret=AD12V_SPI_SendChar(0xB0);??????????//啟動電壓轉換命令PEC校驗碼
? delay100(3600);???????????????????????//延時20ms
? SPI_CS12V_PutVal(1);?????????????????//片選置高
? delay100(10);??
??SPI_CS12V_PutVal(0);?????????????????//片選置低
ret=AD12V_SPI_SendChar(RDCVA);
delay100(10);?
ret=AD12V_SPI_SendChar(0xD2);??????????//啟動電壓轉換命令PEC校驗碼
delay100(10);?
for(i=0;i<7;i++) ???? //將讀出的數值賦給電池電壓寄存器組10節電池+校驗碼
{
ret=AD12V_SPI_SendChar(0x00);
delay100(10);
?? ret=AD12V_SPI_RecvChar(&CVR[i]);
delay100(10);
}
????SPI_CS12V_PutVal(1);?//片選置高
????//參數校驗
????pec_code=CRC8(CVR6);
????if(pec_code!=CVR[6])
????{
???????return?0;
????}?
????else?
????{
???????//將電池電壓寄存器組轉化成實際的電池電壓值3個寄存器對應兩個電池電壓值
???????AD_Data_process(SPI_DataCVR); ??
???????for(i=0;i ???????{
???????????cellVol[i]=(SPI_Data[i]-512)*3/2;?
???????}
???????return?1;
????}
}
//電壓計算
void?AD_Data_process
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????2461696??2014-12-23?23:10??BMS項目\BMU\21182w-BMUPCB20150126\BMUPCB.PcbDoc
?????文件???????6951??2015-09-01?14:49??BMS項目\BMU\21182w-BMUPCB20150126\BMUPCB.PCBDOC.htm
?????文件???????3189??2015-09-01?19:47??BMS項目\BMU\21182w-BMUPCB20150126\BMUPCB.pcbdoc_viewstate
?????文件?????675760??2015-01-26?11:43??BMS項目\BMU\21182w-BMUPCB20150126.rar
?????文件????2340864??2015-08-20?14:00??BMS項目\BMU\BMU?PCB板.PCBDOC
?????文件???????7620??2015-08-04?10:51??BMS項目\BMU\BMUPCB.Dat
?????文件???????4560??2019-08-21?18:35??BMS項目\BMU\BMUPCB.PcbDoc.htm
?????文件???????3188??2015-09-01?14:48??BMS項目\BMU\BMUPCB.pcbdoc_viewstate
?????文件????2041360??2015-01-30?11:15??BMS項目\BMU\BMU原理圖.pdf
?????文件?????750154??2015-08-20?14:00??BMS項目\BMU\History\BMUPCB.~(1).PCBDOC.Zip
?????文件????1818112??2015-01-25?18:32??BMS項目\LECU\21182w-LECU20150126\LECU-CPU.PcbDoc
?????文件????1428038??2015-01-29?12:31??BMS項目\LECU\BMS_LECU_N.pdf
?????文件???????6092??2015-08-04?10:49??BMS項目\LECU\LECU-CPU.Dat
?????文件????1818112??2015-01-25?18:32??BMS項目\LECU\LECU-CPU.PcbDoc
?????文件???????3842??2019-05-10?09:32??BMS項目\LECU\LECU-CPU.PcbDoc.htm
?????文件???????3179??2015-09-08?14:10??BMS項目\LECU\LECU-CPU.pcbdoc_viewstate
?????文件???????4445??2018-01-13?14:13??BMS項目\軟件\LTC6803.c
?????文件????????999??2018-01-13?14:13??BMS項目\軟件\LTC6803.h
?????文件??????25119??2017-12-29?09:28??BMS項目\軟件\LTC6804.c
?????文件???????9588??2017-12-27?14:51??BMS項目\軟件\LTC6804.h
?????目錄??????????0??2019-08-21?18:34??BMS項目\BMU\21182w-BMUPCB20150126
?????目錄??????????0??2019-08-21?18:34??BMS項目\BMU\History
?????目錄??????????0??2015-09-08?20:37??BMS項目\BMU\ProjectOutputs
?????目錄??????????0??2019-08-21?18:34??BMS項目\LECU\21182w-LECU20150126
?????目錄??????????0??2019-08-21?18:38??BMS項目\BMU
?????目錄??????????0??2019-08-21?18:37??BMS項目\LECU
?????目錄??????????0??2019-08-21?18:52??BMS項目\軟件
?????目錄??????????0??2019-08-21?18:39??BMS項目
-----------?---------??----------?-----??----
?????????????13412868????????????????????28
............此處省略1個文件信息
評論
共有 條評論