Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Can_sniffer_BMS4 by
Diff: main.cpp
- Revision:
- 32:977a1b5728e4
- Parent:
- 31:6427569cadbe
- Child:
- 33:74db6193bc6b
diff -r 6427569cadbe -r 977a1b5728e4 main.cpp --- a/main.cpp Tue Oct 25 17:28:55 2016 +0000 +++ b/main.cpp Thu Oct 27 20:55:13 2016 +0000 @@ -39,27 +39,29 @@ /*************Zivan NG3-G7MICB Charger(Input 230VAC-19A;Output 96 VDC-25A)***** -FLuxograma do processo de carregamento: -(1) Primeira parte do precharge -(2) Conectar baterias -(3) Segunda parte do precharge (inicio de carga) -(4) Mensagens periodicas 0x6C1 (modulação da corrente) -(4) Carregar a 25A atepremeira celula chegar aos 4.1V =>10A -(5) Parar carregamento quando tensao de todas as celulas= 4.1V ou de uma das celulas for 4.2V -(6) Desligar carregador e desconectar bateria ???(ver manual) +Processo de carregamento: +(1) Desconectar carregador da rede AC +(2) Conectar carregador as baterias +(3) Conectar carregador da rede AC(talves mais pratico ter botao?) +(4) Carga iniciase automaticamente(?) até uma tensao maxima de 4*27=108V +(5) Para desligar carregador desconectar da rede AC Tarefas: +-ver celulas em que o balanceamento nao esta a funcionar +-ver porque as tensões nao se estão a actualizar (por a fazer display da soma das tenções) +-ver porque o charger nao responde as mensagens CAN + -acabar de formatar o codigo do BMS encurtando interrupts, programando todas as BMS's e aumentando fiabilidade, etc -ligar carregador e ver que tensoes de CAN e de saida manda cá para fora+ ver que mensagens --experimentar leer valores programados no charger com SDO messages (ver o que é um lsb) --experimentar fazer um procedimento de precharge + +Atenção: +-obrigatorio conectar e desconectar as baterias do carregador quando este esta desconectado da rede AC +-em caso de algum problema desligar primeiro ficha da redeAC do carregador e depois desconectar ficha das baterias Mensagens: (charger CAN node is 11 by default. So the Id of the message will be 0x60B in hexadecimal) -"node id" [1;20]*4. ex. if node=1then 0x280+1*4=0x284 - Charger->BMS (normally reserved id's) 0x380+node_id (period: 1,000S): actual output current, voltage and Ah 0x280+node_id (period: 4,000S): alarms flags, hardware start/stop status @@ -67,7 +69,6 @@ 0x580+node_id: answer to 0x600 SDO message BMS->Charger -0x6C1: current output modulation(simplest implmentation) 0x776: (broadcast; from BMS to chargers): current and voltage setpoints, battery detection setpoint 0x6C1: (broadcast message; from BMS to charger): only mandatory message BMS need to implement (4s timeout) 0x600+node_id: SDO messages @@ -83,7 +84,7 @@ 0x580+node_id ...remote display default node is 21... -Precharge: +Precharge(not used): (ID|Message) To charger:(0x600+node_id | 22-60-60-01-V_HI-V_LO-0-0) From charger:(0x580+node_id | 60-60-60-01-0-0-0-0) @@ -93,6 +94,21 @@ From charger:(0x580+node_id | 60-60-60-02-0-0-0-0) From charger:(0x580+node_id | 80-60-60-02-XX-XX-XX-XX) + +testar:------------------------------------ + +-ver se BMS esta realmente a actualizar tensoes comparando tensoes a ser ou nao carregadas + +test3:---------------------------- +-checkar que o balanceamento de todas as celulas estao a funcionar +-ajustar bms para carga final e amostra da soma total das tensoes + +test4:----------------------------- +-carregamento final + +test5:----------------------------- +-descarregamento ate metade da tensão p testar aquecimento do balanceamento + ******************************************************************************/ @@ -152,10 +168,18 @@ void cvprint(){ int n; + float soma=0; for(n=35; n>=0; n--){ //printf("cellsv0: %f cvprint\r\n", cellsv[0]); printf("cell: %d voltage: %f \r\n", n+1,cellsv[n]); - } + + if(cellsv[n]>=0.1) + { + soma=cellsv[n]+soma; + } + } + + printf("Total battery voltage: %f \r\n", soma); printf("\r\n""""""""""""""""""""""""""""""""""""""""""""""""\r\n"); }