Forum Moderator
Italy
Offline
Brattain Member
Karma: 226
Posts: 16991
Don't know what I do
|
 |
« Reply #45 on: January 15, 2013, 09:34:09 am » |
Direi che 56(dec) == 70(oct) == 38(hex) == 00111000(bin). A quanto ne so, il compilatore non si cura della base in cui viene specificato un int literal (a parte l'ovvia distinzione sintattica).
E' esatto. Il "formato" di un numero serve solo a noi umani, al compilatore non gliene frega niente se il numero è in formato decimale, esadecimale o altro, perché quando il firmware verrà scritto nel micro, esso sarà trascritto in formato binario.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 77
|
 |
« Reply #46 on: January 15, 2013, 10:12:37 am » |
Come valore nulla, d'altra parte se quello è l'indirizzo non ne puoi usare un altro. Il dubbio di tonid è che il protocollo adottato nel tiny preveda che gli si debba dare l'indirizzo I2C in formato esadecimale invece che decimale, non si sa mai... Io un'altra prova che farei sarebbe quella di cambiare completamente indirizzo, per vedere se il display reagisce comunque o rimane correttamente spento
Michele ho già provato a cambiare l'indirizzo e non funziona, funziona solo con l' indirizzo 56 (0x38). Provo a riscriverlo divernamente. Vorrei precisare due cose, sul decoder il display non lampeggiava ma a me si in base al tempo di delay impostato, la seconda cosa che vorrei precisare è che il display non visualizzava immediatamente il numero del canale scelto, addirittura durante lo zapping veloce saltava la numerazione
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 77
|
 |
« Reply #47 on: January 15, 2013, 10:47:16 am » |
allora ho provato a cambiare il formato dell'indirizzo ma non cambia niente, i caratteri rimangono uguali Googlando ho trovato un polacco che ha trovato il mio stesso display da un decoder simile ed ha ricostruito il circuito originale, vi posto il link http://grylewicz.pl/mini-plytka-testowa-avr-z-odzysku/
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 76
Posts: 7539
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #48 on: January 15, 2013, 11:04:08 am » |
Il dubbio di tonid è che il protocollo adottato nel tiny preveda che gli si debba dare l'indirizzo I2C in formato esadecimale invece che decimale, non si sa mai...
Al tiny non interessa minimamente la base numerica del valore che inserisci nello sketch, lui capisce solo il binario, le varie basi sono solo un modo di rappresentazione dei numeri che usiamo noi umani, poi ci pensa il compilatore a tradurre la base numerica utilizzata in binario.
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10558
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #49 on: January 15, 2013, 11:12:44 am » |
sì, ora la cosa è chiara, l'intento era capire se stesse elaborando dati a casaccio in quanto non riconosceva correttamente il proprio indirizzo o meno, ovviamente perché non ho mai usato l'I2C, Ora è chiaro che il display lavora perché riconosce che gli stanno arrivando dei dati. Interessante la ricostruzione dello schema; ciò che intendevo dire all'inizio era se non fosse necessario aggiungere alle linee I2C delle pull-up, che in questo schema non vedo, ovviamente, perché se ben ricordo servono per il BUS e non per ogni slave, potrebbero essere importanti??? L'altra cosa è che su quel connettore è collegato il pin 18 del micro, forse serve per una qualche funzione di sincronismo, comincio a vederla dura..... e noto ancora che secondo la ricostruzione del polacco il display sarebbe pilotato in modalità ISP e non I2C, che ne pensate??
|
|
|
|
« Last Edit: January 15, 2013, 11:14:52 am by Michele Menniti »
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 76
Posts: 7539
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #50 on: January 15, 2013, 11:19:23 am » |
L'altra cosa è che su quel connettore è collegato il pin 18 del micro, forse serve per una qualche funzione di sincronismo, comincio a vederla dura.....
Sul connettore sono riportati anche i segnali per la programmazione del micro, ovvero Reset, MISO e MOSI. In compenso mancano le resistenze di pull up per la I2C, sarebbe il caso di aggiungerle, due r da 3.3k vanno bene.
|
|
|
|
|
Logged
|
|
|
|
|
Cagliari
Offline
Faraday Member
Karma: 51
Posts: 3179
|
 |
« Reply #51 on: January 15, 2013, 11:23:13 am » |
Sul 2313 i segnali SDA e SCL viaggiano sugli stessi pin del MOSI e SCK dell SPI. Ma non avendo collegato il pin MISO la vedo difficile che possa dialogare col protocollo SPI. Per me è I2C. Non ha neanche l'oscillatore esterno quindi usa quello interno.
Se il decoder fosse ancora funzionante, con un analizzatore di stati logici si potrebbe risalire al protocollo.
|
|
|
|
« Last Edit: January 15, 2013, 11:28:26 am by PaoloP »
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 76
Posts: 7539
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #52 on: January 15, 2013, 11:24:43 am » |
e noto ancora che secondo la ricostruzione del polacco il display sarebbe pilotato in modalità ISP e non I2C, che ne pensate??
Non è possibile per i seguenti motivi: Il display è collegato solo con cinque contatti al decoder, non bastano per la SPI. Il display interrogato con I2Cscanner risponde correttamente e viene rilevato il suo address, se era SPI non ci sarebbe stata nessuna risposta. Su i pin del connettore collegati al decoder arrivano solo le alimentazione, una pull up, SDA e SCL, impossibile che sia collegato come SPI.
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10558
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #53 on: January 15, 2013, 12:11:54 pm » |
Bene, quindi è confermato che si sta lavorando in I2C e che BISOGNA aggiungere due R da 3k3 in funziona di pull-up suelle due linee SDA-SCL. Vituzzu, prendi nota e metti le R  vediamo se cambia qualcosa. Domanda per gli abili: se vito invia 4 byte consecutivi 0x00 eliminando il delay (che potrebbe disturbare l'interpretazione o il sincronismo della lettura), secondo voi non dovrebbe ottenere sempre 0000 sul display? Se così non è che tipo di codifica potrebbe essere stata adottata?
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 77
|
 |
« Reply #55 on: January 15, 2013, 12:23:24 pm » |
messe 2 resistenze da 3,3kohm tra 5v e SDA e SCL recuperate dal cimitero, continua ad emettere simboli incomprensibili. ho anche provato a mandare 4 byte per fargli vivualizzare 0000 ma da sempre simboli incomprensibili che però cambiano forma
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10558
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #56 on: January 15, 2013, 12:31:58 pm » |
Vito, la risposta di Paolo non lascia speranze, secondo me, fatte le dovute prove ormai appare ovvio che la casualità di ciò che mostra il display significa che esiste un protocollo di comunicazione che è impossibile da estrapolare. A questo punto, visto che hai tutta la connessione ISP sul connettore (considerando anche i pin inutilizzati), il 2313 puoi facilmente riprogrammarlo per gestire il multiplexer con una modalità ed un protocollo noto, a quel punto sai esattamente cosa mandargli e cosa far uscire quindi sul display.
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 77
|
 |
« Reply #58 on: January 15, 2013, 01:12:59 pm » |
allora per riprogrammarlo, utilizzando anche i pin non utilizzati, devo collegare:
attini2313 arduino uno il pin MISO(pin18) al pin12 il pin reset(pin1) al pin 10 il pin MOSI(pin17) al pin11 il pin SCK(pin19) al pin 13
ed alimentare il tutto. avrei in mente di fargli visualizzare l'ora impostando l'ora direttamente da sketch, per fare questo gli devo scrivere anche il bootloader??
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10558
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #59 on: January 15, 2013, 01:36:54 pm » |
Paolo, penso non valga davvero la pena.......
Vito, non ricordo i collegamenti, segui la mia Guida o quella di Leo, e controlla se i segnali sono corretti, certamente sono quei 4, devi solo verificare se sono giuste le corrispondenze.
Ti serve ovviamente il core Tiny per la versione di IDE che stai usando
Non ti serve affatto un bootloader visto che programmi via ISP, scrivi il firmware, glielo carichi e funziona, ma se vuoi trasformarlo in un orologio stand-alone dovresti impostare la frequenza a 1MHz oscillatore interno ed aggiungere un quarzo da orologi (32768kHz), però con 2k di flash non vai da nessuna parte. Penso che, come ti ho detto prima, tu ti debba fare una normale gestione multiplexer dei display ed implementare un semplice protocollo (io sarei per la lettura dei 4 byte preceduta da un byte fisso di start e seguita da uno fisso di stop), poi trovi il pin che gestisce il dp del secondo display e lo colleghi a 5V tramite una R da 100ohm, così distingui le prime due cifre dalle seconde due (ore e minuti). Insomma tira fuori l'idea e si vede cosa si può fare...
|
|
|
|
|
Logged
|
|
|
|
|
|