I2C & RTC

I²C


Varsin yleinen kulutuselektroniikan sovelluksissa tunnettu sarjamuotoinen väylä. Tämä väylä on saanut alkunsa jo 80-luvulta ja se on Philipsin (nykyisin NXP) kehittelemä. Atmel on kehittänyt hieman vastavan TWI (Two Wire Interface) väylän, joka on sähköisesti yhteensopiva, mutta ei protokollaltaan täysin yhteensopiva. I²C-väylässä on sarjamuotoinen data- ja kellolinja. Väylään kiinnitetyt komponentit on osoitettavissa yksilöivällä osoitteella. Väylä toimii isäntä–orja-periaatteella.

Arduino tukee I2C ja myös TWI väylää. Arduino IDE:ssä on valmiina Wire kirjasto, jonka avulla kykenee kommunikoimaan I2C ja myös TWI väylän komponenttien kanssa. Yleisiä sovelluskohteita ovat reaaliaika kello (RTC) tai I2C väylän anturit. I2C data väylää voidaan myös soveltaa LCD näytön ohjaamiseen


RTC 


Reaaliajan ylläpitämiseen tarvitaan erillinen kellopiiri (RTC). Ominaisuus on välttämätön, mikäli laitteiden välinen synkronointi on kriittinen osa toiminnallisuutta tai esim. kirjausrutiini vaatii tarkan tiedon ajasta. Arduinolle on saatavilla valmiita kellopiiri moduuleja I2C väylään. Eräs yleisimmistä piirisarjoista on DS1307. Lisäksi moduuleissa on pieni I2C EEPROM tallannustila esim. ajan tallentamiseen (esim. 24C32) ja varmennusparisto.

Alla esimerkkikytkentä Uno alustalle. Moduulissa extrana DS18B20 lämpöanturi. Muutamia toteutus esimerkkejä saatavilla Hobbyist blogista.


Blogin demossa "Raportoiva Arduino Sääasema" sovelletaan käytäntöön RTC moduulin aikatietoja.




Alla esimerkki DS1307 kortin alustuksesta ja perustoiminnallisuus ajan lukemisesta Wire ajurin avulla DS1307 kortilta.

Ei kommentteja:

Lähetä kommentti