BMS從機開發板 /凌力爾特LTC6804/6811開發板BMS從機電池管理評估板/儲能BMS從機采集板
采集板帶電源隔離/SPI隔離通信方案
最重要的事說三遍!!!
免費提供技術支持!!!
免費提供技術支持!!!
免費提供技術支持!!!
程序移植,調試,測試均可以。
程序采用STM32F103 用SPI驅動
如只需要資料可私信樓主
提供技術支持,樓主是搞技術的所以互相學習互相進步
功能:SPI/菊花鏈通信
1、電壓采集功能(精度1mv以內,高精度四位半萬用表測試結果)
2、GPIO1~5電壓采集功能(INA282雙向高精度電流采集,精度10ma)
3、輔助測量功能(總壓,內部溫度,內部基準電壓等等)
4、斷線自檢功能(判斷哪一節電池斷線并輸出故障電池節號)
5、電流采集功能(高精度雙向電流采集芯片,軟件集成卡爾曼濾波,中值濾波等濾波算法)
6、IIC(GPIO4-GPIO5)通信功能(使用LTC6804讀寫EEPROM----24C02,無需主控編程即可存儲數據)可以用來保存采集板的配置信息。該方案網上資料無,獨此一家開源
7、被動均衡功能(設置壓差閾值并找出最高電壓開啟均衡)可設置0~1000mv任意值均衡
8、溫度采集功能(精度0 .1°C)
9、有上位機,顯示檢測的數據,如圖5(有通信協議說明)可以開源上位機;
10、可以增加無線通信,將數據通過無限模塊上傳到上位機;
11、可聯系樓主配置一套充放電控制套裝(增加充電器,充放電控制板,電子負載儀,若干線)
持續更新:20231223
資料:測試上位機,采集源碼(主控STM32F103 SPI通信),原理圖,BOM,源碼解析,電量soc算法代碼及解析,斷線檢測代碼及解析等等
服務:作者熱心詳細解答技術問題
注:學習技術交流使用,個人版權,未經授權不允許商用!

部分main程序 以及注解
int main(void)
{
float temp[2] = {0};
u16 adcx;
float adc_v;
HSE_SetSysClock(RCC_PLLMul_9); //則設置系統時鐘為:8MHZ * 9 = 72MHZ
delay_init(); //延時函數初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
LED_Init(); //LED端口初始化
KEY_Init(); //按鍵IO初始化
IO_CTRL_Config(); //系統的一些IO口設置;
Adc_Init(); //ADC初始化
uart_init(115200); //串口初始化為115200
CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_9tq,4,CAN_Mode_Normal);//CAN初始化環回模式,波特率500Kbps
LTC6804_initialize();//LTC6804初始化配置 標準模式 不允許放電 電壓所有單元 GPIO所有通道
//SPI2_Init(); //硬件SPI
Simulated_SPI_IoInit(); //軟件SPI
while(1)
{
LTC6804_adcv(); //Starts cell voltage conversion 開始電池電壓轉換
LTC6804_rdcv(0,cell_zu,cell_codes); //6804獲取12節電池電壓
LTC6804_adax(); //Start an GPIO Conversion 啟動GPIO轉換
LTC6804_rdaux(0,cell_zu,aux_codes); //獲取GPIO1-5的數據+VREF2 0 讀回所有輔助寄存器
LTC6804_ADSTAT(); //啟動狀態組ADC轉換,濾波模式
LTC6804_rdstat(0,cell_zu,stat_codes); //測量內部器件參數 (ADSTAT 命令)
Get_Cell_Voltage(); //獲取電池電壓四位整數 mv
Get_Cell_Voltage_Max_Min(); //最大電壓、最小電壓
Get_Update_ALL_Data(); //各項相加求總壓 / 寄存器讀取
Get_SOC(); //目前根據電壓取SOC 后面根據電流積分法
Get_BQ_Current(); //電流檢測
adow_test() ; //斷線檢測
BMS_STA(); //充放電狀態檢測
//***************溫度***********************
temp[0] = Get_Tempture(aux_codes[0][1]);
temp[1] = Get_Tempture(aux_codes[0][2]);
shang[38]=temp[0];
can_buf7[2]=(char)shang[38];
Balance_task(300); //計算電池電壓MAX 的標號并開啟均衡 200mv 均衡開啟閾值
charge_management(); //按鍵充放電,并檢測過沖過放
RECEICE_DATA_DEAL(); //串口1接收上位機數據處理
Usart_Send_Array(USART1, shang,50); //TTL上傳數據
CAN_SEND();
// adcx=Get_Adc_Average(ADC_Channel_5,10);
// printf(" ADC:%drn",adcx); //打印ADC的值
// adc_v=(float)adcx*(3.3/4096);
// printf(" 電壓值:%f Vrn",adc_v); //打印電壓值
LED0 = ~ LED0;
//printf("**************作者:小高霸氣********************** rn");
delay_ms(100);
}
}
```
審核編輯 黃宇
-
電池管理
+關注
關注
28文章
612瀏覽量
45767 -
bms
+關注
關注
110文章
1223瀏覽量
69904
發布評論請先 登錄
NXP電池管理系統(BMS):保障電池性能與安全的關鍵方案
MR-BMS771參考設計:適用于移動機器人的電池管理系統
儲能類電池管理系統BMS HiL解決方案
直播預約 |開源芯片系列講座第30期:“一生一芯”計劃——從零開始設計自己的RISC-V處理器芯片
從零開始了解智慧教室(一):智慧教室核心設備
BMS電池管理系統測試架構
電子硬件工程師如何從零開始學習?(文末免費分享從零開始學習資料)
BMS電池管理學習,從零開始
評論