Tiva C Series- sync leds using I2C Bus
I2C bus é um barramento serial multi-master.
Os barramentos TWI e SMB são similares ao I2C introduzindo pequenas diferenças.
Na tabela estão as diferenças entre esses barramentos.
I2C | TWI | SMBus (SMB) | |
SCL line | x | x | x |
SDA line | x | x | x |
Start | x | x | x |
Stop | x | x | x |
100kbit | x | x | x |
400kbit | x | x | |
3.4Mbit | x | x | |
arbitration | x | x | x |
collison detection | x | x | x |
7bit address | x | x | |
broadcast | x | x | |
10bit address | x | x | |
Packet error check (PEC) | x | ||
Timeout transfer | x | ||
Alert line | x | ||
Suspend line | x | ||
Power up/down | x |
No I2C são especificados somente 4 condições de funcionamento entre Masters e Slaves.
1) O ‘master’ envia comandos (writes) para os ‘slaves’.
2) Os ‘slaves’ interpretam os comandos executando ações nos leds.
3) O ‘master envia requisições (requests) para os ‘slaves’.
4) Os ‘slaves’ enviam dados de volta ao ‘master’.
As linhas SDA e SCL precisam de pull-ups usando resistores de 1,8K até 47K.
Os resistores e tensões mais comuns são:
Resistor | Tensão |
1,8k | 1,8V |
2,2k | 3,3V |
4,7k | 5V |
10k | 12V |
Quando o resistor do pull-up não está presente as linhas SDA e SCL são lidas como zero, o que significa que o barramento está ocupado. Se o master tentar fazer um ‘write’ ou ‘request’ vai ficar travado até que se coloquem os resistores de pull-up nas linhas SDA e SCL.
Referência de implementação de uma rede leds usando barramento I2C.
Esquemático de barramento I2C para Stellaris / Tiva Pino PD_0 é SCL Pino PD_1 é SDA |
Tiva I2C master serial console |
Código do ‘master’
Código dos ‘slaves’