I2C master

Pozdravljeni, imam problem sa inicjalizacijom I2C protokola na ATmega8. Imam dva mikraèa (ATmega8) spojena da je SDA spojen na SDA , i SCl na SCL. Obe linje su spojene na externi pull-up (4.7k). Linja je dugaèka 20 cm.

Poku¹avam jednog inicjalizirati kao master-a sa :

TWBR = 0xF; //POSTAVLJANJE BAUD RADE-A TWSR = 0x00;

i jednog kao slave sa:

TWAR = 0xFE; //ADRESA SLAVE MIKR. TWCR = _BV(TWEA) | _BV(TWEN) | _BV(TWIE);

I onda poku¹avam poslati podatke sa:

//!!!!!!!!!!!STSRT I2C!!!!!!!!!!!!!!!! void i2c_start(void) { TWCR = (1

Reply to
inz
Loading thread data ...

Sad gledam i linja nije duga 20 cm veæ 40 cm , da nije to malo previ¹e?

Reply to
inz

A gdje ti je funkcija za receive byte? Da li na slaveu treba neki interupt?

Reply to
Franc

Da imam na SLAVE strani recive (interupt) rutinu, ali ni¹ta...

Inaæe meni porgram na master strani ðoðe do toèke da po¹alje START bit i ostane "zarobljen" u petlji "èekalici" koja èeka pojavu TWINT bita(while (!(TWCR & (1 Da li na slaveu treba neki interupt?

mikraèa

Reply to
BojanNEWS

Rije¹eno!

Smanjio sam pull-up otpornike na 2k i sad radi!

Reply to
inz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.