tgb99 Inserito: 18 novembre 2011 Segnala Share Inserito: 18 novembre 2011 Buon giorno a tuttiqualcuno sa dirmi come posso fare per conoscere l'ID access di un componente per la comunicazione I2C?Ho un integrato qtouch AT42QT1070 che mi consente di creare una tastiera a 7 tasti touch sensor ed in uscita mi da i relativi codici su bus I2C. Il progetto è quello di interpretare (leggere) l'uscita di questo AT con un Pic 16f877a.Ho provato vari codici inseriti in daasheet, ma senza risultato. Mi è venuto il dubbio che foss sbagliato l'ID access e quindi il componente non risponde.Grazie in anticipo Link al commento Condividi su altri siti More sharing options...
kappa47 Inserita: 18 novembre 2011 Segnala Share Inserita: 18 novembre 2011 Dovresti dare maggiori informazioni.Ad esempio: a cosa ti serve sapere "ID access" ? (suppongo che tu intenda il Chip ID, major e minor)Tanto non e' modificabile...Comunque, dato per scontato che l'hardware sia funzionante, la prima cosa da verificare e' se hai l'acknowledge dopo aver inviatoSTART, (indirizzo dispositivo << 1) + write.Se manca devi tornare a verificare l'hardware.Non superare i 400 KHz di clock.Ciao. Link al commento Condividi su altri siti More sharing options...
tgb99 Inserita: 18 novembre 2011 Autore Segnala Share Inserita: 18 novembre 2011 Buona sera e grazie per la risposta.Sicuramente l'harware è funzionante perchè se uso il qt1070 in modalita stand alone (quindi senza i2c) funziona ameraviglia.IL chip ID (non modificabile) mi serve in quanto senza questo "indirizzo" il qt1070 non potrà darmi l'acknowledge e quindi non potro leggere lo stato del chip.Per quanto riguarda la frequenza sono sotto i 400 Khz.La comodità di usare i2c con questo dispositivo sta nel fatto che con solo 2 fili ptri usare tastiere da "x" tasti senza nessun problema impegnanod appunto solo due fili pel PIC che eleborerà i segnali.Inoltre con questo touch switch si possono costruire tastiere molto personlizzate senza alcun vincolo legato ad harware quale PCB o cablaggi. I tasti sono a sfioramento: in effetti la parte sensibili non si tocca neanche, basta avvicinarsi a 5 mm e il dispositivo commuta l'uscita relativa al tasto "premuto".Spero di riuscire in questo intento (usare i2c) perchè il qt1070 merita veramente di essere sfruttato in questo modo.Grazie Link al commento Condividi su altri siti More sharing options...
kappa47 Inserita: 18 novembre 2011 Segnala Share Inserita: 18 novembre 2011 Correggimi se ho capito male.Forse confondi il Chip ID (che e' un dato interno al QT1070, infatti e' allocato all'indirizzo 0x00e mi sembra che valga 0x2e) con l'indirizzo I2C del dispositivo (tutti i componendi che siinterfacciano su questo bus hanno un indirizzo definito dal costruttore) e vale 0x1b.Ciao. Link al commento Condividi su altri siti More sharing options...
tgb99 Inserita: 18 novembre 2011 Autore Segnala Share Inserita: 18 novembre 2011 Scusami Kappa 47forse, anzi sicuramente, ho un po' di confusione in testa:tu mi stai dicendo che per leggere le informazioni dal qt1070 devo inviare, tramite bus, start-indirizzo i2c(ox1b)-bit1(lettura)......vuol dire che questo dispositivo ha un indirizzo i2c = 0x1b ed è uguale per tutti?Se è così come posso distingure più dispositivi collegati allo stesso bus?O forse vuol dire che l'indirizzo i2c del dispositivo si trova nella locazione 0x1b?Sto diventando matto........... a questo punto metto in dubbio il funzionamento del mio harware........ devo verificare con un nuovo qt1070!grazieCiao Link al commento Condividi su altri siti More sharing options...
kappa47 Inserita: 19 novembre 2011 Segnala Share Inserita: 19 novembre 2011 L'indizizzo del dispositivo e' 0x1bNon puoi mettere due dispositivi uguali sullo stesso bus I2C (ad esempio due qt1070).Esistono dei componenti che si interfacciano su questo bus (memorie, DAC) che hanno la possibilita',tramite selezione hardware (ponticelli), di stabibire il loro indirizzo o hanno un pin di chip selectper cui e' possibile selezionare uno o l'atro.Solo in questo caso e' possibile collegarli fisicamente.Quello che devi fare tu, come hai detto, inviare la sequenza di start e dopo l'indirizzo + write o read1) condizione di partenza: SCL alto, SDA alto2) SDA basso3) attesa di qualche microsecondo(fine sequenza di start)4) invio del byte dell'indirizzo (ovviamente shiftato di 1 per fare "posto" al bit di write o read) quindi 0x36 per scrivere o 0x37 per leggere I dati che invii (SDA) devono essere stabili per tutto il tempo di SCL alto.4) controllare se hai acknowledge (da leggere sul 9^ impulso di clock) Deve essere basso ! Ovviamente devi aver messo in input il segnale SDA prima di generare il 9^ clock.Ciao. Link al commento Condividi su altri siti More sharing options...
tgb99 Inserita: 19 novembre 2011 Autore Segnala Share Inserita: 19 novembre 2011 Ciao Kappa47ti ringrazio ancora per l'aiuto che mi stai dando.Grazie ai tuoi consigli di ieri, stamattina sono riuscito a leggere il qt1070 tramite i2c.In effetti quello che non riuscivo a capire è come era possibile inserire più qt1070 sullo stesso bus se non era possiblile cambiare l'indirizzo i2c di ciascun componente.Mi hai appena risposto: ora è tutto chiaro!!!Per poter avere più tasti a disposizine devo necessariamente usare un integrato con più ingressi e interfacciarlo con i2c ad un pic.Ti ringrazio infinitamente, mi hai chiarito alcune cose che davo per scontato ed erano errate!!!!Buon fine settimana Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora