60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp
60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp
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.
Re: 60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp
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ő?
Re: 60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp
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.
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.
Re: 60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp
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ó.
É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ó.
Re: 60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp
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
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
Re: 60+15 nap alatt Arduino - #3..#5 : Az I2C kicsit másképp
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...
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.