Jump to content
ELFORUM - Forumul electronistilor

intrebare I2C


vlad_2770

Recommended Posts

Am gasit pe net doua documente despre comunicatia I2C. Din nefericire se bat cap in cap. Conditia de start la unul imi spune ca pe palierul pozitiv al semnalului de clock trebuie sa existe o tranzitie din 1 in o logic al semnalului de pe date. In cea de a doua documentatie imi spune ca pe palierul de 0 logic al semnalului de clock trebuie sa fac tranzitia semnalului de date din 1 in 0 logic.Mai am o intrebare, pentru rezistentele de pull up ce valori sa folosesc. Eu am pus de 4,7 K , va merge?Daca imi poate spune si mie unde gasesc documentatia originala de la Philips pentru I2C?multumesc

Link to comment
  • Replies 15
  • Created
  • Last Reply

Top Posters In This Topic

  • vlad_2770

    8

  • Cristiano

    4

  • bogdanm

    2

  • sifor

    1

Ambele documente gasite de tine sunt corecte. Conditia de start difera de modul de transmitere al unui bit. Rezistentele de 4k7 sunt ok. Pentru a avea toate detaliile, urmeaza sfatul lui sifor si citeste documentatia de la Philips.

Link to comment

Cristiano, nu am inteles mesajul tau. Daca ambele sunt bune eu pe care sa-l folosesc? (oricum am incercat si asa si asa si nimik nu merge, receptionez ACK 1 de fiecare data).pun aici o bucatica de cod(am pus la delay valori numerice ca sa fie mai usor de citit)//conditia de start void i2c_start(void) { SDA=1; SCL=1; DelayUs(20); SDA=0; DelayUs(20); return; } unsigned char i2c_ReadAcknowledge(void) { unsigned char ack; SCL=0; TRISB = 0b10000001; (configurez pinul 7 al portului B in intrare sa pot citi ACK-ul de la TDA8245)DelayUs(40); SCL=1; DelayUs(40); ack = SDA; TRISB = 0b00000001; (reconfigurez in iesire pinul dupa ce am citi ACK-ul)return ack; }

Link to comment

Iti dai seama ce super atent sunt? ca niic macar nu am vazut ca textul aici era link. Multumesc foarte mult, cu ce mi-a dat sigur o scot la capat. Ar mai fi o nelamurire dar e mai mult de electronica. Acest circuit este alimentat la 9V parca si eu rezistentele de pull up le pun la +5 V ca eu picul il am alimentat la 5V. Acum nu stiu daca este asta un impediment. Nu m-am uitat acum in pdf sa vad ce reprezinta 0 logic si 1 logic la TDA8245.Oricum daca nu imi iese am sa ma uit si la problema asta.

Link to comment

Hmmm ... atentie, s-ar putea sa ai nevoie de conversie de nivele logice. Foarte probabil ca asta sa fie motivul pentru care nu-ti merge. E drept ca e prima data cand aud de I2C la 9V ...

Link to comment

m-am uitat in pdf si am vazut ca tensiunea de alimentare este minim 10,8 V si tipic este 12 V dar :) nivelul de HIGH pentgru comanda I2C este de 3 V , deci am scapat de conversie.

Link to comment

...not really :) Tot trebuie conversie 5V - 3V. Uite un link spre o discutie despre cum se face treaba asta in practica pentru un alt circuit (cel mai probabil merge si in cazul tau):

 

http://www.pjrc.com/tech/mp3/sta013.html

 

(cauta dupa Power Supply Issues, 5 Volt to 3 Volt Interface)

 

Verifica totusi daca merge, solutia nu este universala. Pe de alta parte ... daca i-ai dat deja 5V pe intrarile de I2C, s-ar putea sa ai surprize de cu totul alta natura :(

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines