Kysymys:
I2C-väylän enimmäispituus?
Nate
2014-04-12 01:31:33 UTC
view on stackexchange narkive permalink

Mikä on kaapelin enimmäispituus, jota voitaisiin käyttää kahden I2C-laitteen (I2C master-> I2C slave) kytkemiseen?

Kyllä, tiedän, että I2C on todella suunniteltu kortin sisäiseen viestintään. Minulle on annettu "suunnittelutavoitteeksi" käyttää yhteistä I2C-väylää useille I2C-orjille demon tukemiseksi.

Oletetaan selkeyden vuoksi, että I2C-väylän vakiotaajuus on 100 kHz.

Suurin pituus tulee I pelaamaan pituuden tuomalla kapasitanssilla. Liian suuri kapasitanssi ja se voi vaikuttaa nopeuteen. Joten kuten aina, tämä riippuu.
@GustavoLitovsky Olet oikeassa kapasitanssissa. Se riippuu myös käytettyjen kaapeleiden tyypistä (suojattu tai suojaamaton). Minua kiinnostaa eniten yleinen ohje.
@Nate-ohje: suurin väyläkapasitanssi on 400 pF. (Hieman liittyy kysymykseen: [Muistoja ylikasvaneesta I2C-väylästä] (http://reconvolution.blogspot.com/2014/11/memoirs-of-overgrown-i2c-bus.html).)
I2C = Integroidun piirin väylä. Sitä ei ole suunniteltu pitkille etäisyyksille laatikoiden välillä, eikä varmasti taajuudella 400 kHz.
Halusin vain heittää henkilökohtaisen kokemuksen lukuun ottamatta.Olen tehnyt demon siirtymällä dev-levyltä I2C: stä USB-muuntimeen suojaamattomalla johtimella noin 3 jalkaa.Ei näyttänyt hyvältä, mutta se toimi 90% ajasta.
Joskus äärimmäisen pienitehoisissa piireissä, joissa pitkän matkan lähetinvastaanottimet eivät ole kannattavia virrankulutuksen vuoksi, olen käyttänyt I2C: tä yli 30 metrin etäisyydellä.Tämä saavutettiin käyttämällä Cat5E-kaapeleita, joiden korttitaajuus oli 1 KHz.
Viisi vastused:
Spehro Pefhany
2014-04-12 02:15:38 UTC
view on stackexchange narkive permalink

Nopeassa tilassa ja vastuksen vetämisessä kapasitanssin on oltava alle 200 pF tämän NXP-asiakirjan I2C-väylä määrittely ja käyttöopas mukaisesti.

Virtalähteen vedon avulla voit siirtyä arvoon 400pF, mutta ei vastuksilla.

Jos lankasi on 20 pF / 30 cm ja sinulla on vielä 50 pF haja- ja tulokapasitanssia, kaapelin pituus on rajoitettu 2,25 metriin. Erilaiset oletukset johtavat erilaisiin lukuihin.

@KrunalDesai Se mainitaan erikseen yllä linkitetyssä NXP-asiakirjassa.** I2C-väylän tekniset tiedot ja käyttöopas **
Todellisesta esimerkistä Nintendo Wii: n "Wiimote" käyttää 400 kHz I2C: tä (http://wiibrew.org/wiki/Wiimote/Extension_Controllers) kommunikoimaan Nunchukin kaltaisten oheislaitteiden kanssa (http://wiibrew.org/wiki/Wiimote/ Extension_Controllers / Nunchuck), jonka kaapeli on, kuten näette, noin 1 m.Passiivisia jatkeita myydään antamaan ylimääräinen 1m (https://www.amazon.com/Extension-Cable-Wii-Nunchuck-Nintendo/dp/B0039OEV9K/), joten he työntävät, mutta pysyvät siinä 2,25 metrin rajoissa.
EternityForest
2014-04-13 17:12:34 UTC
view on stackexchange narkive permalink

Hullut sointipituudet, kuten 10,25 ja 100 m, ovat täysin mahdollisia, ja käytän menetelmää usein (UART: n kanssa ei I2C, mutta menetelmä pysyy), kun minun on koottava tavaraa nopeasti. Se ei kuitenkaan ole paras tapa.

Tärkeintä on tietää tulojännitekynnyksesi. Varmista, että maadoitusjohdon jännitehäviö on selvästi tämän alapuolella, muuten korkean maapotentiaalin lähetin ei pysty vetämään jännitettä tarpeeksi matalalle. Maapoikkeamien suvaitsematon puute IMHO on suurin syy RS485: n tai voi-lähetin-vastaanottimien käyttöön (I2C yli CAN on mainittu muutamissa sovellushuomautuksissa).

Ihannetapauksessa kaikilla laitteilla on oma seinän syylä ja akku ja maadoitusjohdon kautta ei lähetetä virtaa laitteiden välillä.

Otetaan esimerkiksi CAT5. CAT5 ei voi olla suurempi kuin 52pf / m, tai se ei ole CAT5.

100 metrin 52pf-kaapelin kapasitanssi on 5200pf tai 5.2nf.

5,2 n kertaa 20 kohmia (pullup) antaa noin 104 mikrosekunnin aikavakion. Tämä rajoittaa nopeuden noin 10 kHz: iin.

2,2 kohm -vetoja käyttämällä saatat todennäköisesti saavuttaa 100 kHz: n.

Olen kuullut, että laitteilla tulisi olla vastus SDL: ssä ja SCK: ssa, koska suuresta kapasitiivisesta kuormasta, jota he ajavat, noin 180 tai 200 ohmia.

Mutta rehellisesti sanottuna, I2C ei ole mitenkään oikea tapa kulkea pitkiä matkoja. CAN-lähetinvastaanottimet tai RS485, joita käytetään normaalin UART: n kanssa, on vankka ratkaisu, jolla on erittäin hyvä vikasuojaus, ESD-vastus, nopeus, etäisyys jne., Dollarin sirun kustannuksella, maadoitussiirroilla ei ole väliä melkein yhtä paljon kuin sinäkin vapaasti kuljettaa voimaa yhdessä datan kanssa.

Ainoa haittapuoli on, että tölkin lähetin-vastaanotin voi saavuttaa 70ma: n lähetyksen ja 1 tai 2ma: n vain kuuntelun, joten I2C tai suora TTL UART voi olla hyödyllinen äärimmäisen pienitehoisissa tilanteissa, mieti, kuinka paljon aikaa vietät lähettämiseen.

martinm
2014-04-12 09:39:49 UTC
view on stackexchange narkive permalink

Työskentelen yrityksessä, joka valmistaa USB-antureita. Suurin osa niistä perustuu I2C-anturisiruihin, nämä laitteet voidaan jakaa kahteen osaan, joten voit asentaa suorittimen osan yhteen paikkaan ja anturin osan toiseen. Teimme melko paljon testejä laitteen keskusyksikön ja I2C-antureiden väliselle I2C-yhteydelle. 100 kHz: n taajuudella, hyvällä virheenpalautusprotokollalla, 25 m voidaan saavuttaa helposti peruslangoilla. Pystyimme jopa saavuttamaan 100 m kerran CAT5-kaapelilla.

Kuulostaa siltä, ​​että puhut _USB_ kaapelin pituudesta. OP kysyy _raw_ I2C: n kaapeloinnista. Tämä on täysin erilainen aihe. Jos olen väärä, muokkaa vastaustasi ja poistan alamäki.
25m on melko paljon jopa usb: lle ...
Ei, puhun todella laitteen suorittimen ja I2C-anturisirujen välisestä * I2C * -yhteydestä, ei isännän ja suorittimen välisestä USB-yhteydestä. Tässä on esimerkki: http://www.yoctopuce.com/EN/products/yocto-meteo/doc/METEOMK1.usermanual.html#CHAP4SEC2
Jos haluat käyttää kierrettyä paria I2C: lle ja teholle, kumpi pari väännetään yhteen?(SDA, SCL), (VCC, GND) tai (SDA, GND), (SCL, VCC)?
Ihannetapauksessa et käytä kierrettyä paria ollenkaan.Kierretty pari on hyödyllinen tasapainotetuille signaaleille.Jos sinulla ei ole muuta kaapelia, kierrä signaali maadoituksella.Jos sinulla on tosiasiallisesti vain neljä johtoa, mieti, kuinka paljon virtaa kaukopää kuluttaa - saatat päätyä siedettävää suuremmalla maadoitussiirtymällä - ennen kuin sitoudut käyttämään vain yhtä johtoa GND: lle.Käytän yleensä vanhaa Cat5-kaapelia (ei korkeampi! Kaksinkertainen suoja lisää kapasiteettia, jota et tarvitse) yhdellä parilla maadoituksella, yhdellä parilla + 5 V ja SDA + GND ja SCL + GND parilla.
Kuinka suoritat anturipuolen palautusprotokollan?I2C-liitännällä varustetuissa anturien IC-vastaanottimissa ei yleensä ole virheen havaitsemista tai palauttamista koskevia säännöksiä.En ole koskaan nähnyt antureita, joilla on tällaisia ominaisuuksia.
Jeffrey Nichols
2014-04-13 19:36:17 UTC
view on stackexchange narkive permalink

Jotain NXP: n P82B96-tyyppistä tapaa voidaan käyttää väylän jännitetasojen muuttamiseen sallien paljon pidemmät etäisyydet.

Datalehti sisältää esimerkkejä I2C-kaapelin pituuksista 3 m, 25 m. , 100m ja 250m.

On muitakin pelimerkkejä, joilla on samanlaiset toiminnot.

NXP-sirun ongelma on se, että tarvitset lopulta kaksi kertaa niin monta johtoa. Onko muita ideoita?Löytämäni kaksisuuntaiset IC: t eivät ylitä arvoa + 5 V.
Dave Tweed
2014-04-12 04:30:06 UTC
view on stackexchange narkive permalink

IIC on synkroninen protokolla, ja sellaisenaan sitä voidaan käyttää mielivaltaisesti hitaasti, jotta se täyttää etäisyyden ja melun järjestelmävaatimukset.

IIC: n käytöstä kaapelilla on monia esimerkkejä, kaikki tapa ACCESS.bus: stä 1990-luvulla siihen, miten sitä käytetään nykyään EDID -tietojen hakemiseen videonäytöistä.

Toinen esimerkki on Wii Nunchuck, joka liitettiin Wii-kaukosäätimeen I²C: n kautta 4 jalan suojatulla kaapelilla.
Vaikka teoriassa voisit synkronointiprotokollia kellottaa mielivaltaisesti hitaasti, tämä ei todellakaan ole totta I2C: lle yleensä, joten tämä vinkki on huono.Syynä on, että monilla I2C-siruilla on vähimmäistuettu SCL-taajuus toimittajakohtaisten toteutustietojen vuoksi.Tämä johtaa siihen, että tällaisia IC: itä ei voida kellottaa taajuuksilla, jotka ovat alle 70-100 Khz (todellinen raja löytyy tietysti vastaavista käsikirjoista).Kaikilla I2C-siruilla ei ole tätä alarajaa SCL-taajuuteen, mutta melko monilla on.


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...