60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Válasz küldése
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp

Hozzászólás Szerző: Robert »

A 60+15 nap alatt Arduino leckesorozat TWIbusz, TWI kicsit másképp és TWI folytatás kérdései/házi feladatainak megoldásai.
nagylevin
Újonc
Újonc
Hozzászólások: 7
Csatlakozott: 2015. március 29. vasárnap, 16:20

Re: 60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp

Hozzászólás Szerző: nagylevin »

Miért van szükség a felhúzó ellenállásra a kommunikációs vonalakon? Az arduino nem teszi meg magától? Sajnos az elektromos deljjel folytatott tanulmányaim nem terjednek idáig. Illetve , ha már ellenállunk, mennyire? A ledeknél használatos mérték ide is megfelelő?
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: 60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp

Hozzászólás Szerző: SzLacus »

Ahhoz, hogy a kommunikáció jól menjen gondoskodni kell arról, hogy a jelek formája (négyszög jel fel és lefutó éle) egy adott tűrésen belül hasonlítson az ideálisra. A kommunikációs vonalnak van egy kapacitása, amit lefele az eszközök aktívan kezelnek. De amikor elengedik a vonalat, akkor a felfutó élt a busz kapacitás és a felhúzó ellenállás alakítja ki. A proci belső felhúzója az 10K-100K tartományban van, a kapacitás az kiépítés függő, de azt biztos, hogy minnél nagyobb a kapacitás, és minnél nagyobb a felhúzó, annál lassabb lesz felfutás. A kommunikáció szabványa pedig előír egy adott maximumot, hogy a kommunikáció megbízható legyen. A különböző eszközök adatlapjában remek diagramok vannak amiből ki lehet lesni a buszkapacitás függvényében a felhúzó javasolt értékét.
Mondhatjuk, hogy bármekkora a kapacitás, majd mi egy alacsony ellenállás értékkel hamar feltöltjük, és meg van oldva. Ez sem teljesen jó irány, mert a lehúzó elemeknek el kell viselniük a lehúzáskor azt az áramot, amit ezzel át kényszerítesz rajta.
A gyakorlatban 2k2-4K7 tartomány szokott használható lenni. Esetleg, de tényleg csak ritkán, ha meg akarjuk erőszakolni a túl nagy kapacitású vonalunkat le lehet menni 1k5-ig, de ez már nem annyira barátságos.
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: 60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp

Hozzászólás Szerző: csabeszq »

Viszont breadboard-on szoktam használni a belső pull-up-ot és megy is.

Értelemszerűen amikor stabil, jól működő panelt építesz, oda kell a felhúzó, de amikor összeütsz ezt azt, akkor lehagyható.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: 60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp

Hozzászólás Szerző: Robert »

Van olyan megoldás, amikor elég a belső is. Azonban itt is igaz, hogy ez gyenge felhúzás csak, és a külső zavarok megzavarhatják a kommunikációt.
Az okokról és a háttérről:
http://tavir.hu/konyv-tipushiba-3-pullup-ellenallas

és

http://tavir.hu/cikk-a-vagy-nema
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: 60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp

Hozzászólás Szerző: Robert »

Egy kis leírás az I2C hátteréről...

A busz kapacitása van limitálva (400pF), és ez a felhúzóval egy késleltető RC tagot ad. Így a négyszögjel erős felfutása laposodik...
A 15. oldal környékén vannak a beszédes ábrák...
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Válasz küldése