Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: 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?
-
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
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?
-
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).
-
Wire.begin(adresa). - takze misto hodnoty adresa si vytvorim libovolnou adresu?
-
Use google pls: find i2c adress, prvni odkaz:
http://playground.arduino.cc/Main/I2cScanner#.UxSSg-NJxVU
-
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
-
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?
-
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.
-
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)
-
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.