I2C

Andras Tantos andras_tantos at yahoo.com
Mon Mar 28 17:26:12 CEST 2005


> Sziasztok!
>
> I2C buszon az SDA, SCL labat az I2C masternek meg lehet hajtani TP jellel,
> OC helyett?!
> Tudtommal nem, mert a slave barmikor lahuzhatja az SDA-t, vagy az SCL-t ha
> foglalt stb.
> (Nemtom melyiket, de valamelyiket biztos)
>
> Tudja ezt valaki pontosan, hogy is van?!
> Sose hajtottam meg TP jellel, igy nem foglalkoztam ezzel a dologgal 
> nagyon.
>
> Arnold

Hali!

Elvben egyik jelet se lehet TP kimenettel hajtani. Az SDA jelet a slave 
huzogatja iraskor az ACK bitkor, olvasaskor meg az adatbitek alatt. Persze, 
ha ilyenkor bemenetre kapcsolod a labat a masteren, akkor OK, de akkor meg 
lehetne akar OC is: 0: kimenet es 0-ban, 1: bemenet, es a felhuzo ellenallas 
gondoskodik a magas szintrol. Az SCL jelet normalis esetben a master hajtja, 
de a slave, ha idore van szuksege, 0-ban tarthatja. Ezt hivjak 
clock-strechingnek. Ha ezt a funkciot nem hasznalod (azaz egyik slave se 
hasznalja a buszodon), es persze csak egy master-ed van, akkor lehet az 
SCL-t TP kimenettel hajtani.

Az OC hajtas nagyon fontos ha tobb master vagy slave kozott akarsz 
busz-arbitraciot csinalni. Ekkor egyszerre tobb egyseg vezerli az SDA 
es/vagy SCL labakat, es a huzalozott vagy kapcsolat elemi resze a 
protokollnak.

Nem tudom, miert kell ez neked, de ha busz sebesseg (kapacitas) gondjaid 
vannak, akkor el lehet kovetni a kovetkezot: Amikor 1-be, vagy bemenetbe 
akarod kapcsolni az SDA jelet, akkor egy pillanatra 1-be huzod a labat, es 
csak utana engeded el. Ezzel nagyon gyorsan at tudod tolteni a 
busz-kapacitast, de ha valaki mas 0-ba akarja huzni a vonalat, egy 
pillanattal kesobb megteheti. Leven ez zommel olyankor fordul elo, amikor az 
SDA jel erteke erdektelen (SCL = 0), ezert ez nem okoz protokoll gondot. Ha 
csak egy master van a buszon, es nem hasznalsz clock-strechinget, akkor az 
SCL jelet tudod TP labbal hajtani, es a start es stop biteket is csak egy 
egyseg generalhatja.

Udv,
Tantos Andras




More information about the Elektro mailing list