DATALOGGER A 5 CANALI ANALOGICI
con PIC 16F876A
23/02/2015
Questo progetto e' stato presentato sulle pagine della rivista Fare Elettronica N. 226 dell'Aprile 2004 dal titolo :
Progettiamo un razzo - Datalogger digitale a 5 canali di Eugenio Cosolo (parte Hardware) ed Esteban Mascarella (parte Software).
L'autore dei citati articoli e' lo stesso che scrive le presenti note ed anche se Esteban Mascarella non e' al momento rintracciabile lo cito in quanto co-autore.
Per questo accredito a lui la paternita' del software, che purtroppo e' disponibile solo in formato esadecimale e non in sorgente.
Svolte queste necessarie formalita' inizio a presentare il progetto:
Si tratta di uno strumento di laboratorio indispensabile quando si ha la necessità di monitorizzare e registrare tensioni analogiche in rapida variazione, da analizzare comodamente in un secondo tempo con il proprio personal computer.
Le applicazioni sono moltissime, come anche la gamma di sensori che possono essere collegati alle entrate dello strumento, ad esempio sensori di pressione, sonde di temperatura, accelerometri, fotocellule, celle di carico eccetera.
Qualsiasi tensione in continua nel range da 0 a 5 volt può essere monitorizzata dallo strumento, inoltre, interfacciando il datalogger a dei moduli RF digitali, possiamo ottenere un valido sistema di radiotelemetria.
Questo progetto, semplice e poco costoso nella realizzazione ma molto versatile e potente, prevede anche l’alimentazione a batteria, per aumentare il campo d’impiego.
Il progetto originariamente è stato concepito per assolvere la funzione di datalink telemetrico installato sulla capsula payload di un vettore a razzo, per il rilevamento dei parametri di volo.
Lo stesso dispositivo puo' anche usato come registratore di dati accoppiato alla cella di carico ad estensimetri gia' precedentemente pubblicata su Grix.
LO SCHEMA ELETTRICO
Il dispositivo è costruito intorno ad uno dei “best-seller” della Microchip, il microcontroller PIC 16F876A, dotato di un efficiente convertitore analogico/digitale shiftabile su diversi ingressi.
I pochi componenti esterni al microcontroller sono il generatore di clock (un oscillatore a 4 Mhz), uno stabilizzatore di tensione a 5 volt, una memoria EEPROM 24LC64 (oppure 24LC256), un display LCD da 16 caratteri su due linee e un convertitore di protocollo seriale MAX232.
(NOTA dell'autore: All'epoca della progettazione non era ancora molto diffuso il protocollo USB, ora indispensabile, percio' e' stato usato il classico nonche' obsoleto RS232. Se qualcuno ha voglia e tempo potrebbe implementare un'interfaccia USB per aggiornare il presente progetto.)
In questa configurazione il circuito ci permette di campionare le tensioni presenti sui 5 ingressi (nel range di 0 a 5 V), di visualizzare i valori digitali sul display, di memorizzare le letture sulla memoria e di ritrasmetterle in un secondo tempo ad un personal computer, dove un opportuno programma può interpretarle a piacimento.
L’attivazione dei campionamenti e relativa trasmissione in RS232 in tempo reale viene comandata dalla pressione del pulsante P1.
Premendo nuovamente dello stesso pulsante si comanda lo STOP, mentre la visualizzazione e la contestuale trasmissione seriale al PC dei dati memorizzati viene attivata dal pulsante P2.
I dati sono conservati intatti anche in assenza di alimentazione mentre la cancellazione dei vecchi dati viene fatta al momento del nuovo campionamento.
Il clock del microcontroller è generato dal quarzo XT da 4 Mhz insieme ai condensatori C2 e C3.
Scegliendo un quarzo di frequenza più alta il campionamento varia di conseguenza ed è possibile montare un quarzo fino a 20 Mhz.
Attenzione però agli eventuali problemi di trasmissione seriale.
Il display LCD è collegato alle porte RB0-RB4 tramite il connettore CN1, mentre gli ingressi analogici sono collegati alle porte RA0-RA3, impostabili a seconda delle necessità in modalità digitale oppure analogica (AN0-AN3).
Il connettore CN2 raggruppa tutti gli ingressi da campionare, insieme ad un pin di massa e uno a 5 volt, utile per alimentare alcuni sensori attivi.
I pulsanti di servizio sono collegati alle porte RC0-RC2 e sono disponibili sia sul connettore CN1, sia sul CN7, dedicato appositamente per questo scopo.
Sulla porta RC5 è collegato un buzzer piezoelettrico attivo (con oscillatore interno) e un led per segnalare visivamente l’attivazione.
L’archiviazione dei dati viene fatta sulla memoria 24LCxxx, connessa al PIC tramite le porte RC3-RC4 (linee SCL e SDI).
Contestualmente alla memorizzazione le letture sono trasmesse sull’interfaccia seriale disponibile sulle porte RC6-RC7.
Lo standard TTL è convertito in protocollo RS-232 dal chip MAX232 della Maxim, sostituibile con i modelli equivalenti prodotti da altre case.
Se si ha la necessità di inviare il segnale ad una stazione di ricezione remota (radio telemetria) è possibile prelevare il segnale in standard TTL ed inserirlo sull’ingresso di un trasmettitore radio (ad esempio i moduli ibridi prodotti da diverse case).
Il segnale RS-232 è disponibile sul connettore CN3, previsto per la connessione al personal computer.
In questo caso il cavo di connessione richiede solo un polo oltre alla massa.
Ricordarsi però di cortocircuitare i pin 7-8 e 4-6 sul connettore canon a 9 poli da collegare al PC.
Il connettore CN11 è usato per la programmazione ON-BOARD, molto utile per evitare di estrarre il micro dallo zoccolo.
Per programmarlo in questo modo serve un apposito programmatore ed in questa fase i ponticelli sul CN10 e sul CN11 devono essere momentaneamente rimossi.
Figura 1: Schema elettrico del Datalogger
Oppure scaricatevi questo file PDF che e' piu' carino:
backoffice/img/fck/schemadatalogger.pdf
LA COSTRUZIONE
Il circuito stampato può essere realizzato con la tecnica della fotoincisione a raggi UV, seguito dallo sviluppo con idrossido di sodio diluito al 2% e corrosione con acido cloridrico (70%) e perossido d’idrogeno (acqua ossigenata) a 90 volumi (30%).
Per i meno esperti consiglio estrema attenzione nell'uso di questa tecnica in quanto i prodotti chimici citati sono corrosivi, pericolosi, insalubri, aggressivi, ustionanti, deleteri ed anche mortali se ingeriti o usati per farci la doccia.
Per questo scopo è stato predisposto il master illustrato in figura.
Per consentire la realizzazione in casa del circuito stampato senza troppe complicazioni è stato disegnato a singola faccia, è però importante ricordare inserire i tre ponticelli in filo di rame tra le piazzole predisposte.
Una volta forata la basetta con la punta da 0,8 mm ed averla adeguatamente sgrassata procederemo con l’inserimento e saldatura degli zoccoli, degli strip-connector a passo 2,54, delle resistenze e dei condensatori, successivamente saranno montati i componenti attivi.
Il montaggio del display LCD è previsto sul pannello anteriore del contenitore, così anche i pulsanti e i led. Controllare la zoccolatura del display in base al modello disponibile (verificare tabella illustrata).
L’interruttore di alimentazione, la presa seriale RS232 e il connettore multipolare per gli ingressi saranno invece installati sul pannello posteriore.
Nelle foto è visibile uno dei prototipi realizzati dall'autore, nella fattispecie si tratta della versione portatile, alimentata a batteria.
Il circuito del datalogger è il modulo centrale, mentre a fianco si può vedere l’amplificatore per celle di carico ad estensimetri, gia' pubblicato su questo sito.
Sul pannello anteriore è installato il display LCD, i pulsanti di comando e i Led di status.
Sul pannello posteriore sono disponibili gli interruttori per le diverse sezioni e le prese per l’interfacciamento con l’esterno.
Figura 2: Circuito stampato (lato saldature) della scheda madre.
La dimensione indicata serve da riferimento per il master, non avendo piu' a disposizione il file Eagle.
Figura 3: Piano di montaggio della scheda madre
Figura 4: Circuito stampato (lato saldature) della scheda display
Figura 5: Piano di montaggio della scheda display
Elenco componenti scheda madre
R1 27 Kohm 1/4 W
R2 27 Kohm 1/4 W
R3 27 Kohm 1/4 W
R4 10 Kohm 1/4 W
R5 22 Kohm 1/4 W
R6 47 Kohm 1/4 W
R7 470 ohm 1/4 W
R8 470 ohm 1/4 W
R9 10 Kohm 1/4 W
R10 10 Kohm 1/4 W
R11 470 ohm 1/4 W
R12 1 Kohm trimmer
R13 390 ohm 1/4 W
C1 100 nF poliestere
C2 22 pF ceramico
C3 22 pF ceramico
C4 10 nF poliestere
C5 10 nF poliestere
C6 2,2 mF elettrolitico
C7 2,2 mF elettrolitico
C8 2,2 mF elettrolitico
C9 2,2 mF elettrolitico
C10 47 mF elettrolitico
C11 100 mF poliestere
C12 47 mF elettrolitico
C13 100 mF poliestere
C14 1 mF elettrolitico
DS1 1N4148
TR1 BC547
XT Quarzo 4 Mhz
L1 Led rosso
L2 Led verde
L3 Led giallo
IC1 PIC16F876/20
IC2 24LC256
IC3 MAX232
IC4 78SL05
LCD Display LCD 16x2
P1-P3 Pulsanti da circuito stampato
S1 Interruttore a slitta
1 zoccolo per integrato a 28 pin
1 zoccolo per integrato a 8 pin
1 zoccolo per integrato a 16 pin
Elenco componenti Scheda Display LCD
R1 390 ohm 1/4 W
R2 Trimmer 1 Kohm
S1 Interruttore a levetta da cs
P1÷P3 Pulsanti NA da cs
LCD1 Display LCD 2x16
Lo strumento assemblato.
Si notano a sinistra gli accumulatori NiMh, al centro il datalogger e a destra un amplificatore per estensimetri.
Sul pannello anteriore e' presente il display LCD, i due pulsanti Start e Stop e i due led monitor. Il terzo pulsante non e' utilizzato.
Sul pannello posteriore si posso vedere l'interruttore di accensione, la presa RS232 ed alcuni commutatori ausiliari e prese canon necessarie all'amplificatore per estensimetri.
In questa versione il sistema e' usato come datalogger per cella di carico.
COME SI USA
Possiamo collegare ad una o più entrate un valore di tensione in continua compreso da 0 e 5 volt, per fare dei test sono sufficienti anche dei normali potenziometri o trimmer con un terminale a massa, l’opposto ai 5V disponibili sullo zoccolo di collegamento e il cursore centrale sull’ingresso. Regoliamo inizialmente i potenziometri o i trimmer in modo da connetterli a massa.
Diamo tensione dl circuito e leggeremo sul display la scritta : Telemetric System Ready.
Premiamo una volta il pulsante di start P1 e un breve suono ci avviserà che il campionamento è iniziato.
Sulle due righe del display potremo leggere : A0000B0000C0000D0000E0000 REC
Se sposteremo i potenziometri vedremo che il valore 0000 cambierà indicando valori diversi.
Una tensione di 5 V sarà rappresentata dalla cifra 1024, perciò ogni aumento di un volt della tensione presente sul segnale in entrata causerà un incremento di 205 unità sul display.
La scritta REC indica che si è in fase di campionamento e registrazione, mentre il LED lampeggia.
Il sistema continua a memorizzare i dati fino a quando non premeremo nuovamente il pulsante P1 oppure si esaurirà la capacità della memoria FLASH (794 letture con una memoria 24LC64 e 3176 letture con una 24LC256).
A questo punto possiamo collegare il dispositivo alla porta seriale RS232 del nostro PC, lanciamo il programma di scaricamento e premiamo il pulsante P2.
Sulle due righe del display potremo leggere : A0000B0000C0000D0000E0000 PLAY
Il led rimarrà acceso in continuazione mentre i dati si trasferiranno sul PC dove potranno essere archiviati in un file con il nome assegnato e rielaborati successivamente.
A trasferimento terminato il LED si spegnerà.
I dati rimarranno in memoria anche a circuito spento e saranno cancellati automaticamente solo al momento di un nuovo campionamento.
IL PROTOCOLLO DI TRASMISSIONE
Sull’uscita seriale, sia in tempo reale che in fase di scaricamento dati memorizzati, disponiamo di una serie di stringhe con i seguenti parametri : 9600 baud, 8 bit, nessuna parità, 1 bit di stop, e con il seguente protocollo: 255, ch0-h, ch0-l, ch1-h, ch1-l, ch2-h, ch2-l, ch3-h, ch3-l, ch4-h, ch4-l, cks-h, cks-l.
Spieghiamo bene cosa significano in dettaglio i sopra descritti simboli :
Per prima cosa attendiamo la ricezione del codice 255, che serve a marcare l’inizio della sequenza. E’ stato scelto questo valore poichè in nessun caso potrà essere usato dagli altri segnali.
Quelli che seguono sono 10 valori raggruppati a due a due, infine i due valori del checksum, che servono ad autenticare i dati precedenti.
La coppia di dati, ad esempio ch0-h e ch0-l, rappresentano il valore effettivo del canale 1, suddivisi in due tronconi in formato “bcd”, il primo indica la parte alta ed il secondo la parte bassa.
Questi due valori devono essere riassemblati per ottenere il valore completo disponibile sul canale.
Ad esempio, se il carattere ch0-h convertito in decimale è di 09 e il carattere ch0-l convertito in decimale è di 72, il valore risultante sarà : (09 *100) + 72 = 972
Una semplice procedura scritta in Qbasic per lo scarico dei dati è disponibile in seguito.
E' da considerare come esempio, magari da riscrivere in un linguaggio piu' potente e aggiornato:
' ROUTINE CATTURA DATI DATALOGGER
' release 2.1 del 07/11/2002 ( aggiunta controllo CheckSum + modifiche varie )
COLOR 3, 3: CLS : COLOR 14, 4:
LOCATE 2, 10: PRINT " TELEMERIA DIGITALE VIA RADIO "
LOCATE 3, 10: PRINT " by Esteban Mascarella & Eugenio Cosolo "
LOCATE 4, 10: PRINT " Laser Rocket Team ": COLOR 15, 1:
OPEN "TELEM14.PAR" FOR INPUT AS #3 ' configurazione parametri
INPUT #3, PORTA$
INPUT #3, FILE$
CLOSE #1
OPEN FILE$ FOR OUTPUT AS #2 'APRE FILE DATI
IF PORTA$ = "1" THEN
OPEN "COM1:9600,N,8,,CS,DS" FOR RANDOM AS 1
END IF
IF PORTA$ = "2" THEN
OPEN "COM2:9600,N,8,,CS,DS" FOR RANDOM AS 1
END IF
COLOR 15, 0
LOCATE 22, 55
PRINT " Porta: COM"; PORTA$; " "
COLOR 15, 4
LOCATE 22, 10
PRINT " In attesa di segnale di START "
SOUND 1000, 2
LETT = 0
LETTERR = 0
INI = TIMER
lettura: ' inizio sequenza letture
TEMP = TIMER - INI: TEMP = TEMP * 100: TEMP = INT(TEMP): TEMP = TEMP / 100:
COLOR 14, 4
LOCATE 18, 12: PRINT " Lettura # "
LOCATE 18, 28: PRINT LETT
LOCATE 19, 12: PRINT " Errori # "
LOCATE 19, 28: PRINT LETTERR
LOCATE 20, 12: PRINT " Tempo sec. "
LOCATE 20, 28: PRINT TEMP
COLOR 15, 1
A$ = INPUT$(1, #1): A = ASC(A$)
IF INKEY$ = CHR$(27) THEN
CLOSE
'SHELL "EDIT ARCHIVIO"
END
END IF
IF A = 255 THEN
GOTO inizio
ELSE
GOTO lettura
END IF
' ATTENDE INIZIO SEQUENZA
CLOSE : SHELL "EDIT ARCHIVIO": END 'ATTENDE INIZIO SEQUENZA
inizio: 'INIZIO TRASMISSIONE STRINGHE
COLOR 3, 3: LOCATE 22, 10: PRINT " ": COLOR 15, 1:
control = 0
A$ = INPUT$(1, #1): A = ASC(A$): control = control + A: A$ = HEX$(A): A = VAL(A$)
IF control > 255 THEN control = control - 256
A$ = INPUT$(1, #1): B = ASC(A$): control = control + B: B$ = HEX$(B): B = VAL(B$)
IF control > 255 THEN control = control - 256
C1 = (A * 100) + B
A$ = INPUT$(1, #1): A = ASC(A$): control = control + A: A$ = HEX$(A): A = VAL(A$)
IF control > 255 THEN control = control - 256
A$ = INPUT$(1, #1): B = ASC(A$): control = control + B: B$ = HEX$(B): B = VAL(B$)
IF control > 255 THEN control = control - 256
C2 = (A * 100) + B
A$ = INPUT$(1, #1): A = ASC(A$): control = control + A: A$ = HEX$(A): A = VAL(A$)
IF control > 255 THEN control = control - 256
A$ = INPUT$(1, #1): B = ASC(A$): control = control + B: B$ = HEX$(B): B = VAL(B$)
IF control > 255 THEN control = control - 256
C3 = (A * 100) + B
A$ = INPUT$(1, #1): A = ASC(A$): control = control + A: A$ = HEX$(A): A = VAL(A$)
IF control > 255 THEN control = control - 256
A$ = INPUT$(1, #1): B = ASC(A$): control = control + B: B$ = HEX$(B): B = VAL(B$)
IF control > 255 THEN control = control - 256
C4 = (A * 100) + B
A$ = INPUT$(1, #1): A = ASC(A$): control = control + A: A$ = HEX$(A): A = VAL(A$)
IF control > 255 THEN control = control - 256
A$ = INPUT$(1, #1): B = ASC(A$): control = control + B: B$ = HEX$(B): B = VAL(B$)
IF control > 255 THEN control = control - 256
C5 = (A * 100) + B
control = control - 1
A$ = INPUT$(1, #1): A = ASC(A$) 'CheckSum
A$ = INPUT$(1, #1): B = ASC(A$)
cs = A OR B
IF cs = control THEN 'controlo CheckSum
LETT = LETT + 1
GOSUB display
GOSUB memoriz
END IF
IF cs <> control THEN 'conta errori
LETTERR = LETTERR + 1
END IF
GOTO lettura
display: 'ROUTINE DISPLAY
LOCATE 6, 10: PRINT " Channel 1 : ": LOCATE 6, 30: PRINT C1
LOCATE 8, 10: PRINT " Channel 2 : ": LOCATE 8, 30: PRINT C2
LOCATE 10, 10: PRINT " Channel 3 : ": LOCATE 10, 30: PRINT C3
LOCATE 12, 10: PRINT " Channel 4 : ": LOCATE 12, 30: PRINT C4
LOCATE 14, 10: PRINT " Channel 5 : ": LOCATE 14, 30: PRINT C5
LOCATE 16, 10: PRINT " CheckSum : ": LOCATE 16, 30: PRINT cs
RETURN
memoriz: 'ROUTINE MEMORIZZAZIONE
LETT$ = STR$(LETT): TEMPO$ = STR$(TEMP)
C1$ = STR$(C1): C2$ = STR$(C2): C3$ = STR$(C3): C4$ = STR$(C4): cs$ = STR$(cs)
RIGA$ = LETT$ + " " + TEMPO$ + " " + C1$ + " " + C2$ + " " + C3$ + " " + C4$ + " " + cs$
PRINT #2, RIGA$
RETURN
I SENSORI INTERFACCIABILI
Al momento sono stati sviluppati i seguenti tipi di sensori:
• Accelerometri a singolo e doppio asse, con un range da 2 a 50 G.
• Barometro ambientale per la misura della pressione atmosferica, utile per implementare un altimetro.
• Voltmetro per misurare lo stato degli accumulatori di bordo.
• Sensore termico, per la misurazione della temperatura ambientale
• Cella di carico ad estensimetri, per la misura di forze, pesi, torsioni, sollecitazioni e vibrazioni.
Sono allo studio anche altri tipi di sensori, ad esempio una bussola elettronica ed un inclinometro.
La descrizione di questi dispositivi accessori potra' essere oggetto di un altro articolo.
IL FIRMWARE
ll programma esadecimale da caricare sul microprocessore potrete trovarlo qui sotto.
Come gia' detto prima, purtroppo non e' piu' disponibile il sorgente, sorry.
:020000000428D2
:08000800FF30A200FF30A3004D
:10001000FF30A400FF30A5000F30A6008A110A129D
:100020007A270A308A110A129B2727128A110A128C
:10003000FC2703308A110A12692732308A110A120A
:10004000C72703308A110A12692732308A110A122F
:10005000C72703308A110A12692732308A110A121F
:10006000C72732308A110A12532728308A110A1200
:1000700053278A110A120D278A110A12BD268A11E6
:100080000A12092724138A150A121E20A4178A159A
:100090000A121B208A150A124320243098001930B6
:1000A00099008A150A124620903098001A081A08FA
:1000B0001A0800309900AA01AB01A4128A150A128D
:1000C000212023138A150A122D20A3138A150A1240
:1000D0002A20A8168A110A12EA2701308A110A1268
:1000E0009227A8128A110A12EA278A110A12C12439
:1000F000FF308A150A1236208A110A120719A32A1C
:1001000001308A110A1292278A110A120719A32AAA
:10011000A8168A110A12EA2701308A110A129227B8
:10012000A8128A110A12EA278A110A1225278A11AF
:100130000A1207199E288A110A12972801308A117B
:100140000A129227B301B2018A110A120719AB28C9
:100150008A110A127C2A1F3033028A110A12031CE8
:10016000B828A7178A110A12F3278A110A12BC2885
:10017000A7138A110A12F327B101FF308A110A125C
:10018000D025FF30B10700308A110A128F258A115D
:100190000A12212741308A110A1245272A08B7007E
:1001A0002B088A110A128B243408AE003508AF00E0
:1001B0003608B0002F088A110A12D0252F08B1077F
:1001C00030088A110A12D0253008B1071F303302D7
:1001D0008A110A1203180E29AE30B4003308B50094
:1001E0003208B6002F088A110A12DB2501308A1165
:1001F0000A129B278A110A125524AE30B400330824
:10020000B5003208B60030088A110A12DB25013029
:100210008A110A129B278A110A1255242F08B4004A
:1002200030088A110A12622401308A110A128F25BD
:1002300042308A110A1245272A08B7002B088A1172
:100240000A128B243408AE003508AF003608B0001F
:100250002F088A110A12D0252F08B10730088A11F9
:100260000A12D0253008B1071F3033028A110A1252
:1002700003185C29AE30B4003308B5003208B6006C
:100280002F088A110A12DB2501308A110A129B27D6
:100290008A110A125524AE30B4003308B500320872
:1002A000B60030088A110A12DB2501308A110A12C1
:1002B0009B278A110A1255242F08B40030088A118E
:1002C0000A12622402308A110A128F2543308A11E1
:1002D0000A1245272A08B7002B088A110A128B2414
:1002E0003408AE003508AF003608B0002F088A1178
:1002F0000A12D0252F08B10730088A110A12D0251A
:100300003008B1071F3033028A110A120318AA29D4
:10031000AE30B4003308B5003208B6002F088A1199
:100320000A12DB2501308A110A129B278A110A1250
:100330005524AE30B4003308B5003208B60030089A
:100340008A110A12DB2501308A110A129B278A11B1
:100350000A1255242F08B40030088A110A126224A8
:100360008A110A121D2703308A110A128F25443080
:100370008A110A1245272A08B7002B088A110A1287
:100380008B243408AE003508AF003608B0002F08C3
:100390008A110A12D0252F08B10730088A110A12D3
:1003A000D0253008B1071F3033028A110A12031812
:1003B000FB29AE30B4003308B5003208B6002F0870
:1003C0008A110A12DB2501308A110A129B278A1131
:1003D0000A125524AE30B4003308B5003208B60016
:1003E00030088A110A12DB2501308A110A129B2774
:1003F0008A110A1255242F08B40030088A110A12F3
:10040000622404308A110A128F2545308A110A129B
:1004100045272A08B7002B088A110A128B243408B2
:10042000AE003508AF003608B0002F088A110A1256
:10043000D0252F08B10730088A110A12D0253008BC
:10044000B1071F3033028A110A120318492AAE304D
:10045000B4003308B5003208B6002F088A110A121A
:10046000DB2501308A110A129B278A110A125524B2
:10047000AE30B4003308B5003208B60030088A1137
:100480000A12DB2501308A110A129B278A110A12EF
:1004900055242F08B40030088A110A126224203033
:1004A0008A110A12452752308A110A12452745300F
:1004B0008A110A12452743308A110A12452731084A
:1004C000F039AD002D088A110A12D02531080F39F4
:1004D000AD002D088A110A12D02527178A110A1299
:1004E000F62701308A110A12922727138A110A125D
:1004F000F6278A110A12A428A8168A110A12EA27D6
:1005000001308A110A129227A8128A110A12EA27C8
:10051000AE30B4003308B5003208B600FF308A119F
:100520000A12DB2501308A110A129B278A110A124E
:1005300025278A110A12C1248A110A120719A32A2F
:100540008A110A129C2A8A110A1287184F2C01302C
:100550008A110A1292278A110A1287184F2CA8169C
:100560008A110A12EA2701308A110A129227A81268
:100570008A110A12EA278A110A1225278A110A12F9
:100580008718C52A8A110A12BE2A01308A110A1256
:1005900092278A110A12252727178A110A12F6278D
:1005A000B301B2011F3033028A110A120318DC2A88
:1005B0008A110A128718DF2A8A110A12322CB10115
:1005C000FF308A110A12D025FF30B107AE30B400D7
:1005D0003308B5003208B6008A110A12F825370828
:1005E000A9002908AF008A110A125524AE30B400C0
:1005F0003308B5003208B6008A110A12F825370808
:10060000A9002908B0008A110A1255248A110A1279
:10061000212741308A110A1245272F088A110A1210
:10062000D0252F08B10730088A110A12D0253008CA
:10063000B1072F08B40030088A110A126224AE30C4
:10064000B4003308B5003208B6008A110A12F82542
:100650003708A9002908AF008A110A125524AE30C4
:10066000B4003308B5003208B6008A110A12F82522
:100670003708A9002908B0008A110A12552442300F
:100680008A110A1245272F088A110A12D0252F082D
:10069000B10730088A110A12D0253008B1072F0897
:1006A000B40030088A110A126224AE30B400330854
:1006B000B5003208B6008A110A12F8253708A900D9
:1006C0002908AF008A110A125524AE30B40033084D
:1006D000B5003208B6008A110A12F8253708A900B9
:1006E0002908B0008A110A12552443308A110A12CF
:1006F00045272F088A110A12D0252F08B107300884
:100700008A110A12D0253008B1072F08B40030082A
:100710008A110A1262248A110A121D27AE30B4000F
:100720003308B5003208B6008A110A12F8253708D6
:10073000A9002908AF008A110A125524AE30B4006E
:100740003308B5003208B6008A110A12F8253708B6
:10075000A9002908B0008A110A12552444308A11D0
:100760000A1245272F088A110A12D0252F08B1072F
:1007700030088A110A12D0253008B1072F08B400BA
:1007800030088A110A126224AE30B4003308B50072
:100790003208B6008A110A12F8253708A90029087C
:1007A000AF008A110A125524AE30B4003308B500E8
:1007B0003208B6008A110A12F8253708A90029085C
:1007C000B0008A110A125524AE30B4003308B500C7
:1007D0003208B6008A110A12F8253708A90029083C
:1007E000FF3C8A110A12031DF72B1F30B30045305E
:1007F0008A110A1245272F088A110A12D0252F08BC
:10080000B10730088A110A12D0253008B1072F0825
:10081000B40030088A110A12622420308A110A12A8
:10082000452750308A110A1245274C308A110A1286
:10083000452741308A110A12452759308A110A1278
:1008400045273108F039AD002D088A110A12D0254C
:1008500031080F39AD002D088A110A12D0258A11EE
:100860000A12D22AA8168A110A12EA2701308A111E
:100870000A129227A8128A110A12EA278A110A126A
:1008800025278A110A12C12427138A110A12F62772
:100890008A110A1287184F2C8A110A12482C8A11C1
:1008A0000A127C288A110A12522C3208FF3C8A1143
:1008B0000A12031D602CB201B30A8A110A12612CBC
:1008C000B20A0800B5003408AC002C0E0F39AC0099
:1008D0003030AC072C088A110A12452734080F392A
:1008E000AC003030AC072C088A110A1245273508B5
:1008F000AC002C0E0F39AC003030AC072C088A113C
:100900000A12452735080F39AC003030AC072C08E7
:100910008A110A12452FB800B401B501B601103092
:10092000B90036088A110A12AD243A08B600350813
:100930008A110A12AD243A08B50034088A110A1245
:10094000AD243A08B400B80DB70DB60DB50DB40D11
:100950008A110A12B90B912C0800BA003A08033E1A
:10096000BB008A110A12BB1DB72C3B08BA003A081B
:10097000303EBB008A110A12BB1FC02C3B08BA00D4
:1009800008008A110A12252720308A110A124527E9
:1009900020308A110A12452720308A110A12452771
:1009A00054308A110A12452765308A110A124527E8
:1009B0006C308A110A12452765308A110A124527C0
:1009C0006D308A110A12452765308A110A124527AF
:1009D00074308A110A12452772308A110A1245278B
:1009E00069308A110A12452763308A110A12452795
:1009F0008A110A121D2720308A110A124527203039
:100A00008A110A12452753308A110A124527793074
:100A10008A110A12452773308A110A124527743049
:100A20008A110A12452765308A110A1245276D304E
:100A30008A110A12452720308A110A12452772307E
:100A40008A110A12452765308A110A12452761303A
:100A50008A110A12452764308A110A124527793013
:100A60008A110A12452754308A110A12D02565309E
:100A70008A110A12D0256C308A110A12D0256530ED
:100A80008A110A12D0256D308A110A12D0256530DC
:100A90008A110A12D02574308A110A12D0257230B8
:100AA0008A110A12D02569308A110A12D0256330C2
:100AB0008A110A12D02520308A110A12D02553300B
:100AC0008A110A12D02579308A110A12D025733082
:100AD0008A110A12D02574308A110A12D025653085
:100AE0008A110A12D0256D308A110A12D0252030C1
:100AF0008A110A12D02572308A110A12D025653067
:100B00008A110A12D02561308A110A12D025643068
:100B10008A110A12D02579308A110A12D02DB40018
:100B2000B4088A110A12031D972D4130B40034080D
:100B3000013C8A110A12031D9F2D4930B40034086C
:100B4000023C8A110A12031DA72D5130B40034084B
:100B5000033C8A110A12031DAF2D5930B40034082A
:100B6000043C8A110A12031DB72D6130B400340809
:100B70009F0001308A110A12A427831603138230C2
:100B80009F00831234089F001F151F19C52D1E08D2
:100B9000AA00831603131E088312AB0083120800F9
:100BA000B40034080C1ED22D8B138B1BD42D99004E
:100BB0008B1708000800B70034088A110A1217269C
:100BC00035088A110A124A268A110A125D26360849
:100BD0008A110A124A268A110A125D2637088A11DA
:100BE0000A124A268A110A125D268A110A12BD2E9D
:100BF000B70034088A110A12172635088A110A121A
:100C00004A268A110A125D2636088A110A124A26D5
:100C10008A110A125D2634088A110A1222268A11C4
:100C20000A122E263808B7008A110A12BD2EB80003
:100C30008A110A12E32638088A110A124A268A11F2
:100C40000A125D2EB8008A110A12E3263808013E06
:100C50008A110A124A268A110A125D2EB8008A11D8
:100C60000A127F2638108A110A12A01C382E381456
:100C70000830B9000310B80D8A110A127F26381007
:100C80008A110A12A01C452E38148A110A12B90BB7
:100C90003A2E0800B9000830BA00A0108A110A12D2
:100CA000B91F532EA0148A110A12A0260310B90DE1
:100CB0008A110A12BA0B4D2E08008A110A1209274E
:100CC00024168A150A1224208A110A120927A4154B
:100CD0008A150A1227208A110A1209278A110A1274
:100CE0008719752E8A110A126E2E8A110A12092787
:100CF000A4118A150A1227208A110A12092F8A11B3
:100D00000A12092724168A150A1224208A110A12A7
:100D10000927A0108A110A12071E8F2EA0148A110B
:100D20000A120927A4118A150A1227208A110A1209
:100D30000927A4158A150A1227208A110A12092FD9
:100D40008A110A12092724128A110A12A01CA92E3C
:100D500024168A150A1224208A110A120927A415BA
:100D60008A150A1227208A110A120927A4118A1546
:100D70000A1227208A110A12092F8A110A1209273A
:100D8000A4118A150A1227208A110A12092724128F
:100D90008A150A1224208A110A120927A4158A1515
:100DA0000A1227208A110A12092724168A150A1204
:100DB00024208A110A120927A4118A150A12272051
:100DC0008A110A12092F8A110A120927A4118A15F9
:100DD0000A1227208A110A12092724168A150A12D4
:100DE00024208A110A120927A4158A150A1227201D
:100DF0008A110A12092724128A150A1224208A113C
:100E00000A120927A4118A150A1227208A110A1228
:100E1000092F0C308A110A12DB2FA8118A110A122D
:100E2000F027A4118A150A12272028128A110A1203
:100E3000ED2724128A150A122428A8308A110A12D2
:100E4000532F80308A110A12532F08308A110A1248
:100E5000532701308A110A125327C8308A110A1207
:100E6000C72702308A110A125327C8308A110A1282
:100E7000C72706308A110A1253270C308A110A122A
:100E80005327C8308A110A12C72FB60027168A11B5
:100E90000A12FC27360E0F398A110A126927360802
:100EA0008A110A12692FB40027128A110A12FC272C
:100EB000340E0F398A110A12692782308A110A12F8
:100EC000C72734088A110A12692782308A110A1248
:100ED000C72FB700A7168A110A12F92737088A11F7
:100EE0000A12FF27A7128A110A12F927FA308A116B
:100EF0000A12DB2F00308A110A12FF2727128A11EB
:100F00000A12FC27A7128A110A12F92700308A1543
:100F10000A12102023128A150A123320A3128A15EE
:100F20000A123028B4003408B6006430B7000A3022
:100F30008A110A12AD2FB4003408B6006430B7002D
:100F400001308A110A12AD2FB5003508B6000A30FB
:100F5000B70001308A110A12AD2FB800FF30B90076
:100F60003708BB003608BA0017308A110A12390751
:100F70000318B72F8A110A12BA0BB42F8A110A125A
:100F8000BB0BB22F8A110A12B80BB02F0800B500A4
:100F90003508B600B6088A110A12031DD22F8A112D
:100FA0000A12DA2F0A308A110A12DB27B6038A11D5
:100FB0000A12CA2F0800BB00F430BC00FC30BD0090
:100FC0008A110A123B083C07031C00343D07031832
:100FD000E62F08008A150A120A288A150A120A281A
:100FE0008A150A120A288A150A120D288A150A1269
:100FF0000D288A150A120D288A150A120D28B80024
:1010000038080F39B9002708F0393904A7008A15C4
:101010000A120D2828088700080027088600080003
:10102000A90029080F39AA002308F0392A04A300CF
:101030008A150A123D288A150A123A288A150A12B8
:101040003A288A150A123A288A150A123A288A1565
:101050000A123A288A150A123D288A150A123D28D2
:101060008A150A123D288A150A123D28A2008A15FF
:101070000A124028240867000800230866000800B8
:101080002208650008008316031308008312031367
:02109000080056
:02400E00723FFF
:00000001FF
Che potete anche scaricare qui in versione testo:
backoffice/img/fck/firmwaredatalogger.txt
Una volta scaricato il file dovrete trasferirlo nella memoria del microcontroller, usando un apposito programmatore oppure il metodo della programmazione IN-CIRCUIT, molto comoda perché evita di smontare il chip dallo zoccolo ed inserirlo nel programmatore, operazione che a lungo andare può compromettere l’integrità dei piedini.
Durante la programmazione con il metodo In-Circuit è necessario togliere i ponticelli installati sul connettore CN11 e quelli che alimentano i LED (CN10).
IL DISPLAY LCD
I collegamenti del display LCD (tipo CDL4162 ma compatibile con molti altri display) sono i seguenti :
pin 1 massa
pin 2 +5V
pin 3 regolazione contrasto (trimmer 10 da Kohm tra +5 e massa)
pin 4 RS (pin RB5 del micro)
pin 5 R/W (a massa)
pin 6 E (pin RB4 del micro)
pin 7-8-9-10 a massa
pin 11 (pin RB0 del micro)
pin12 (pin RB1 del micro)
pin 13 (pin RB2 del micro)
pin 14 (pin RB3 del micro)
Crediti :
Per la parte hardware: Eugenio Cosolo (Gorizia)
Per la parte software: Esteban Mascarella (Trento)