all bms comunicating with nucleo board and balancing

Dependencies:   CANnucleo mbed

Fork of Can_sniffer_BMS_GER by Joao Vieira

Revision:
32:977a1b5728e4
Parent:
31:6427569cadbe
Child:
33:74db6193bc6b
--- 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");
     }