I2C (TWI) – sériová komunikace po dvou vodičích s adresací

Jako další uvádím sběrnici I2C , někdy nazývanou také jako TWI (two-wire), která je běžně používaná pro připojení až 128mi zařízení po dvou vodičích (obr. 1). Sběrnice je obousměrná, ale v jeden okamžik může vysílat pouze jedno zařízení (poloviční duplex). Oba vodiče musí být připojeny přes rezistor na napájecí napětí (tzv. pull-up rezistory), tím se předejde poškození vysílacích a přijímacích obvodů při kolizi a poškodí se pouze úrovně signálů.


twi-blok

Přenos dat

Na linku je připojen jeden master (řídicí) a několik slave (podřízených) obvodů. Pro poslání datového rámce některému slave zařízení, master vyšle v prvních 7mi bitech adresu slave zařízení, v osmém bitu log. 1 a čeká na příjem potvrzovacího bitu ACK. Poté master vyšle data po lince SDA. V případě, že je potřeba získat data ze slave zařízení, pak master opět pošle adresu, ale v osmém bitu pošle log. 0, aby slave poznal, že má volno a může poslat data. Synchronizace přenosu dat probíhá impulsy na lince SCL o frekvenci 10 kHz až 400 kHz. Průběh dat na linkách SDA a SCL je zřejmý z obrázku 2.
twi-signal

Některé vlastnosti I2C u mikrokontroléru ATmega32

  • Jednoduché, výkonné a přizpůsobitelné rozhraní.
  • Podpora práce v režimu master nebo slave.
  • Mikrokontrolér může pracovat jako vysílač i přijímač.
  • 7bitový adresovací prostor dovolující rozlišit až 128 adres podřízených obvodů.
  • Přenosová rychlost až 400 kHz.
  • TWI obvodem.Možnost probuzení mikrokontroléru z režimu spánku v případě adresace vnějším

Nastavení a popis registrů I2C u mikrokontroléru ATmega32

  • TWBR: Registr pro nastavení přenosové rychlosti podle vzorce (1.1).
  • TWCR: Nastavuje a inicializuje přenos (tabulka 1).
  • TWSR: Uchovává informace o stavu přenosu a nastavuje předděličku rychlosti (tabulka 2).
  • TWDR: Datový registr.
  • TWAR: Adresa slave zařízení.

Vzorec pro výpočet hodnoty registru TWBR

fCLK = fOSC/(16+2*TWBR *4TWPS)     (vzorec 1.1)

kde fCLK je frekvence synchronizačních impulsů na lince CLK, fOSC je frekvence krystalu a TWPS je hodnota nastavení předděličky.

Tabulka 1: Popis jednotlivých bitů registru TWCR

BIT TWCR
7 TWINT příznak přerušení
6 TWEA povoluje potvrzování ACK
5 TWSTA generuje START stav
4 TWSTO generuje STOP stav
3 TWWC detekuje kolizi zápisu
2 TWEN povuleje I2C
1 nepoužito
0 TWIE povoluje přerušení sběrnice

Tabulka 2: Nastavení předděličky u I2C

TWPS1 TWPS0 hodnota předděličky
0 0 1
0 1 4
1 0 16
1 1 64

 

 

Připravuje se:

  1. Knihovna I2C ke stažení pro ATMEL AVR
  2. Knihovna I2C ke stažení pro STM32F4 Discovery

 

{jcomments on}

Komentovat

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena *

*

*

By continuing to use the site, you agree to the use of cookies. more information

Užíváme cookies, abychom vám zajistili co možná nejsnadnější použití našich webových stránek. Pokud budete nadále prohlížet naše stránky předpokládáme, že s použitím cookies souhlasíte.

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close