I2C Slave - jak získat adresu?

Jaroslav

I2C Slave - jak získat adresu?
« kdy: 03. 03. 2014, 14:13:22 »
Ahoj, snazim se naucit v Bascomu jak programovat zarizeni na I2C.  Mam testovaci model kde chci dat paralerne 8 slave AVR a jeden master. Master pak bude ve smyckach cist na vsech Slave, jestli nemaji neco ke zpracovani.

Slave by mel delat to ze pokud treba zaznamena stisknuti tlacitka, prepise nejakou promenou a tato promena se pak posle Masteru, ktery treba na zaklade hodnoty z jakehokoliv sleavu rozne led.

Bohuzel jsem moc nepobral jak ziskat adresu slave zarizeni. Cetl jsem ze je v zarizeni zapsana od vyrobce... Pak tedy pokud chci novy cip pripojit na tohle rozhrani, pak si musim nekde "bokem" ziskat adresu a tu pak vkladat do programu?
« Poslední změna: 03. 03. 2014, 22:32:10 od Roman Bořánek »


v

Re:I2c slave jak ziskat adresu
« Odpověď #1 kdy: 03. 03. 2014, 14:29:49 »
má te pravdu, v případě aplikačního čipu adresu udává výrobce (někdy je možné část adresy nastavit hw prostředky), v případě vámi popsaného zapojení jste výrobcem vy a musíte adresu slavu nastavit v jeho softwaru

Jaroslav

Re:I2c slave jak ziskat adresu
« Odpověď #2 kdy: 03. 03. 2014, 14:38:24 »
má te pravdu, v případě aplikačního čipu adresu udává výrobce (někdy je možné část adresy nastavit hw prostředky), v případě vámi popsaného zapojení jste výrobcem vy a musíte adresu slavu nastavit v jeho softwaru
má te pravdu, v případě aplikačního čipu adresu udává výrobce (někdy je možné část adresy nastavit hw prostředky), v případě vámi popsaného zapojení jste výrobcem vy a musíte adresu slavu nastavit v jeho softwaru

Prave, ze nechapu jak ji mam nastavit/ziskat?

Jenda

Re:I2c slave jak ziskat adresu
« Odpověď #3 kdy: 03. 03. 2014, 15:21:11 »
Prave, ze nechapu jak ji mam nastavit/ziskat?
Prostředky daného procesoru/I2C knihovny. Například ve Wire knihovně pro Arduino se mu dává při inicializace Wire.begin(adresa).

Jaroslav

Re:I2c slave jak ziskat adresu
« Odpověď #4 kdy: 03. 03. 2014, 15:24:44 »
 Wire.begin(adresa). - takze misto hodnoty adresa si vytvorim libovolnou adresu?


Vojta

Re:I2c slave jak ziskat adresu
« Odpověď #5 kdy: 03. 03. 2014, 15:34:52 »
Use google pls: find i2c adress, prvni odkaz:
http://playground.arduino.cc/Main/I2cScanner#.UxSSg-NJxVU

mise

Re:I2c slave jak ziskat adresu
« Odpověď #6 kdy: 03. 03. 2014, 15:35:26 »
Adresa se dává do registru TWAR, chce to občas přečíst datasheet. Pokud jde o Bascom, hledat "TWI slave adrress Bascom". Možná ti pomůže tohle, ale nedělám v tom. Předpokládám, že jedno bude sofwarové I2C a jedno TWI za použití HW AVRka.

Config Twislave = &H70 , ...
nebo
Config I2cslave = &B01000000

Jaroslav

Re:I2c slave jak ziskat adresu
« Odpověď #7 kdy: 03. 03. 2014, 16:16:23 »
Takze i2c slave1 provede:
Config I2cslave = &B01000000

i2c slave2
Config I2cslave = &B01000001

master bude chtit komunikovat s 1 takze pouzije adresu &B01000000. Chapu to spravne?

DK

Re:I2c slave jak ziskat adresu
« Odpověď #8 kdy: 03. 03. 2014, 18:36:40 »
ne, posledni bit slouzi jako R/W znacka... prvni 4 bity by mely udavat adresu zarizeni, tudiz jeden slave by mel mit adresu 0b0001000X, druhy 0b0010000X, atd.

DK

Re:I2c slave jak ziskat adresu
« Odpověď #9 kdy: 03. 03. 2014, 18:43:41 »
jinak ty nasledujici tri bity (4+3+1) jsou A2, A1, A0, ktere by mely slouzit na "hw prepinac" -> prave proto, aby slo pouzit vice zarizeni se stejnou base adresou (prvni 4 bity)

pokud tedy budete pouzivat stejne slave zarizeni, muzou mit stejnou base adresu, ale rozdilne A2-A0 bity (vysledna adresa musi byt unikatni)

Jenda

Re:I2c slave jak ziskat adresu
« Odpověď #10 kdy: 04. 03. 2014, 03:04:40 »
Use google pls: find i2c adress, prvni odkaz:
http://playground.arduino.cc/Main/I2cScanner#.UxSSg-NJxVU

Škoda, že se tazatel ptá na něco úplně jiného.