Sida 1 av 1

EMI, brus och filter för datasignaler - allmänt?

Postat: 4 september 2009, 11:08:38
av jesse
Jaha... så har man funderat lite under natten då... och insett att man inte kan ett skit om ferriter , megahertz och signaler...


Så jag tänkte slå ihop en hel del funderingar om datakommunikation i en tråd och hoppas på att erfarna proffs svarar med begripliga och enkla svar på mina svåra frågor :)

Jag utgår från ett färskt exempel : Jag har ett SPI-interface som kör klockfrekvens 0.5 MHz dvs. kortaste pulsbredden på klockan är 1000 nS. Detta skall från ett kretskort till ett annat, gärna upp till tre meter bort. (just detta) SPI består av fyra ledningar förutom GND och VCC: chip enable, klocka, data in , data out:
Bild

För att SPI ska fungera då master tar emot data så får inte signalen vara så mycket fördröjd:
Bild
Som man ser här så måste datalinjen vara stabil på klockans uppåtflank.

Antag att man vill filtrera bort höga frekvenser. Det innebär att signalerna fasförskjuts en bit.. och den förskjutningen får inte närma sig en halv klockpuls... då missar man data som skickas tillbaks.

Samtidigt vill man filtrera bort så mycket som möjligt över den frekvensen, dels för att ta bort störningar utifrån, dels för att inte sprida höga frekvenser i omgivningen. Men hur dimensionerar man ett sådant filter?

Duger RC-filter eller är en drossel eller ferrit bättre? Och vad ska man välja? Ferriter finns det tusentals av och jag fattar ingenting :humm:

Det står i ferriternas datablad bl.a. impedans vid en viss frekvens, men det säger mig inget om vilken ferrit jag ska koppla på just min datalinje, om jag nu t.ex. råkar köra 0.5 MHz :|

Sen nästa fundering: kör man på samma kretskort duger det säkert att ansluta IC mot IC utan jox emellan, dvs. MCU mot flashminne osv. med normala CMOS logiska nivåer. Men en tremeters ethernetkabel med SPI ?

Ska man köra med buffertar som ger mycket ström och terminera i andra änden med lågohmig resistor? Hur beräkna den resistansen? Eller höftar man till något? Jag har sett värden på mellan 120 ohm och kanske upp till 1k i sådana sammanhang. Visst borde man omvandla signalen till partvinnad motpolig överföring som på RS485, men det vill jag inte; med fyra signaler blir det 8 ledare. Ska jag dessutom klämma in GND och VCC så funkar inte min ethernetkabel längre. Jag vill inte använda mer än totalt 8 poler. Så strömreturen får gå genom GND allihop.

Ja, det var nattens funderingar så långt dom kom innan frukost... spontana reaktioner, någon?

Re: EMI, brus och filter för datasignaler - allmänt?

Postat: 4 september 2009, 12:37:47
av jesse
för att fortsätta monologen då... :roll:

Hittade den här sidan med lite info om termineringsmotstånd , kapacitanser mm. för kabel:
Characteristic Impedance (Ohms): A value based on the inherent conductance, resistance, capacitance and inductance of a cable that represents the impedance of an infinitely long cable. When the cable is cut to any length and terminated with this Characteristic Impedance, measurements of the cable will be identical to values obtained from the infinite length cable. That is to say that the termination of the cable with this impedance gives the cable the appearance of being infinite length, allowing no reflections of the transmitted signal. If termination is required in a system, the termination impedance value should match the Characteristic Impedance of the cable.
och...
The RS-422 specification recommends 24AWG twisted pair cable with a shunt capacitance of 16 pF per foot and 100 ohm characteristic impedance. While the RS-485 specification does not specify cabling, these recommendations should be used for RS-485 systems as well.
Undrar vad en "normal" 10Mb/sek ethernetkabel har för karaktäristisk impedans?
Datahastigheten under 1Mb/sek borde ju inte vara något problem om man kan skicka 100Mb/sek över 30 meter kabel!
Men så är det ju partvinnat ! Om det måste vara dubbeltråd för varje kanal så kanske jag kan kombinera DO och DI till en halvduplex och på så vis räcker det med 3 par - det skulle kunna gå. Hur man nu får två RS485 drivers i vardera änden att samarbeta utan att det blir kortslutning?

Re: EMI, brus och filter för datasignaler - allmänt?

Postat: 4 september 2009, 13:16:47
av hcb
Jag googlade efter impedansen på ethernetkabel, och det verkar som om den är 100 Ohm (det låter också bekant).
Jag är inte med på vad du menar med att kombinera DI och DO till en halvduplex. Tre par är väl vad du hur som helst behöver (DI, DO och SCLK). /CS behöver kanske inte gå i ett tvinnat par. Att köra med tvinnade par och ha riktiga drivkretsar och terminering låter som den säkraste metoden att få säker överföring, men hur nödvändigt det är bågar jag inte säga. Miljön spelar ju en viss roll också.

Re: EMI, brus och filter för datasignaler - allmänt?

Postat: 4 september 2009, 13:44:12
av SvenW
Tre meter bort och 0.5 MHz borde inte kräva några speciella kablar och interfacekretsar, såvida inte omgivningen är kraftigt störande.
Se bara till att återledarna (jord) ligger nära signalledningarna.
Om man tvinnar varje signal med sin återledare går det säkert bra. Glömmer man signalåterledarna och låter en avlägsen kraftmatning göra jobbet blir det förmodligen problem.

Re: EMI, brus och filter för datasignaler - allmänt?

Postat: 4 september 2009, 13:55:29
av Pucco
SPI skickar data i båda riktningarna samtidigt. Ska man dela ledningar måste man multiplexa signalen med dubbla klockan.

Jag skulle prova att buffra signalen med tex 74HC14. Lite klen som buffert men 3 m och 1 MHz är inte så blodigt.

Sedan skulle jag dela upp kabeln så här:
Par 1: SCLK och GND.

Par 2: MOSI och GND.

Par 3: MISO och VCC1 som är filtrerad precis vid kontakten i båda ändarna.

Par 4: /SS och VCC2 som är filtrerad precis vid kontakten i båda ändarna.

Filtret består av en BLM-ferritpärla från VCC till kontaktanslutningen och en 100n kondensator från kontaktanslutningen till GND.
Filtret skapar en virtuell jord till paret så signalen får en stabil returjord. Utanför filtren är VCC ihopkopplade.

Sedan terminerar du mottagarsidan på varje signal med 120ohm i serie med en kondensator (AC-terminering).

Re: EMI, brus och filter för datasignaler - allmänt?

Postat: 4 september 2009, 14:24:26
av jesse
hcb: Jo, tänkte det också , att CS inte skulle behöva mer än en tråd... i så fall klarar jag mig precis med 8 ledningar.
SvenW: du menar om jag kör vanliga 5V CMOS-nivåer så ska varje linje ha sin "egen" GND tillbaks. Fast strömmen går väl lika mycket tillbaks i alla GND-ledningar? ... fel! Vid högre frekvenser tar återströmmen närmaste vägen, inte kortaste vägen! Dvs strömmen i t.ex. ett jordplan följer signalledaren.

Upptäckte precis en annan överföringsstandard som jag genast gillar: LVDS. Det är en differentiell teknik precis som RS485, men kör med en 3.5mA strömgenerator i ena änden och ett 100 ohm motstånd i andra. Det blir alltså alltid en spänning över mottagaren på +350mV eller -350mV beroende på logisk nivå. Eftersom matningsspänningen är på 3-5 volt så finns det gott om utrymme för common mode spänningar (upp till 2 volt!) utan att signalen påverkas. Den låga spänningsskillnaden minskar all form av EMI dessutom. Ska tydligen fungera bra i hastigheter över 40 MHz!

Finns visst gott om LVDS-kretsar att välja bland från en massa olika tillverkare. :P

Pucco: såg ditt inlägg precis. Ska kolla upp det där med filtren. Själv skulle jag nog välja t.ex. 74ACTxx som buffert. Den driver upp till 48 mA tror jag. Multiplexa låter jobbigt. Bättre att köra med varsin ledning i så fall. Köra VCC som "signal ground" funkar ju, det var en bra ide. Eventuellt kommer jag att driva en liten DC/DC i andra änden dessutom (bara på ca 4 mA) så den får ju avstöras rejält också om det ska funka.

Re: EMI, brus och filter för datasignaler - allmänt?

Postat: 5 september 2009, 16:18:58
av xxargs
SvenW skrev:Tre meter bort och 0.5 MHz borde inte kräva några speciella kablar och interfacekretsar, såvida inte omgivningen är kraftigt störande.
Se bara till att återledarna (jord) ligger nära signalledningarna.
Om man tvinnar varje signal med sin återledare går det säkert bra. Glömmer man signalåterledarna och låter en avlägsen kraftmatning göra jobbet blir det förmodligen problem.

EMI handlar inte bara om att bli störd utan också att inte störa andra och där finns det regler på hur mycket det får emittera - och är nästa alltid detta man bangar på vid första EMC-testet.

Generellt kan man säga att under 30 MHz anses är trådbundet och över 30 MHz är luftburet - teoretisk fyrkantvåg har oändligt antal övertoner så även om den går relativt långsamt så är det lätt att det har skräp med ansenlig energi högt upp i frekvens.

Bästa sätt att minska EMI är att inte har snabbare flanker än vad som är nödvändigt för uppgiften och använda tvistad par per signalledare vid transport på kabel eller att ledare gå över jordplan utan brott och urtag vid kretskortsdragning (dvs att varje dataledare har sin egen jordåterledare intill sig parallellt hela vägen från sändare till mottagare - när dataledare går över jordplan så skapas det en 'vituell' jordåterledare som speglar exakt dataledarens väg ovanpå på kretskortet).

Eller som en EMC-utbildare sa ganska allvarligt redan i slutet av 90-talet när EMC-köret började på riktigt - 'vill ni vara säker på att bygga konstruktioner utan hänsyn till EMC och EMI-krav och inte använda jordplan så får ni hålla er linjära regulatorer och långsam 74LS och 40xx-logik med kretsar tillverkade på 70-talet på precis allt, då det inte längre finns modernare komponenter med så långsam slewrate på sina utgångar att köpa längre...'

Vid längre ledarsträckor och högre frekvenser och över kabel så måste man också börja tänka på matchning och impedansanpassning både på driv och mottagarsidan om man inte vill få besvär med reflexer mm...