![]() |
|||||||||||||||||||||||||||||||||||||||||
![]() Bluetooth I²C - poznámky ke komunikaci a adresování Slave![]()
- Zápis na I²C Syntaxe povelů Zápis a Čtení je následující (vše v hexadecimální podobě): Zápis na I²C:
MSB
|
A1 | Adresa I²C Slave | Délka dat | Data | A3 |
A2 | Adresa I²C Slave | Data | A3 |
Adresy I²C zařízení jsou 7-bitové s tím, že se většinou přidává 8. bit jako příznak pro zápis nebo čtení. Při definici adresy odesílané přes Bluetooth se však tento poslední bit nezadává, I²C adresa příslušného Slave se odešle jako 7-bitová v příslušném povelu Zápis nebo Čtení.
I²C zařízení s adresou uvedenou v data sheetu (např. pro obvod reálného času Epson RX-8025):
Transfer data | Slave address | R/W bit | |||||||
bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 | ||
Read | 0x65 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 (=read) |
Write | 0x64 | 0 (=write) |
Hodnota 0x64 pro zápis však bude do I²C Bluetooth adapteru zadaná jako 0x32 v povelu pro Zápis.
Hexadecimální 0x32 odpovídá 7-bitové adrese 0110010.
Např. pro nastavení ukazatele v RTC obvodu na registr 0 se do Bluetooth I²C modulu odešle tato hexadecimální sekvence:
A1 32 01 00 A3
A1 ... příznak pro zápis
32 ... adresa I²C slave
01 ... počet datových byte
00 ... data (adresa registru 0)
A3 ... stop
Z příkladu je patrné, že adresa I²C slave pro čtení i zápis bude vždy stejná (v případě RX-8025 to bude 0x32) a jde-li o zápis nebo čtení je definováno tím, je-li příkaz odeslán jako Zápis nebo Čtení.
Ke stažení:
User manual k I²C firmware: Bluetooth I²C Bus Adapter™