l'atmel display recuperato dal decoder

quest'estate ho smontato un decoder che si era rotto, al suo interno ho trovato un display composto da 4 bcd 7 segmenti controllati da un attiny2313. nella parte bassa della scheda ci sono 8 pin out a cui sono collegati 5 fili e facendo delle verifiche con il tester ho visto che c'è un 5volt, massa, slc tramite resistenza da 100ohm, sda tramite una resistenza da 100ohm e reset con un condensatore 10uF e una resistenza da circa 10kohm. ora la domanda è, che ci potrei fare?? allego 2 foto che ho fatto al display

vitoos:
quest'estate ho smontato un decoder che si era rotto, al suo interno ho trovato un display composto da 4 bcd 7 segmenti controllati da un attiny2313. nella parte bassa della scheda ci sono 8 pin out a cui sono collegati 5 fili e facendo delle verifiche con il tester ho visto che c'è un 5volt, massa, slc tramite resistenza da 100ohm, sda tramite una resistenza da 100ohm e reset con un condensatore 10uF e una resistenza da circa 10kohm. ora la domanda è, che ci potrei fare?? allego 2 foto che ho fatto al display

Potresti riprogrammare l'attiny per avere una comunicazione seriale con un eventuale arduino che lo controlla via seriale

certamente non puoi farci il caffé, ma visto che è già bell'e pronto per la comunicazione seriale (contrariamente a quello che dice cecé), puoi provare a collegarlo ad un altro micro, p.es. ad un Arduino (pin A4-A5) e mandargli qualche "cifra" per vedere come reagisce, il RESET lo devi usare con un impulso tipo LOW.

per riprogrammarlo devo collegare i pin tx e rx dell'attiny ad arduino giusto?? questi due pin sono collegati al display

se stai chiedendo a cecé ti risponde lui, personalmente ti ho consgliato di provare ad usarlo così com'è, potrebbe funzionare senza toccare l'attiny...

michele per reset cosa devo fare?? devo metterlo a massa?? facciamo prima come dici te, così vediamo come si comporta! sul decoder visualizzava il numero dei canale e qualche scritta come "SCAN" durante la ricerca dei canali

vitoos:
facciamo prima come dici te, così vediamo come si comporta! sul decoder visualizzava il numero dei canale e qualche scritta come

Se è realmente controllato tramite I2C, molto probabile, non ottieni nulla inviando valori a casaccio, l'I2C ha un ben preciso protocollo che come prima cosa richiede di conoscere l'address del device, questa cosa puoi facilmente verificarla utilizzando lo sketch I2Cscanner che ti dice l'address di tutti i device connessi sul bus.
Una volta che hai trovato l'address allora puoi provare ad inviare dei byte al display per vedere come reagisce, tieni presente che quasi sicuramente richiede l'invio di almeno due byte codificati come bcd (= 4 cifre display).

Se visualizza sia numeri che lettere si può provare con la codifica standard ascii, mandano un byte per il controllo di ogni signola cifra.
Oppure come dici tu, usare 4 bit per ogni cifra, per usarlo solo come numerico.
Ovvio che bisogna tentare di interpretare il protocollo implementato.
Vito, devi cercare uno sketch che preveda la comunicazione I2C e come dice Astro, uno scanner (software) che legga l'identificativo del display, che dovrai inserire nella comunicazione sul bus I2C, in modo che sia ben chiaro che il destinatario dei dati è lui.
Il reset per ora lo puoi lasciare NON collegato.

allora appena collegato il tutto come da foto, caricato su arduino i2c_scanner e dal monitor seriale mi dice "I2C divice found at address 0x38 ! done". quindi l'indirizzo del display è "0x38". Il filo viola è slc sul display e quello grigiom sda sul display. avete per caso uno sketch per provare a far visualizzare qualcosa??

cerca sul playground, in fondo ti basta una semplice riga di invio dati in questo formato

vitoos:
allora appena collegato il tutto come da foto, caricato su arduino i2c_scanner e dal monitor seriale mi dice "I2C divice found at address 0x38 ! done". quindi l'indirizzo del display è "0x38".

Il fatto che I2Cscanner ha trovato l'address ti conferma che si tratta di un device I2C, adesso devi solo provare ad inviargli dati scrivendo sulla I2C utilizzando quell'address.
Io come prima prova gli manderei due byte contenenti i valori 0x01 0x02, se il display funziona come penso dovrebbe visualizzare "0102".

lui vorrebbe la sintassi per l'invio, credo.... :smiley:

anche se sarebbe bello avere una sintassi provo a guardare nel playground per vedere se trovo qualcosa

#include <Wire.h>

byte val = 0;

void setup()
{
Wire.begin(); // join i2c bus
}

void loop()
{
Wire.beginTransmission(56); // transmit to device #44 (0x2c)
// device address is specified in datasheet
Wire.write(val); // sends value byte
Wire.endTransmission(); // stop transmitting

val++; // increment value
if(val == 64) // if reached 64th position (max)
{
val = 0; // start over from lowest value
}
delay(5);
}

allora ho preso questo sketch dalla playground e guardando una tabella ascii presa su internet ho capito che per comunicare con il display dovevo mettere "56" per avere l'indirizzo "0x38" del display. ora il display si accende ed emette valori a casaccio che cambiano in continuazione. il pin reset è staccato. vi posto un'altra foto

In base a quello che appare direi che è molto probabile che vengono controllati i singoli segmenti di ogni cifra in funzione dei bit del valore che invii, ovvero un byte è composto da 8 bit e 7 di questi corrispondono ai segmenti del display, se c'è anche il punto è legato all'ottavo bit.
Se invii una serie di valori dove metti a 1 solo un bit per volta per ogni byte in un attimo hai la codifica, usa il formato binario "0b00000000" mettendo a 1 solo un bit per volta.
Devi inviare 4 byte per volta, uno per ogni cifra del display, e non singoli byte per ogni invio.

Astro, rileggi bene la "presentazione" del suo display, non sono sicuro che le due linee vadano usate così, potrebbe essere l'origine del fatto che mostra cose a casaccio

Che il display lavori in I2C mi pare una cosa assodata, altrimenti lo sketch I2Cscanner non trovava l'address e inviando dati in sequenza non appariva nulla.
Ora tocca solo capire la logica di funzionamento, da come appaiono i digit ritengo molto probabile che sia quella che ho illustrato nel post precedente.

astrobeed:

[quote author=Michele Menniti link=topic=142688.msg1071772#msg1071772 date=1358190488]
Astro, rileggi bene la "presentazione" del suo display, non sono sicuro che le due linee vadano usate così, potrebbe essere l'origine del fatto che mostra cose a casaccio

Che il display lavori in I2C mi pare una cosa assodata, altrimenti lo sketch I2Cscanner non trovava l'address e inviando dati in sequenza non appariva nulla.
Ora tocca solo capire la logica di funzionamento, da come appaiono i digit ritengo molto probabile che sia quella che ho illustrato nel post precedente.

[/quote]

e ma uno sketch per verificare quello che dici??
io ho provato a modificare quello che ho provato ma accetta solo numeri reali

vitoos:
e ma uno sketch per verificare quello che dici??

http://arduino.cc/forum/index.php/topic,91560.0.html , in particolare i punti 6 e 8.

vitoos:

astrobeed:

[quote author=Michele Menniti link=topic=142688.msg1071772#msg1071772 date=1358190488]
Astro, rileggi bene la "presentazione" del suo display, non sono sicuro che le due linee vadano usate così, potrebbe essere l'origine del fatto che mostra cose a casaccio

Che il display lavori in I2C mi pare una cosa assodata, altrimenti lo sketch I2Cscanner non trovava l'address e inviando dati in sequenza non appariva nulla.
Ora tocca solo capire la logica di funzionamento, da come appaiono i digit ritengo molto probabile che sia quella che ho illustrato nel post precedente.

e ma uno sketch per verificare quello che dici??
io ho provato a modificare quello che ho provato ma accetta solo numeri reali
[/quote]
prova a mandare il valore tutto 0 e vedi come risponde, devi per forza andare a tentativi, per capire se c'è una logica nella risposta del display.