0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjeOsnovna zgradba in delovanje PIC18 (4)

    Osnovna zgradba in delovanje PIC18 (4)

    V preteklih nadaljevanjih smo spoznali osnovno zgradbo in delovanje ter uporabo vhodno-izhodnih vrat, enoto PPS (angl. Peripheral Pin Select), A/D pretvornik, generiranje in merjenje signalov z enoto ECCP, uro realnega časa in vzporedno vodilo. Tokrat se bomo lotili industrijskega zaporednega vodila I2C, merjenja temperature s 16-bitnim digitalnim tipalom Analog Devices ADT7410 in delovanja prekinitev.

    Zaporedno vodilo I2C, merjenje temperature in prekinitve

    Slike niMikrokontroler je nepogrešljiv sestavni del številnih majhnih, a zelo uporabnih domačih naprav, kot so: vremenska postaja, elektronski termostat, elektronska varuška, … Za vsak končni izdelek bomo nemalokrat odšteli veliko več, kot če se projekta lotimo sami.

    Zaporedno vodilo I2C

    I2C je kratica za Inter-Integrated Circuit, kar v slovenskem prevodu pomeni »med integriranimi vezji«. Zaporedno vodilo I2C je preprostejše od USB in deluje pri nižjih hitrostih prenosa podatkov. Ni namenjeno prenosu velikih količin podatkov, temveč izmenjavi meritev in oddaji nadzornih podatkov in nastavitev med integriranimi vezji, ki so del elektronske naprave ali sistema za elektronsko upravljanje stroja ali vozila.

    Slike niVse naprave, priključene na vodilo I2C, oziroma na podatkovni vod, SDA (zaporedni podatkovni vod, angl. serial data line), in taktni vod, SCL (zaporedni taktni vod, angl. serial clock line), morajo delovati v načinu »odprti kolektor«, kar rešuje problem električne preobremenitve v primeru kolizij med več gospodarji vodila, ali med gospodarji in sužnji, ki zaradi morebitnih napak v programski kodi ne delujejo usklajeno. Tipična skupna vrednost uporov iz SDA na napajalni vod in iz SCL na napajalni vod je 10 kΩ. V primeru, ko je na vodilo priključenih več naprav, lahko pri počasni komunikacij uporabimo tudi samo dva za vse naprave, pri hitrejši komunikaciji pa je dobro, če ima vsaka naprava svoja upora. Na primer, če priključimo dve napravi to pomeni, da dodamo k vsaki napravi upora po 20 kΩ. Tako bo skupna upornost na vsakem vodu ostala enaka. V primeru težav, lahko skupno upornost znižamo, vendar ne pod 4,7 kΩ. Pri tem je potrebno paziti, da ne presežemo vrhnjega toka, ki ga lahko »požira« gospodar vodila. Obenem je smiselno vrednosti uporov določiti tako, da je njihova skupna upornost čim višja zaradi manjše porabe energije, vodilo pa še vedno optimalno deluje. Za naš primer, ko imamo samo eno napravo, smo izbrali upora 10 kΩ.

    Preko vsakega od priključkov I2C se lahko mikrokontroler poveže z do 255 različnimi napravami, če uporablja 10-bitno naslavljanje, ali z do 127 različnimi napravami, če uporablja 7-bitno naslavljanje. Vsekakor je potrebno opozoriti, da je dejansko število naprav na vodilu odvisno tudi od tega, kakšen del naslova naprave na vodilu dekodirajo. Če neprava ne dekodira celotnega naslova, se lahko preslika na več naslovov, s čemer za toliko zmanjša število razpoložljivih naslovov, ter od električnih lastnosti vodila in frekvence ure vodila.

    Standardizirane frekvence vodila I2C so: 100 kHz, 400 kHz in 3,4 MHz. V kolikor to naprave na vodilu dopuščajo, lahko Microchipovi krmilnik generirajo taktni signal tudi pri poljubni drugi frekvenci. Slednje velja tudi za temperaturna tipala ADT7410, ki jih bomo v nadaljevanju uporabili za naš primer. Omenimo še, da temperaturno tipalo ADT7410 zahteva, da je čas prehoda iz logičnega stanja 0 v 1 (vzpon) ali obratno (upad) manjši od 0,3 µs. To pomeni, da moramo uporabiti mikrokontroler, ki ima dovolj hitro tranzistorsko logiko, sicer se utegne zgoditi, da podatkov nikakor ne bomo mogli prenašati.

    Celotni članek

    Osnovna zgradba in delovanje PIC18 (4)

    2013_SE213_38