Vad ska man tänka på om man isolerar SPI genom optokopplare?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Vad ska man tänka på om man isolerar SPI genom optokopplare?

Inlägg av Magnus_K »

Tänkte kolla om ni har några bra "tips-från-coachen" när det kommer till att isolera SPI-kommunikation?

Funderingarna uppkom genom att jag försöker hitta en lösning på att mäta 0-200 VDC med en µC.
Enklaste lösningen borde vara en spänningsdelare men det innebär ju inte ett speciellt säkert system om något skulle hända som tex överspänning, trasig resistor etc.

Banorna jag funderar på är att ha en "offer-ADC" som tar in spänningen genom en delare och skickar SPI till min µC genom någon slags isolator.
Jag har läst att det finns flera olika typer som till exempel magnetiska, induktiva och optiska.

Har ni testat något och vad bör man tänka på?
Hade jag bara haft en optokopplare hemma så skulle jag testa att proba före och efter kopplaren och se hur signalen påverkas...
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av Icecap »

Det är inte så svårt faktisk - om du inte behöver höga hastigheter. Så det är dags att fundera över uppdateringshastighet osv.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av Magnus_K »

Hastigheter var det ja...
Bara hunnit kika lite på det än men jag tror att kring 100 kb/s borde bli bra (?).

Detta grundar jag på att :
  • - min µC klarar av det lätt med sin 8MHz klocka
    - MCP3201 verkar vara en populär och billig 12-bitars A/D -omvandlare och den har sin sampling rate på 100 kSPS (och det är väl ingen idé att ha snabbare kommunikation än den kan sampla?)
    - snabbare optokopplare drar också snabbt iväg i pris verkar det som men 100 kb/s-kopplare verkar man kunna få för ganska vettiga priser, kanske runt 30:-
Låter detta som rimliga slutsatser?
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av hanzibal »

Kolla stig- och falltider för tilltänkt optokopplare och se till att dessa är tillräckligt korta relativt pulslängden för den bussklockfrekvens du tänkt använda.

Om du exempelvis tänkt köra SPI på 1Mhz så är pulslängden 0,5us (vid 50% pulskvot). En ganska vanlig optokopplare är t.ex. EL817 som enligt bladet har stig- och falltider uppåt 20us och funkar alltså inte alls för SPI på 1MHz som alltså kräver en mycket snabbare optokopplare.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av sodjan »

För att överföra data från en 12-bit ADC som samplar med 100 KS/s så behöver
du absolut minst 100*12 Kbit/s. Och det är enbart själva värdet som sådant,
sen tillkommer overhead i själva SPI kommunikationen/protokollet.

Vad som inte framgår är om du faktiskt behöver 100 KS/s. Hinner du
göra något vettig med värderna på din "µC" (vad nu det är)? Du har
bara 10 us på dig mellan varje nytt värde...
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av Magnus_K »

Ja det var ett bra exempel hanzibal. Det är klart ja. Ju högre frekvens innebär mer data på mindre tid men fall/stig-tiderna kan ställa till det för kopplaren. Detta ska jag titta vidare på!

Tror inte att jag verkligen behöver 100 KS/s. Det jag vill göra är som sagt att mäta spänningen, skicka vidare den till min µC som sedan ska presentera spänningen på en LCD.
Jag har inte bestämt än om jag ska vidarebehandla datan och representera den ut till en DAC via SPI eller från en inbyggd.

Hade lite förhoppning om att kunde komma fram till en hanterbar hastighet utan att ställa för stora krav på design och komponenter.

Det är bra det du skriver sodjan att om ADC samplar med 100 KS/s och är 12 bitar så behöver jag kommunicera med en hastighet av 1200 Kb/s (1,2MHz?) plus overhead. Det blir inte aktuellt.
Däremot så kan väl den få sampla hur mycket som helst men jag plockar datan med den hastighet jag vill?

Säg att jag önskar uppdatera µC:n med ADC-data 10 ggr per sekund. Behöver jag då alltså kommunicera med en hastighet av 10 x 12 bit = 120 b/s = 120 Hz plus overhead, hur mycket det nu kan vara.
Tänker jag tokigt?

EDIT: Särskrivning...
Senast redigerad av Magnus_K 22 november 2014, 20:52:17, redigerad totalt 1 gång.
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av Icecap »

Ska värdet visas på ett display är 3 uppdateringar/sekund allt som behövs, mer än det är bara flimrande tal.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av Magnus_K »

Ah, det visste jag inte. Tack för det! :tumupp:
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av hanzibal »

Magnus_K skrev:Säg att jag önskar uppdatera µC:n med ADC-data 10 ggr per sekund. Behöver jag då alltså kommunicera med en hastighet av 10 x 12 bit = 120 b/s = 120 Hz plus overhead, hur mycket det nu kan vara.
Ja och enligt databladet sid 19 har chipets SPI-interface en overhead på 3 klockperioder (2 + nullbit) varpå de 12 databitarna sedan följer. Alltså 3 / 15 = 1 / 5 = 20% overhead.

Du måste alltså öka SPI-klockfrekvensen med 20% i förhållande till önskad nettodatahastighet så för 120 bps behöver klockan alltså vara minst 120 x 1,2 = 144 Hz.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av Magnus_K »

Perfekt, tack! Ska bläddra igenom databladet lite senare och se om jag kan räkna ut ungefär vilken maxgräns just denna har.
Ska ta och kika på lite olika optokopplare men EL817 verkar ju vara en vettig att ha i lådan i alla fall. Samt att den antagligen räcker till detta projekt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av sodjan »

Men nu så är det ju sannolikt orealistiskt att köra en SPI bus
i 144 b/s. Och normala optokopplare (om du ska köra med det)
lär väl komma upp i ett par tiotal Kb/s i alla fall.

> Ah, det visste jag inte.

Vad var det du inte visste? Att man inte kan läsa av en
LCD som uppdateras 100.000 ggr/sekund med ögat?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av Micke_s »

Analog devices adum serie kanske? Digitala 4kanalers isolatorer..

Titta på adum1401 tex
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av hanzibal »

sodjan skrev:Men nu så är det ju sannolikt orealistiskt att köra en SPI bus
i 144 b/s. Och normala optokopplare (om du ska köra med det)
lär väl komma upp i ett par tiotal Kb/s i alla fall.
Ja, det var ett räkneexempel, i praktiken hade man nog kört SPI-klockan så snabbt som optokopplaren och ADC-chipet tillåter.
Magnus_K skrev:Perfekt, tack! Ska bläddra igenom databladet lite senare och se om jag kan räkna ut ungefär vilken maxgräns just denna har.
Ska ta och kika på lite olika optokopplare men EL817 verkar ju vara en vettig att ha i lådan i alla fall. Samt att den antagligen räcker till detta projekt.
Med EL817 kommer du nog inte upp mer än i kanske 10kHz emedan den där adum1401 tycks vara uppåt 1000 ggr snabbare och 4-pack dessutom.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av Magnus_K »

@Micke_s:
Det var ju en riktigt fin IC! Hade aldrig hört talas om just "Interface-isolatorer" vilket säkert är exakt det jag borde använda här.
Den här gången faller det nog på att ELFA bara hade en som var hålmonterad, och den var 6-kanalig. Kommer egentligen bara behöva 1 kanal och jag tänkte försöka hålla mig till hålmonterat ett tag till. Ska å andra sidan ha detta i bakhuvet!
Dom optokopplarna jag har kikat på är dom som klassas som "High Speed/Logik" hos ELFA -> Länk_till_det_sortimentet

@hanzibal:
Om jag kan komma upp till kring 10kHz så blir det ju kanoners. Har lagt på några såna här till min nästa beställning.
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: Vad ska man tänka på om man isolerar SPI genom optokoppl

Inlägg av hanzibal »

På sid 22 i bladet för mcp3201 står förresten att lägsta tillåtna klockfrekvens är 10kHz för att ADCn skall fungera korrekt. Då ligger du troligen nära eller tom över gränsen för vad EL817 klarar innan den storknar.
Skriv svar