prosim poradte s I2C pro PIC16f877

Jaromir Subcik subcik
Středa Březen 17 12:04:40 CET 2004


> Mohl byste mi prosim nekdo poradit s komunikaci I2C mezi PICem (konkretne
> 16f877) a EEPROMkou (24LC16)?
>
> Mam k tomu ruzny materialy, vyzkousel sem kde co, ale nejak se nedari.
Proto
> jestli byste mel nekdo funkcni rutiny, nebo nejaky napady, na co si dat
> pozor, dejte mi prosim vedet. Uvitam cokoli.
> Taky mi ponekud unika vlastni adresovani ty EEPROMky. Nekde sem se docet,
ze
> je to snad 1010xxx, kde xxx vybiraji banku, ale nevim. Diky za radu

Nejprve "drobnost" na kterou uz jsem parkrat pozapomel - data jsou otevreny
kolektor = nezapomenout odpor do +5V
Dalsi "drobnost" je clock pro vycteni/poslani ACK, pri kontrole nezapomenout
prepnout DATA jako vstupni.
To jen tak na okraj, adresa je opravdu podle popisu, tedy detailneji zapis
adresy a nasledne cteni 2 bytu z teto a nasledujici adresy:

<start><1><0><1><0><b2><b1><b0><R/W=0><read_ack> zapisuje se
<a7><a6><a5><a4><a3><a2><a1><a0><read_ack><stop> nast. adresy, konec zapisu
<start><1><0><1><0><b2><b1><b0><R/W=1><read_ack> ted bude cteni
<d7><d6><d5><d4><d3><d2><d1><d0><write_ack=0> precten 1. byte z adresy
nastavene predtim, neni konec, tedy aktivne poslu ACK=0, vnitrne se
inkrementuje adresa
<d7><d6><d5><d4><d3><d2><d1><d0><write_ack=1><stop> precten dalsi byte,
vnitrne se inkrementovala adresa, takze ted ctu z nasledujici pozice, konec
cteni, tedy nedam potvrzeni=ACK=1 a nasleduje stop

Podobne pro zapis, pomuze to ?

Jarda






Další informace o konferenci Hw-list