0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjeProgramiranje PIC32 (8)

    Programiranje PIC32 (8)

    32-bitni mikrokontrolerji prinašajo v svetova elektrotehnike in računalništva povsem nove dimenzije. Hitrost, odzivnost, sorazmerno veliko pomnilnika in strojno podprto digitalno procesiranje signalov omogočajo, da vse več analognih komponent nadomestimo s programsko logiko. Hkrati lahko izdelamo kakovostnejše rešitve.

    Slike niV preteklem nadaljevanju smo predstavili delovanje vmesnika SPI/ I2S, s pomočjo katerega PIC32 zaporedno komunicira s številnim zunanjimi enotami, kot so: D/A pretvorniki, radijski oddajniki-sprejemniki (npt. HopeRF RFM69CW), kartice SD itn. Videli smo, da lahko PIC32 s pomočjo vgrajenih 32-bitnega mikroprocesorja in specializiranih funkcijskih enot doseže veliko hitrost in zanesljivost prenosa podatkov. V drugem delu članka smo se lotili problemov snemanja in predvajanja zvoka s PIC32, s katerimi se doslej še nismo srečali.

    Tokrat bomo v teoretičnem delu spoznali strojno in programsko podpro za vodilo I2C, v praktičnem delu članka bomo pokazali, kako se PIC32 poveže s temperaturnim tipalom ADT7410. Dokončali bomo tudi programsko opremo za predvajalnik glasbenih datotek na osnovi dveh vodil SPI, ki smo ga predstavili v preteklem nadaljevanju.

    Zgradba in delovanje

    Princip delovanja I2C

    Slike niI2C, Inter-Integrated Circuit, je protokol za komunikacijo med integriranimi vezji. PIC32 ima vgrajenih 4 ali 5 funkcijskih enot I2C, odvisno od različice. Zato omogoča vzpostavitev prav tolikšnega števila neodvisnih vodil, preko katerih lahko povežemo različne naprave. I2C ni namenjen 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.

    Vse 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 komunikaciji 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 2,4 kΩ; pri tokovno manj zmogljivih napravah I2C le do 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Ω.

    Celotni članek

    Programiranje PIC32 (8)

    2015_SE233_44