Saturday, January 9, 2016

NCD85 2. I2C bus

A je to hotové :-) Vianočný čas už "tradične" využívam na bastlenie a hobby. Môj odhad na rozbehanie I2C controléra PCF8584 bol 3 dni. Nakoniec to trvalo viac ako dvojnásobok. Musel som sa uchýliť k mojej obľúbenej sofistikovanej debugovacej vedeckej metóde LED. Pripojil som LED na obidva vodiče SDA aj SCL a až vizuálne som odhalil kde sa to seká. (DS1307 sa rád zatne a zablokuje celú zbernicu).

Čo je I2C? Je to zbernica od Philips určená na komunikáciu čipov. Má dva vodiče, SCL a SDA a samozrejme zem. I2C umožňuje pripojiť veľké množstvo rôznych senzorov, pamätí, prevodníkov a displayov atď. Napríklad senzor tlaku, vlhkosti, teploty, kompas, senzor zrýchlenia, senzor ..? Alebo chceme pripojiť LCD (rozšírený je I2C backpack s PCF8574), rozšíriť počet vstupných a výstupných portov? Pripojiť jednu, dve, tri 256kB EEPROM? Nie je problém :-) A najlepšie na tom je, že všetky zariadenia sa pripojujú na tie isté dva vodiče. Nie je treba žiadne ďalšie vstupy/výstupy.

Na doske NCD85 je LM75 (alebo LM75A, TMP275), DS1307 a EEPROM rady AT24C. TMP275 je teplomer s rozlíšením až 0.0625°C a presnosťou 0.5°C v rozsahu od −20°C do 100°C. Je to lepšia alternatíva k "industry standard" LM75 od TI. Lepší ako LM75 je aj LM75A od NXP. DS1307 sú hodinky a kalendár a k tomu ešte 56 byte batériou zálohovanej RAM. Na držiak CR2032 batérie je na plošáku určená plocha na priletovanie. AT24Cxx sú EEPROM obvody s kapacitami od 128 byte po momentálne 256kB a za nejaký rok to bude zase viac. A to už by bolo použiteľné aj ako virtuálny disk. Majú garantovaný milión prepisov a udržanie dát na minimálne 100 rokov.

PCF8584 podporuje rýchlosť 100kHz, čo je základná najnižšia rýchlosť. Novšie čipy fičia už aj na 400kHz a 1MHz. K zbernici je nutné pripojiť pull up odpory. Samotné zariadenia (sú open drain) len spínajú vodiče zbernice k zemi. Tým je zaručené, že pri konflikte nedôjde k zničeniu ani jedného zariadenia. Veľkosť odporov nie je kritická, ide len o to aby dostatočne rýchlo zdvíhali úroveň do 1. Prekonávať musia len parazitické kapacity na zbernici. 10, 20 kilo prípadne aj nejaká tá LED, všetko jedno ;-) 100kHz zase nie je nejaká super vysoká frekvencia.

Zdroják drivera a testovacej aplikácie je tu:
i2c fun

Takto to môže vyzerať po boote:

A to som mal otvorenú vetračku.

No comments:

Post a Comment