User Manual

105
4.6.11.2. I
2
C master
V režimu master se může používat TWI modul mikroprocesoru ATmega32 k ovládání dalších
zařízení, mikroprocesorů nebo snímačů přes sběrnici I
2
C.
void I2CTWI_initMaster(FREQ)
Tato funkce inicializuje modul TWI jak master. Režim master samozřejmě nevyžaduje adresu
ale pro TWI modul máme definovat kmitočet datového přenosu. Kmitočet definujete v kHz
pomocí parametru FREQ. Obvyklá hodnota je 100 kHz, která se může nastavit parametrem
100. Přenosová rychlost může používat hodnoty až do 400. Horní limit TWI modulu se nesmí
překročit.
Podle specifikace Atmel (viz katalogo list), nemůže TWI modul MEGA32
v režimu master fungovat s přenosovou rychlos vyšší než maximálně 220
kbit/s. Přenosová frekvence 400 kHz by vyžadovala hodinovou frekvenci
vyšší než 14,4 MHz, ale kvůli úspoře energie používáme hodinovou frekvenci
8 MHz. To ak způsobuje jen malou komplikaci v časování, která neovlivní
vaši práci. V režimu slave není žádný problém a může se používat
přenosovou rychlost 400 kbit/s. Pokud skutečně potřebujete rychlou
komunikaci, můžete se pokusit nastavit režim 400 kbit/s uvidíte, co se stane
se zařízením slave nebo rozšiřujícím modulem RP6 CONTROL M32, který je
taktován na 16 MHz. Obvykle může také pracovat na 8 MHz, ale s drobným
časom omezením. Ale nemůžeme to zaručit!
Přenos dat
Existuje řada funkcí pro přenos dat na sběrnici I
2
C. V podstatě jsou echny tyto funkce
podobné, ale umňují přenos různého počtu byte.
void I2CTWI_transmitByte(uint8_t adr, uint8_t data)
přenáší jeden byte do specifikované adresy.
void I2CTWI_transmit2Bytes(uint8_t adr, uint8_t data1, uint8_t data2)
přenáší dva byte na specifikovanou adresu. Tuto funkci budete často potřebovat u řady I
2
C
zařízení, které vyžadují formát dat:
adresa slave adresa registru data
void I2CTWI_transmit3Bytes(uint8_t adr, uint8_t data1, uint8_t data2, uint8_t data3)
používá se docela často, zvláště při zápisu slave komunikace s datom formátem:
adresa slave příkazo registr příkaz parametr 1