Fråga:
Tillvalsdragningsmotstånd för I²C
Łukasz Przeniosło
2018-03-14 14:23:20 UTC
view on stackexchange narkive permalink

Jag behöver en krets som gör det möjligt för mig att eventuellt lägga till uppdragsmotstånd till en I²C-buss.Ett sätt skulle vara att lägga till två byglar för varje uppdragsmotstånd.Men jag tänkte på något sådant:

Enter image description here

På detta sätt används endast en bygel och SDA stör inte SCL när J1 inte är monterad.IMO detta borde fungera, men kanske ser jag inte något.

Varför vill du koppla bort dragmotstånd?Vad är anledningen?
Eftersom kretsen som kommer att ansluta till den här kan ha dem.Om han inte gör det kan jag koppla bort dem.Annars uppstår parallellt motstånd.Men så är verkligen inte fallet.Det är viktigare för mig att antingen denna typ av krets fungerar.
Varför kan du inte bara hålla fotavtrycket på kretskortet då kan du antingen passa dem eller inte passa dem?
Ja, det kommer att bli bra.Vi har gjort samma sak på brädor av liknande skäl utan problem.Det låter som att programmerbar konfiguration är dina krav här, inte byglar.Redigera din fråga och lägg till den informationen 'i den.
Förresten, vilka chip använder du på den I²C-bussen?Jag frågar eftersom de flesta moderna mikrokontroller har * programmerbara * pullups, och du behöver inte ens externa längre!
@MarcusMüller Detta är ett program där jag använder P82B96DP.Utan att gå in på många detaljer finns det en situation där jag måste ansluta en enhet till den "lokala" i2c-linjen utan att någon enhet är ansluten till extern i2c med sina egna pull-ups.I så fall behöver LCL- och LDA-linjerna pullups, för annars är linjerna inte höga Z. Således detta motståndstrick.
ha, intressant fall, trevligt!
Du kan behålla båda uppsättningarna motstånd så länge du är försiktig med den totala sjunkningsströmmen genom dina i2c-kretsar.
@Marcus Jag måste bestrida din poäng att mikrokontroller har interna pull-ups som är tillräckligt bra för I2C.Det finns bevis för det motsatta ([här] (https://electronics.stackexchange.com/q/102611/7036), [här] (https://electronics.stackexchange.com/q/128875/7036), [här] (https://electronics.stackexchange.com/q/160121/7036) är några exempel).Kan du lägga upp en modell av en mikrokontroller som har pull-ups som uppfyller I2C-specifikationen?
@NickAlexeev Fair point;ja, ja, du har helt rätt: interna pull-ups är sällan starkare än 25 kΩ, och därmed inte tillräckliga för I²C.verkar jag har haft tur!
Jag skulle tillhandahålla separata byglar för varje diod.Med endast en är besparingarna minimala och risken för korskoppling (eller värre) är hög.
Två svar:
Marcus Müller
2018-03-14 14:39:34 UTC
view on stackexchange narkive permalink

Även om jag tror att detta skulle fungera, skulle jag inte se den omedelbara fördelen med att koppla bort pullups;Jag är säker på att du har en bra anledning!

Var lite försiktig:

En diod i omvänd förspänning är en kondensator.Låt oss säga 3,3 V av din buss, med bygeln öppen, det betyder att till exempel om SDA är låg och SCL blir hög, så är en av dioderna framåt, en i omvänd förspänning.Databladet berättar för mig att det sedan har en kapacitet på cirka 8pF.Motsvarande motstånd vid 400 kHz × 5 (en överton som du vill ha för att få minimalt fina och rena klockkanter) är \ $ \ dfrac {1} {2 \ cdot 10 ^ 6 \ gånger 8 \ cdot 10 ^ {-12}} = 1/16 M \ Omega \ $ - ganska nära dina motståndsvärden!Du kan då införa ofrivillig korskoppling mellan SDA och SCL.Det kommer inte att bli dåligt, men du kommer att se lite SCL ringa på SDA.

Nu, som @TonyM påpekar, är 200 pF kapacitans speciellt OK för I²C, och han hade gjort det i flera år, så: Oroa dig inte för den överhörningen.

Men stift- och spårkapacitanser på en genomsnittlig I2C-buss kommer sannolikt dock att vara långt över 8 pF.I2C-specifikationen möjliggör 200 pF med motståndsuppdrag.Jag skulle bli mycket förvånad om detta faktiskt kommer att orsaka ett problem, MM.Något närmare förvånad, eftersom vi har använt den här transistorn / dioden / motståndet helt utan problem på kort som vi har gjort och kört i flera år :-) Ett väldigt falskt larm, jag är rädd, måste nedrösta.
@TonyM ah!du förstår, upplevelse som din är en styrka!Jag välkomnar hjärtligt din nedröstning :) Jag fixar det på en minut.
Smicker har tagit dig överallt, herre, liksom att revidera svaret.Det är nu ett väldigt konstigt och något självmotsägande svar men jag har tagit bort nedröstningen :-)
Beskrivningen myntade mot mitt svar gäller mig själv ganska bra, så jag tar det som en komplimang också :)
Min knästödslösning skulle vara två separata byglar istället för en bygel och ett par dioder.Relaterad tidigare fråga: [Hur man hanterar flera uppdragningsmotstånd på moduler] (https://electronics.stackexchange.com/questions/68096/how-to-deal-with-multiple-pull-up-resistors-on-moduler).
Regis Desrosiers
2018-03-14 15:55:09 UTC
view on stackexchange narkive permalink

Det är viktigt att de externa uppdragningsanordningarna som är anslutna till busslinjerna måste anpassas för att tillgodose den kortare maximalt tillåtna uppgångstiden (eller falltid) för snabbläge I²C-bussen.Det ska vara mindre än 300 ns.

Den rekommenderade metoden för att växla en pull-up i I²C-specifikationen är följande:

Switched pull-up circuit



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...