infreddolito perso
- Group
- Member
- Posts
- 16
- Status
- Offline
|
|
Buongiorno a tutti, con l'obiettivo di gestire l'accensione e spegnimento da remoto con un sistema arduino creato appositamente, mi sono cimentato nell'implementazione del protocollo di comunicazione seriale messo a disposizione sulla scheda di potenza. la mia stufa è una Marocchi Rossana, clone della Nordika Extraflame Viviana, con la quale condivide la scheda di controllo Micronova, a parte alcune limitazioni lato firmware. Seguendo le preziose indicazioni rese disponibili da Uman in questo thread: https://stufapellet.forumcommunity.net/?t=53061907&st=45, ho creato un'interfaccia sperimentale basata su un MAX3232, come da disegno allegato
il connettore a 4 poli presente sul retro della stufa è così cablato: 1: GND 2: comunicazione seriale 3: +15V 4: +5V
La porta seriale RS232 deve essere settata a 1200bps, 8 bit di dato, nessuna parità e 2 bit di stop Per le prime prove può essere utilizzato un qualunque sw di terminale seriale, fra quelli free vi segnalo Realterm, compatibile con tutte le versioni Windows:
N.B: - molti dei componenti presenti sulla scheda di potenza sono posti a tensione di rete, quindi se il connettore seriale non è reso disponibile esternamente, prima di intervenire staccate il cavo di alimentazione - prima di collegare l'interfaccia, verificate con un tester la corrispondenza delle tensioni indicate
Analizzando il dump dei banchi di memoria RAM ed EPROM, sono riuscito a mappare gran parte dei parametri di configurazione e delle informazioni di stato. I comandi di lettura sono così strutturati: - un byte per indicare il banco di memoria da leggere (0h per la RAM, 20h per la EPROM) - un byte per l'indirizzo da leggere (da 0h a FFh) la risposta è così composta: - un byte di CRC, come sommatoria fra i due byte di cui sopra ed il byte di valore restituito (vedi sotto), in modulo FFh - un byte contenente il valore richiesto
La tabella che segue contiene tutte le informazioni che sono riuscito a mappare finora, non tutte sono riportate 'in chiaro' ma necessitano di una formula matematica per far corrispondere il valore letto via seriale con quello visibile a bordo macchina, più specificamente: [valore_stufa] = [ADD] + [RATIO] * [valore_memoria]
Nota: Tutti i valori indicati in tabella, compresi gli indirizzi di memoria, sono espressi in decimale
LOCAZIONI EPROM PARAM. IND. EPROM DESCRIZIONE ADD RATIO PG00 00 Intervallo pulizia 0 1 PG01 01 Coclea accensione 0 25 PG02 02 Coclea avviamento 0 25 PG03 03 Coclea P1 0 25 PG04 04 Coclea P5 0 25 PG05 05 Fumi accensione 250 10 PG06 06 Fumi avviamento 250 10 PG07 07 Fumi P1 250 10 PG08 08 Fumi P5 250 10 PG09 09 Aria P1 60 5 PG10 10 Aria P5 60 5 PG11 11 Aria spegnimento 60 5 PG12 12 Soglia aria 30 1 PG13 13 Soglia compens. 30 1 PG14 14 Delta T off 0 1 PG15 15 Delta T on 0 1 PF00 17 Tempo start 0 1 PF01 18 Tempo accensione 0 1 PF02 19 Tempo avviamento 0 1 PF03 20 Precarica accensione 0 1 PF04 21 Modula fumi 30 1 PF05 22 Modula serbatoio 30 1 PF06 23 Soglia 1 30 1 PF07 24 Soglia 2 30 1 PF08 25 Soglia on/off 30 1 PF09 26 Cambio potenza 0 1 PF10 27 Ritardo P1/P2 0 1 PF11 28 Durata pulizia 0 1 PF12 29 Fumi pulizia 250 10 PF13 30 Coclea pulizia 0 25 PF14 31 Pulizia esclusa 0 1 PF15 32 Fumi avviamento 250 10 PF16 33 Fumi spegnimento 250 10 PF17 34 Fumi allarme 250 10 PF18 35 Aria allarme 60 5 PF19 36 Attesa fiamma 0 1 PF20 37 Aspirazione attesa fiamma 250 10 P100 54 Var coclea -45 5 P101 55 Var aspirazione -45 5 P102 56 Var flusso -45 5 76 Crono abilitato 0 1 77 Crono1 accensione [minuti] 0 10 78 Crono1 spegnimento [minuti] 0 10 79 Crono1 lunedì 0 1 80 Crono1 martedì 0 1 81 Crono1 mercoledì 0 1 82 Crono1 giovedì 0 1 83 Crono1 venderdì 0 1 84 Crono1 sabato 0 1 85 Crono1 domenica 0 1 87 Crono2 accensione [minuti] 0 10 88 Crono2 spegnimento [minuti] 0 10 89 Crono2 lunedì 0 1 90 Crono2 martedì 0 1 91 Crono2 mercoledì 0 1 92 Crono2 giovedì 0 1 93 Crono2 venderdì 0 1 94 Crono2 sabato 0 1 95 Crono2 domenica 0 1 97 Crono3 accensione [minuti] 0 10 98 Crono3 spegnimento [minuti] 0 10 99 Crono3 lunedì 0 1 100 Crono3 martedì 0 1 101 Crono3 mercoledì 0 1 102 Crono3 giovedì 0 1 103 Crono3 venderdì 0 1 104 Crono3 sabato 0 1 105 Crono3 domenica 0 1 107 Crono4 accensione [minuti] 0 10 108 Crono4 spegnimento [minuti] 0 10 109 Crono4 lunedì 0 1 110 Crono4 martedì 0 1 111 Crono4 mercoledì 0 1 112 Crono4 giovedì 0 1 113 Crono4 venderdì 0 1 114 Crono4 sabato 0 1 115 Crono4 domenica 0 1
INFORMAZIONI DI STATO PARAM. IND.MEM. DESCRIZIONE ADD RATIO RAM 01 Temperatura ambiente 0 2 EPR 125 Temperatura impostata 0 1 RAM 115 Temperatura aria aspirata 0 2 RAM 90 Temperatura fumi 0 1 RAM 13 Giri coclea 0 25 RAM 55 Giri ventola fumi 250 10 EPR 127 Potenza impostata 0 1 RAM 101 Ora attuale 0 1 RAM 102 Minuti attuali 0 1 RAM 100 Giorno settimana 0 1 RAM 103 Data 0 1 RAM 104 Mese 0 1 RAM 105 Anno 0 1 RAM 33 Stato funzionamento 0 1 (0 = spenta, 1/2=accensione, 3=avvio 4=lavoro, 6=pul.finale)
Gran parte di queste locazioni di memoria possono essere riscritte, al fine di poter realmente gestire la stufa da remoto, nonchè fare un backup/restore di tutti i parametri tecnici di configurazione. Il comando di scrittura è così composto: - un byte per indicare il banco di memoria da scrivere(80h per la RAM, A0h per la EPROM) - un byte per l'indirizzo da scrivere (da 0h a FFh) - un byte con il valore da scrivere - un byte di CRC, come sommatoria fra i tre byte di cui sopra
In particolare la locazione 21h della RAM (in tabella indicata come RAM 33) consente di accendere e spegnere la stufa, inviando rispettivamente i comandi 80h 21h 01h A2h e 80h 21h 06h A7h
Prima di passare definitivamente all'interfacciamento con un sistema Arduino, sto realizzando un sw per windows con cui acquisire, registrare e modificare tutti i parametri resi disponibili:
Edited by laki05 - 15/3/2015, 08:37
|
|