Zbernica i2c: hodiny RTC.: Rozdiel medzi revíziami
Zo stránky SensorWiki
Riadok 47: | Riadok 47: | ||
===Zbernica I2C=== | ===Zbernica I2C=== | ||
Skratka pre zbernicu I2C je IIC(Inter-Integrated Circuit). Protokol a zbernicu vyvinula firma Philips Semiconductor pôvodne pre svoje TV príjímače v roku 1980 za účelom komunikácie medzi IO na jednej DPS pri použití minimálneho množstva pinov. | Skratka pre zbernicu I2C je IIC(Inter-Integrated Circuit). Protokol a zbernicu vyvinula firma Philips Semiconductor pôvodne pre svoje TV príjímače v roku 1980 za účelom komunikácie medzi IO na jednej DPS pri použití minimálneho množstva pinov. | ||
[[Súbor:Topologia1_zbernice_i2c.png|400px|right]] | |||
Špecifikácia zbernice I2C je založená na jednoduchých hardvérových štandardoch (nie sú potrebné špeciálne konektory alebo kabeláž) a rovnako jednoduchého softvérového štandardu pre komunikačný protokol. Obvody, ktoré používajú I2C protokol zahŕňajú pamäte EEPROM a RAM, senzory teploty, expandéry portov, '''hodiny reálneho času''', atď. I2C sa tiež používa ako riadiaca zbernica v obvodoch spracovania signálov, ktoré majú oddelenú dátovú zbernicu, napr. RF tunery, video dekódery a enkódery a audio procesory a kodeky. | |||
Zbernica I2C môže pracovať pri troch prenosových rýchlostiach: | Zbernica I2C môže pracovať pri troch prenosových rýchlostiach: | ||
Riadok 56: | Riadok 57: | ||
Vzdialenosť komunikujúcich zariadení je limitovaná z dôvodu udržania komunikačnej rýchlosti na 4m. Max. kapacita prenosového vedenia je približne 400pF. | Vzdialenosť komunikujúcich zariadení je limitovaná z dôvodu udržania komunikačnej rýchlosti na 4m. Max. kapacita prenosového vedenia je približne 400pF. | ||
Zbernica používa dva vodiče – '''Serial Data (SDA)''' a '''Serial Clock (SCL)'''. Je to multimasterová zbernica s polovičným duplexom. Každý IO na zbernici je identifikovaný svojou adresou, ktorá je v rámci siete jedinečná, preto zbernica I2C nevyžaduje signál CS (chip select) ani ďalšiu logiku. Linky SDA aj SCL sú pripojené na napájacie napätie pomocou tzv. pullup rezistorov. | Zbernica používa dva vodiče – '''Serial Data (SDA)''' a '''Serial Clock (SCL)'''. Je to multimasterová zbernica s polovičným duplexom. Každý IO na zbernici je identifikovaný svojou adresou, ktorá je v rámci siete jedinečná, preto zbernica I2C nevyžaduje signál CS (chip select) ani ďalšiu logiku. Linky SDA aj SCL sú pripojené na napájacie napätie pomocou tzv. pullup rezistorov. Čím je vyššia komunikačná rýchlosť, tým musia byť pull-up odpory menšie. Pre základnú rýchlosť 100 kHz postačujú odpory 4,7kOhm. | ||
'''Postupnosť pri prenose dát:''' | '''Postupnosť pri prenose dát:''' |
Verzia z 20:00, 12. január 2015
Autori: | Pavol Lukáč, Ivan Jankovič | |
Študijný odbor: | Aplikovaná mechatronika | 2. Ing. (2014/2015) |
Zadanie
- Zobrazte na LCD displeji reálny čas z RTC obvodu PCF8583. Nastavovanie a prepínanie údaja tlačidlami.
Literatúra
Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.:
- PCF8583. Datasheet (nxp.com).
- Ing. Štefan Chamraz, PhD.:RTC - hodiny reálneho času.
- Mitchell Kahn: Programming the i2c interface. Dr. Dobb's Journal, June 1992.
- I2C zbernica. (kiwiki.info)
- Example using the two-wire interface (TWI). AVRlibc demo projects.
Analýza
PCF8583
Vlastnosti a výhody:
- Základ tvorí CMOS RAM 256 B (2048b)
- napájacie napätie i2c zbernice 2,5 V až 6 V
- 240 x 8 bitová nízko-napäťová pamäť
- 8 bitová pamäť pre (hodiny, kalendár)
- 8 bitová pamäť pre (alarm)
- operačný prúd (pri f(scl)=0 Hz) maximálne 50 uA
- funkcia hodín so štvorročným kalendárom
- časovač s alarmom, indikácia pretečenia
- 12 alebo 24 hodinový formát času
- potreba 32,768 kHz kryštálu
- dvojvodičová zbernica i2c
- automatická inkrementácia adresy po zápise/čítaní
- programovateľný alarm, časovač a prerušovacie funkcie
- adresa slave-u A1h alebo A3h pre čítanie, A0h alebo A2h pre zápis (podľa stavu pinu A0)+
Rozloženie a popis pinov PCF8583
Zbernica I2C
Skratka pre zbernicu I2C je IIC(Inter-Integrated Circuit). Protokol a zbernicu vyvinula firma Philips Semiconductor pôvodne pre svoje TV príjímače v roku 1980 za účelom komunikácie medzi IO na jednej DPS pri použití minimálneho množstva pinov.
Špecifikácia zbernice I2C je založená na jednoduchých hardvérových štandardoch (nie sú potrebné špeciálne konektory alebo kabeláž) a rovnako jednoduchého softvérového štandardu pre komunikačný protokol. Obvody, ktoré používajú I2C protokol zahŕňajú pamäte EEPROM a RAM, senzory teploty, expandéry portov, hodiny reálneho času, atď. I2C sa tiež používa ako riadiaca zbernica v obvodoch spracovania signálov, ktoré majú oddelenú dátovú zbernicu, napr. RF tunery, video dekódery a enkódery a audio procesory a kodeky.
Zbernica I2C môže pracovať pri troch prenosových rýchlostiach:
- Slow (pod 100 Kbps)
- Fast (400 Kbps)
- High-speed (3.4 Mbps) – protokol označený ako I2C v.2.0
Vzdialenosť komunikujúcich zariadení je limitovaná z dôvodu udržania komunikačnej rýchlosti na 4m. Max. kapacita prenosového vedenia je približne 400pF. Zbernica používa dva vodiče – Serial Data (SDA) a Serial Clock (SCL). Je to multimasterová zbernica s polovičným duplexom. Každý IO na zbernici je identifikovaný svojou adresou, ktorá je v rámci siete jedinečná, preto zbernica I2C nevyžaduje signál CS (chip select) ani ďalšiu logiku. Linky SDA aj SCL sú pripojené na napájacie napätie pomocou tzv. pullup rezistorov. Čím je vyššia komunikačná rýchlosť, tým musia byť pull-up odpory menšie. Pre základnú rýchlosť 100 kHz postačujú odpory 4,7kOhm.
Postupnosť pri prenose dát: Master generuje štart bit a hodinový signál a posiela adresu podriadeného IO + generuje bit R/\W. Podriadený IO potvrdí prijatie bitom ACK a vysielacie zariadenie (master alebo slave) vyšle jeden bajt dát. Prijímacie zariadenie vloží bit ACK, čím potvrdí prijatie bajtu. Ak je potrebné vyslať viac bajtov opakujú sa predchádzajúce dva body. Pri zápise (master vysiela), master vloží stop bit po prenesení posledného bajtu dát. Pri prijímaní (master prijíma), master nepotvrdzuje posledný bajte bitom ACK, ale priamo vloží stop bit, aby oznámil podriadenému IO, že prenos bol dokončený.
Potvrdenie príjmu (Acknowledge)- vykonáva sa počas deviateho impulzu hodinového signálu a je povinný. Vysielajúce zariadenie uvolní linku SDA (umožní jej „plávať“ na vysokej úrovni). Prijímajúce zariadenie stiahne linku SDA na nízku úroveň (linka SCL musí byť na vysokej úrovni). Ak nedošlo k potvrdeniu, prenos je ukončený. Natiahnutie hodín (Clock Stretching)- keď slave (prijímač) potrebuje viac času na spracovanie bitu alebo práve vykonáva iné funkcie, môže stiahnuť a podržať SCL na nízkej úrovni. Master potom čaká kým slave uvoľní linku SCL predtým bit predtým, než vyšle ďalší bit.
Výhody zbernice I2C- vhodná pre medziobvodovú komunikáciu (on-board devices), ak ku komunikácii dochádza len občas - jednoduché prepojenie viacerých zariadení z dôvodu adresovania - cena a zložitosť nerastie s počtom pripojených zariadení.
Nevýhody zbernice I2C- zložitejšie softvérové riešenie, než napr. v prípade SPI - nízke prenosové rýchlosti
LCD Displej
Vlastnosti:
- 2x8 LCD Displej bez podsvetlenia
- 4 Tlačítka
- Trimer na zmenu kontrastu
Technické parametre:
- Napájanie: 5 V @ 15 mA
- Pripojenie: 4-Bit parallel interface (Hitachi HD44780 compatible)
- Rozmery: 60 x 50 x 20 mm
- Pracovná teplota: 0 až +70 °C
Popis riešenia
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru (nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.
Pozn.: Názov obrázku musí byť jedinečný, uvedomte si, že Obr1.jpg už pred vami skúsilo nahrať už aspoň 10 študentov.
Algoritmus a program
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.
Vyberte podstatné časti zdrojového kódu, použite na to prostredie source:
/* A nezabudnite zdroják hojne komentovať */
int main(void) {
printf("Hello, World!\n");
return(0);
}
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!
Zdrojový kód: serial.h a main.c
Overenie
Nezabudnite napísať čosi ako užívateľský návod. Z neho by malo byť jasné čo program robí, ako sa prejavuje a aké má užívateľské rozhranie (čo treba stlačiť, čo sa kde zobrazuje). Ak ste namerali nejaké signály, sem s nimi. Ak je výsledkom nejaký údaj na displeji, odfotografujte ho.
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.