Trojosí akcelerometer MMA7455: Rozdiel medzi revíziami
Zo stránky SensorWiki
Riadok 80: | Riadok 80: | ||
úroveň pomocou tranzistorov s otvoreným kolektorom.</li> | úroveň pomocou tranzistorov s otvoreným kolektorom.</li> | ||
</ul> | </ul> | ||
<h4>I2C prenos dát</h4> | |||
<strong>Master:</strong> | |||
<ul> | |||
<li>začína a končí dátový prenos generovaním štart bitu a stop bitu,</li> | |||
<li> generuje hodinový signál,</li> | |||
<li>vysiela adresu podriadeného IO, pre ktorý budú dáta určené,</li> | |||
<li>určuje smer prenosu dát.</li> | |||
</ul> | |||
<strong>Slave:</strong> | |||
<ul> | |||
<li>odpovedá iba v prípade, že rozpoznal svoju adresu,</li> | |||
<li>časovanie prenosu je riadené hodinovým signálom.</li> | |||
</ul> | |||
<strong>Prenos bitu</strong> | |||
<ul> | |||
<li>počas dátového prenosu sa stav na dátovom vodiči mení iba keď je hodinový signál na nízkej úrovni.</li> | |||
</ul> | |||
<strong>Štart bit a stop bit</strong> | |||
<ul> | |||
<li>začiatok alebo koniec prenosu je definovaný prechodom dátovej linky z vysokej na nízku úroveň (štart bit) alebo z nízkej na vysokú úroveň (stop bit)kým hodinový signál je na vysokej úrovni,</li> | |||
<li>po štart bite považujú všetky zariadenia zbernicu za zaneprázdnenú,</li> | |||
<li>po príchode stop bitu čakajú zariadenia istý čas a potom považujú zbernicu za voľnú.</li> | |||
</ul> | |||
<!-- | <!-- | ||
* popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.) | * popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.) |
Verzia z 13:08, 18. december 2014
Autori: | Ján Mrkvička, Jozef Kuleha | |
Študijný odbor: | Aplikovaná mechatronika | 2. Ing. (2013) |
Zadanie
Treba popísať ako funguje samotný senzor, ako sa pripojí k mikropočítaču a čo vlastne meria. Naprogramujte bezdrôtovú hraciu kocku.
Literatúra:
- Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.
Analýza
Našou úlohou bolo zrealizovať bezdrôtovú hraciu kocku. Na určenie čísla, ktoré bolo hodené slúži akcelerometer. Odmeraním pôsobenia gravitačného zrýchlenia v jednotlivých osiach sa priradí číslo od 1 do 6. Riadenie a posielanie údajov zabezpečuje mikrokontrolér ATmega 328P. Akcelerometer mma7455 komunikuje v našom prípade s mikroprocesorom štandardom i2c. Namerané údaje sú odosielané sériovou zbernicou z mikroprocesora na klientské zariadenie.
Vlastnosti akcelerometra mma 7455:
- komunikácia pomocou i2c/SPI,
- voliteľná citlivosť: 8-bitový mód (±2g/±4g/±8g), alebo 10-bitový mód (±8g),
- uživateľom ovládané (kontrolované) prerušenia int1/int2,
- užívateľom nastaviteľné registre pre kalibráciu jednotlivých osí
- vstupné napätie v rozsahu 2,5 - 5,5 VDC,
- prúdový odber v pokoji (standby) 26 μA a v aktívnom režime 0,5 - 3 mA,
- teplotný rozsah správnej činnosti snímača -40 to +85 °C.
Popis pinov mma 7455
Pin | Označenie pinu | Popis | Typ pinu |
---|---|---|---|
1 | VIN | Vstupné napájacie napätie | Napájanie |
2 | n/c | Nezapojený | n/a |
3 | INT1 | Prerušenie1/Data Ready | Výstup |
4 | INT2 | Prerušenie2 | Výstup |
5 | GND | Uzemnenie | Napájanie |
6 | CS | Typ komunikácie,SPI povolený(0),I2C povelený(1) | Vstup |
7 | Data | i2c dáta(SDA),SPI dáta(SDI/SDO) | Vstup/Výstup |
8 | CLK | i2c hodinové impulzy(SCL),SPI hodinové impulzy(SPC) | Vstup |
Umiestnenie pinov
Synchrónna komunikácia i2c
- 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ď.,
- používa sa tiež 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 približne 4m,
- zbernica používa dva vodiče – Serial Data (SDA) a Serial Clock (SCL)
- synchrónna (signál SCL), multimasterová (aj slave môže byť konfigurovaný tak, aby mohol začať komunikáciu) 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,
- každé zariadenie na zbernici môže stiahnuť danú linku na nízku úroveň pomocou tranzistorov s otvoreným kolektorom.
I2C prenos dát
Master:
- začína a končí dátový prenos generovaním štart bitu a stop bitu,
- generuje hodinový signál,
- vysiela adresu podriadeného IO, pre ktorý budú dáta určené,
- určuje smer prenosu dát.
Slave:
- odpovedá iba v prípade, že rozpoznal svoju adresu,
- časovanie prenosu je riadené hodinovým signálom.
Prenos bitu
- počas dátového prenosu sa stav na dátovom vodiči mení iba keď je hodinový signál na nízkej úrovni.
Štart bit a stop bit
- začiatok alebo koniec prenosu je definovaný prechodom dátovej linky z vysokej na nízku úroveň (štart bit) alebo z nízkej na vysokú úroveň (stop bit)kým hodinový signál je na vysokej úrovni,
- po štart bite považujú všetky zariadenia zbernicu za zaneprázdnenú,
- po príchode stop bitu čakajú zariadenia istý čas a potom považujú zbernicu za voľnú.
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.