Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Jaroslav 03. 03. 2014, 14:13:22

Název: I2C Slave - jak získat adresu?
Přispěvatel: Jaroslav 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?
Název: Re:I2c slave jak ziskat adresu
Přispěvatel: v 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
Název: Re:I2c slave jak ziskat adresu
Přispěvatel: Jaroslav 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?
Název: Re:I2c slave jak ziskat adresu
Přispěvatel: Jenda 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).
Název: Re:I2c slave jak ziskat adresu
Přispěvatel: Jaroslav 03. 03. 2014, 15:24:44
 Wire.begin(adresa). - takze misto hodnoty adresa si vytvorim libovolnou adresu?
Název: Re:I2c slave jak ziskat adresu
Přispěvatel: Vojta 03. 03. 2014, 15:34:52
Use google pls: find i2c adress, prvni odkaz:
http://playground.arduino.cc/Main/I2cScanner#.UxSSg-NJxVU
Název: Re:I2c slave jak ziskat adresu
Přispěvatel: mise 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
Název: Re:I2c slave jak ziskat adresu
Přispěvatel: Jaroslav 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?
Název: Re:I2c slave jak ziskat adresu
Přispěvatel: DK 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.
Název: Re:I2c slave jak ziskat adresu
Přispěvatel: DK 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)
Název: Re:I2c slave jak ziskat adresu
Přispěvatel: Jenda 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.