Vraag:
Waarom zou je een zwevend signaal op een bord nodig hebben?
M. A. Kishawy
2016-09-07 18:59:04 UTC
view on stackexchange narkive permalink

Ik las het volgende uit een boek met de titel " An Embedded Software Primer" door David E. Simon.(23e druk nov / 2014 - pagina 16)

enter image description here

Als geen enkel onderdeel van het circuit een signaal aandrijft, dansignaal wordt zwevend genoemd.De spanning is onbepaald en kan na verloop van tijd veranderen.De resultaten van een zwevend signaal variëren tussen onschadelijk en rampzalig, afhankelijk van hoe de onderdelen met ingangen die zijn aangesloten op het zwevende signaal het probleem oplossen.

Op basis hiervan lijkt het erop dat er geengoede reden waarom een circuit een zwevend signaal zou hebben.Als dit juist is, waarom zou een dergelijk signaal dan zijn toegestaan?

Is dit gedaan vanwege een fout in het bordontwerp?

Zijn er scenario's waarin een dergelijk signaal nodig is?

Je moet echt niet zo snel een antwoord accepteren (in dit geval minder dan 30 minuten).Nu zullen anderen deze vraag waarschijnlijk overslaan, en u zult nooit weten wat ze nog meer hebben gezegd.Een goede regel is om ten minste één dag te wachten, zodat antwoorden over de hele wereld een volledige dagcyclus krijgen om in te bellen.
@OlinLathrop Goed punt, zal proberen de volgende keer wijzer te zijn.Het lijkt erop dat ik de selectie van het antwoord ongedaan kan maken!
Naast de prachtige antwoorden hieronder, kunnen sommige chips een zwevende invoer gebruiken als derde invoerwaarde, bijv.modemchips en acculaderchips.
Stel je een audioversterker voor waarvan de ingang niet op het stopcontact is aangesloten.Het is niet * nodig * om de stekker uit het stopcontact te halen, maar de versterker moet ontworpen zijn om in zo'n geval om te gaan.
@Dmitry Grigoryev: maar de ontwerper moet ervoor zorgen dat in precies dat geval de invoer ** niet zweeft ** (bijv. Door het naar GND te trekken door een weerstand)
@IgnacioVazquez-Abrams dat kan waar zijn, maar intern zal die pin niet zweven.De toestand moet op een gegeven moment worden gemeten, en ik denk dat dat wordt gedaan door een klein beetje logica in de chip, die probeert deze om de beurt in elke richting te trekken met een redelijk grote bronimpedantie, en om te zien of het pin-niveau volgtof als het hoog of laag wordt getrokken door iets van buitenaf.
Vier antwoorden:
Olin Lathrop
2016-09-07 19:16:54 UTC
view on stackexchange narkive permalink

Zwevende signalen zijn meestal geen goede zaak, maar kunnen in sommige gevallen acceptabel zijn. In al die gevallen doet de waarde van het signaal er niet toe.

Niet elk signaal is altijd relevant. Een bekend voorbeeld is de MISO-lijn van een SPI-bus. Dit wordt alleen actief aangestuurd als er een slaveapparaat is geselecteerd (ingeschakeld). De waarde ervan is slechts korte tijd relevant rond een van de SCK-klokranden. Op alle andere momenten kan het signaal elke status hebben zonder invloed op het systeem, aangezien het systeem het negeert.

Dus wat gebeurt er met MISO als er geen slave is geselecteerd, zoals het geval is wanneer de SPI-bus niet is in gebruik? Het antwoord is dat het je niet kan schelen. Het maakt niet uit wat de waarde is, aangezien niemand ernaar kijkt. Aangezien MISO alleen wordt aangestuurd door de enkele geselecteerde slave, moeten alle niet-geselecteerde slaves en al het andere op die lijn een hoge impedantie hebben. Dat betekent dat als er geen slaaf is geselecteerd, de regel zwevend blijft, zoals beschreven in de passage die je hierboven citeerde. Dit veroorzaakt geen slechte gegevens, aangezien het systeem de lijn op dat moment weer negeert.

Hoewel een zwevende lijn logischerwijs OK is als niets naar de waarde kijkt, kan het elektrisch een probleem zijn. Veel logische ingangen zijn bedoeld om de spanning solide laag of solide hoog te laten zijn. Tussenliggende waarden kunnen hogere dan gespecificeerde stromen in het ingangscircuit veroorzaken, en in sommige gevallen kan dit circuit zelfs oscilleren.

Om deze reden is er vaak een zwakke pulldown- of pullup-weerstand op lijnen die zou kunnen drijven. Ik gebruik bijvoorbeeld meestal een pulldown van 100 kΩ op MISO. Wanneer een slaaf is geselecteerd, drijft deze de lijn aan, ongeacht de kleine extra stroom die nodig is om deze in de hoge toestand te houden. Wanneer echter niets de lijn aandrijft, zal deze laag worden, waardoor ongewenste extra stroom en oscillaties in alles dat het signaal ontvangt, worden voorkomen.

Er zijn ook soorten digitale ingangen die elke spanning binnen het geldige bereik aankunnen zonder ongewenste eigenschappen, zoals extra stroom of oscillaties. Schmitt-triggers zijn een voorbeeld.Deze hebben een hysterese, zodat er na het omdraaien een andere spanning nodig is om de andere kant op te draaien.Een zwevende lijn kan ervoor zorgen dat het digitale signaal willekeurig wordt geïnterpreteerd terwijl de spanning ronddrijft, maar de digitale ingang is ontworpen om dat te verwerken.Natuurlijk moet de rest van het systeem nog steeds zo ontworpen zijn dat het niet uitmaakt wat de waarde van dat digitale signaal is gedurende de tijd dat het zweeft.

Over het algemeen zijn echt zwevende signalen slecht, maar kunnen gemakkelijk worden aangepaktmet een zwakke pulldown- of pullup-weerstand.

Goed antwoord.Zoals Olin opmerkte, moet je, als je een ontwerp met ultralaag vermogen probeert te implementeren, aandacht besteden aan eventuele zwevende digitale ingangen die je zou kunnen hebben.Microprocessor-datasheets citeren indrukwekkende stroomafnames in slaapmodi, maar ik kan uit ervaring zeggen dat je misschien een paar extra mW nodig hebt, tenzij je goed oplet om al je digitale ingangen te beëindigen, hetzij via pullups / pulldowns of door deI / O-buffer op uw microprocessor om signalen aan te sturen (zet ze op een uitgang) wanneer ze niet worden gebruikt.
Een ander kenmerk dat op sommige chips te zien is (en welke IMHO vaker zou moeten voorkomen) is een "bus keeper" die een lijn zwak hoog trekt wanneer deze hoog is, en zwak laag wanneer deze laag is.In tegenstelling tot pull-ups of pull-downs, die constant stroom verspillen wanneer een pin zich in de ongunstige toestand bevindt, zal een buswachter in geen van beide stabiele toestanden stroom verbruiken.Bovendien, aangezien bushouders de lijncapaciteit niet hoeven te overwinnen, hoeven ze niet erg sterk te zijn en hoeven ze dus niet veel stroom te verspillen, zelfs niet tijdens het schakelen.
Arsenal
2016-09-07 20:19:28 UTC
view on stackexchange narkive permalink

U kunt tijdens het opstarten van een microcontroller veel zwevende lijnen op uw bord hebben.

Meestal worden de meeste pinnen van een microcontroller geïnitialiseerd als invoer of zelfs als analoge invoer, omdat de controller dat kanIk weet niet hoe hij zijn pinnen moet configureren voor het bord waarop hij is geplaatst.

In dit scenario zweven de meeste van de latere uitgangen in eerste instantie, meestal slechts een paar milliseconden totdat de software de pinnen overeenkomstig initialiseert.Nog genoeg tijd om wat problemen te veroorzaken, daarom gebruiken we op kritieke regels (bijvoorbeeld schrijfbeveiliging op een EEPROM) pull-up- of pull-down-weerstanden om een veilige opstartvolgorde te hebben.

Ik hebben een aantal chips tegengekomen waarvan de logica niet zo robuust was als het antwoord van Olins suggereert, dus ik wil graag dat mijn signalen gerepareerd zijn.

Een antenne kan worden gezien als een zwevende lijn die gewenst is - soort van ...

Curd
2016-09-07 19:03:46 UTC
view on stackexchange narkive permalink

Ik denk aan een voorbeeld: buslijnen die op verschillende tijdstippen door verschillende poorten worden gebruikt, kunnen zweven als er momenteel geen poorten zijn die ze gebruiken.

Ik denk dat het boek duidelijk heeft gemaakt dat je hebben ze niet nodig, maar ze kunnen zomaar gebeuren.

Het minste dat moet worden gedaan in systemen met lijnen die kunnen zweven (bijv. een data- en adresbus in een microprocessorsysteem) is om ervoor te zorgen dat geen enkel apparaat het signaal van die lijnen als invoer gebruikt zolang ze zwevend zijn (bijv. door de activeringsinvoer van geheugen, randapparatuur enz. componenten op inactief te zetten).

Ik denk niet dat deze lijnen echt zullen zweven.Op de meeste apparaten heeft de hoge impedantietoestand, wanneer de lijn niet wordt gebruikt, slechts een weerstand van enkele mega-ohm.
@Eoin: A "een paar mega-ohm" ** is ** praktisch zwevend.Bijv.de min.isolatieweerstand van deze schakelaar is gespecificeerd als 2M \ $ \ Omega \ $!http://www.farnell.com/datasheets/1684954.pdf Als bijv.10M \ $ \ Omega \ $ zweeft niet voor u, dan zult u moeite hebben om een zwevende lijn te vinden!
Een paar megaohm is gemakkelijk genoeg om de spoorcapaciteit (waarschijnlijk minder dan nanofarads) in een fractie van een seconde te ontladen. Door de weerstand van deze schakelaar kan er geen zwevende lijn ontstaan.Maar u kunt sporen hebben die worden gescheiden door bijv.relais die gigaohm tussen hen zullen hebben.Die zweven, omdat het veel tijd zal kosten om een opgebouwde lading te ontladen.
Als het relais op een printplaat is gesoldeerd, betwijfel ik of je G \ $ \ Omega \ $ isolatie zult hebben, vooral als het stoffig wordt ... En waarom zweeft 10MΩ niet maar 10GΩ?Waarom niet 10TΩ? ...
Laten we het er gewoon over eens zijn dat we verschillende definities van zweven hebben.
user117772
2016-09-07 20:38:34 UTC
view on stackexchange narkive permalink

Het gevaar van een zwevende pin is dat de waarde ervan niet vooraf kan worden bepaald, maar dat is op zich geen probleem.Het probleem komt voort uit iets dat gebruik maakt van die waarde, of er aannames over doet.

Veel chips accepteren en hanteren intern het laten zweven van sommige van hun pinnen, wat de verantwoordelijkheid van bordontwerpers naar chipontwerpers verplaatst.Dit komt het meest voor bij communicatiebussen, multifunctionele pinnen en chips met veel opties.



Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...