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.

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

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Ω.
Programiranje PIC32 (8)
2015_SE233_44

