|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
hribo Član
Pridružen-a: Sob 12 Nov 2011 13:38 Prispevkov: 150 Aktiv.: 0.99 Kraj: Domžale
|
Objavljeno: Sre Sep 03, 2014 2:57 pm Naslov sporočila: Omejitve pri priklopu večih senzorjev na SPI ali I2C vodilo |
|
|
Pozdravljeni,
I2C in SPI sta dva vodila, katera ima vsak svoje prednosti in slabosti. Oba pa omogočata priklop večih naprav na isto vodilo. Pri SPI, je sicer za to potrebno imeti dodatne GPIO-je. Kar pa mene zanima in nisem uspel najti informacije v spletu je:
Kakšno je maksimalno število naprav, ki jih lahko imamo na enem izmed vodil? Morajo obstajati določene fizikalne omejitve na vodilu ( R in C ), kakšne so te vrednosti?
Ali je možno na I2C imeti 20 senzorjev(vsak z drugačnim naslovom)? Kakšne so vaše izkušnje s priklopi večih senzorjev na eno vodilo?
Lep pozdrav
_________________ Failing to plan is planning to fail. |
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3638 Aktiv.: 17.06
|
Objavljeno: Sre Sep 03, 2014 3:20 pm Naslov sporočila: |
|
|
i2C čipovje ima običajno zgornji del nasova že fiksno določenega, s kakšnim prostim pinom (dvema, tremi) pa nastaviš še spodnji del naslova. Posledično lahko brez komplikacij na isto vodilo obesiš po 2, 4 ali 8 enakih čipov.
Pri SPI pa ima vsak čip svoj chipSelect (CS) pin, medtem ko so MOSI, MISO, SCK skupni vsem.
Posledično je na SPI možno vezati neomejeno število čipov.
No, pri manjšem številu je omejeno s številom prostih pinov MCU za krmiljenje CS, pri večjem pa za premikanje CS uporabiš kar verigo 74hc595. Pošlješ eno "1" in jo voziš naprej.
Ampak. Z verigo 74hc595 lahko vklapljaš tudi zadnji bit i2C naslova, s čimer lahko razširiš sistem na neomejeno število čipov.
Glede R in C linije je pa pri obeh možno poljubno zmanjšati hitrost komunikacije.
_________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
. Član
Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 75343.60
|
Objavljeno: Sre Sep 03, 2014 4:48 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika.
Opis: |
|
Velikost datoteke: |
21.39 KB |
Pogledana: |
4 krat |
|
|
|
Nazaj na vrh |
|
|
hribo Član
Pridružen-a: Sob 12 Nov 2011 13:38 Prispevkov: 150 Aktiv.: 0.99 Kraj: Domžale
|
Objavljeno: Čet Sep 04, 2014 9:34 am Naslov sporočila: |
|
|
MarE69 je napisal/a: |
Teoretična omejitev je naslovni prostor, torej 127 naprav na enem I2C vodilu. No, jaz sem npr. v praksi že dal 100 senzorjev na en SDA in od tega skupine po 10 na en SCK. Imel sem torej 10 SCK linij in 1 SDA linijo za 100 slave-ov. To pa zato, ker sem imel omejitve glede izbire slave naslovov. Vse skupaj je dobro delovalo pri hitrostih SCK do 1MHz.
|
Na kakšen način misliš 10 naprav na SCK liniji in potem 100 na SDA? Ali si uporabil več pinov na mikrokontrolerju za SCK ali si iz enega pina(SCK) na mikrokontrolerju narediil 10 vej in jih vzporedno peljal do naprav? Kolikšna približno je bila maksimalna dolžina linije?
MarE69 je napisal/a: |
Proti kapacitivnosti na I2C linijah se boriš z manjšanjem upornosti pullup uporov, če želiš ohraniti predpisanih 400kHz takta. Preveri tokovne zmožnosti master naprave in zmanjšaj pullup. Preveri še z osciloskopom obliko signalov.
|
Hvala za ta nasvet.
_________________ Failing to plan is planning to fail. |
|
Nazaj na vrh |
|
|
. Član
Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 75343.60
|
Objavljeno: Čet Sep 04, 2014 3:02 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika.
|
|
Nazaj na vrh |
|
|
Jan Član
Pridružen-a: Sob 10 Jun 2006 14:19 Prispevkov: 313 Aktiv.: 1.44 Kraj: Dolenjska
|
Objavljeno: Pet Sep 05, 2014 9:09 am Naslov sporočila: |
|
|
Za večje I2C mreže se lahko uporabi tudi I2C multiplekserje.
Tako lahko priklopiš poljubno število naprav na en I2C port, tudi naprave z istim naslovom,
samo moraš jih dati v različne veje multiplekserja.
Obstaja pa še veliko drugih I2C pripomočkov npr. repeaterji, ekstenderji...
Jan
|
|
Nazaj na vrh |
|
|
hribo Član
Pridružen-a: Sob 12 Nov 2011 13:38 Prispevkov: 150 Aktiv.: 0.99 Kraj: Domžale
|
Objavljeno: Sob Sep 06, 2014 3:59 pm Naslov sporočila: |
|
|
MarE69 je napisal/a: |
En GPIO na mikrokontrolerju (STM32F1xx), potem pa razvejano. Vsota dolžin bi tako "na uč" rekel, da je bila okrog 200cm. |
Se mi je zdelo, da je bil uporabljen samo en PIN na mikrokontrolerju, ker sam uporabljam SMT32F4XX, in ni nisem v datasheetu videl nobene opcije da bi imel več CLK linij. Sem pa pomislil, da si uporabil kakšen drug mikrokontroler, ki to omogoča.
Ker bom imel svojo senzorsko ploščico kar daleč od svoje glavne(150cm), bom najbrš uporabil repetitor, hvala za nasvete.
_________________ Failing to plan is planning to fail. |
|
Nazaj na vrh |
|
|
PrimozL Član
Pridružen-a: Tor 21 Mar 2006 10:55 Prispevkov: 404 Aktiv.: 1.84 Kraj: okolica Vipave
|
Objavljeno: Ned Sep 07, 2014 10:47 am Naslov sporočila: Re: Omejitve pri priklopu večih senzorjev na SPI ali I2C vod |
|
|
hribo je napisal/a: |
Pozdravljeni,
Ali je možno na I2C imeti 20 senzorjev(vsak z drugačnim naslovom)? Kakšne so vaše izkušnje s priklopi večih senzorjev na eno vodilo? |
Samo v ilustracijo, kaj se da naredit z I2C senzorji. Kolega je naredil regulacijo delovanja centralne kurjave in v ta namen po hiši razpeljal kar I2C temperaturne senzorje LM75, vsakega z drugačnim naslovom seveda. Povezovalni kabli so oklopljeni, njihove dolžine so različne; od 2m do malo več kot 10 m. Topologija je zvezdasta, ojačevalnikov ali ponavljalnikov ni uporabil. Na ATmega priključkih je samo preprosta tokovna in prenapetostna zaščita.
Precejšnje kapacitivnosti povezovalnih linij so bile seveda preveč za ATmega čip za delovanje pri polni hitrosti I2C vodila 200 kHz, zato je bilo potrebno znižati hitrost na 25 kHz (da se tudi na osciloskopu vidi primerna oblika signalov), kar pa je za omenjeno aplikacijo več kot dovolj.
LP Primož.
|
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3638 Aktiv.: 17.06
|
Objavljeno: Ned Sep 07, 2014 5:55 pm Naslov sporočila: |
|
|
Ali ima kdo možnost (zveze in poznanstva) predlagati proizvajalcem čipov, da naredijo i2c in 1-wire čipe s programirljivim naslovom?
Lahko tudi samo enkrat programirljivim s "kurjenjem varovalk".
Čip bi imel privzet naslov 0xFF ali 0x00, ob potrebi po večih čipih pa bi mu vpisal ukaz za programiranje in nov naslov.
Pri 1-wire pa bi zadostoval 8-biten programirljiv naslov, saj je zdaj naslov daljši od koristnega podatka. Lahko bi ga klical brez preverjanja naslova, s preverjanjem 8-bitnega naslova, ali s preverjanjem 64 bitov.
Upal bi si trditi, da bi se za serije do 1000 kosov izdelkov uporabljalo programirljive čipe, četudi bi bili 5 ali 10 centov dražji.
Koliko sploh stane 8 varovalk, 8 pull-nekam uporov in 8-biten primerjalnik naslovov? Če en mini MCU stane manj kot 1eur ...
_________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
mujo Član
Pridružen-a: Ned 02 Jan 2005 19:24 Prispevkov: 722 Aktiv.: 3.24 Kraj: MB
|
Objavljeno: Ned Sep 07, 2014 8:21 pm Naslov sporočila: |
|
|
Kje pa bi programiral naslove te naprave? To bi moral narediti pri vsaki posebej. Kar je še en dodatni korak pri proizvodnji končne naprave. Za hobby in majhne serije bi še šlo.
Določeni čipi se dajo dobiti z različnimi naslovi - recimo tako kot izbereš v katerem ohišju bi imel čip, lahko izbereš kateri naslov naj ima. Sicer ni možnosti izbrati vsak naslov med 0x7F in in 0x00 ampak vseeno. Nekateri pa imajo opcijo, da zadnjih nekaj bitov nastaviš preko zunanjih povezav.
|
|
Nazaj na vrh |
|
|
_NENO_ Neznanec
Pridružen-a: Pon 10 Nov 2014 14:42 Prispevkov: 6 Aktiv.: 0.05 Kraj: Ljubljana
|
Objavljeno: Čet Feb 12, 2015 6:18 pm Naslov sporočila: |
|
|
|
|
Nazaj na vrh |
|
|
tilz0R Član
Pridružen-a: Čet 31 Maj 2012 15:39 Prispevkov: 898 Aktiv.: 6.21 Kraj: Črnomelj
|
|
Nazaj na vrh |
|
|
_NENO_ Neznanec
Pridružen-a: Pon 10 Nov 2014 14:42 Prispevkov: 6 Aktiv.: 0.05 Kraj: Ljubljana
|
Objavljeno: Čet Feb 12, 2015 9:38 pm Naslov sporočila: |
|
|
|
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 66 dni
Powered by phpBB © 2001, 2005 phpBB Group
|