Något i stil med RPi med DAC på minst 10 bit (ej audio)?
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Jag har letat lite grand, med betoning på lite, men hittar inget RPi-liknande med DAC på minst 10 bit helst 12.
Det jag vill göra är att hämta data via ethernet och skapa en eller flera analoga utsignaler. Det är inget absolut krav men ett stort plus om kortet kör Linux.
Jag har en känsla av att det får bli något anslutet via SPI. Men, vem vet, det kanske finns något färdigt...
Det jag vill göra är att hämta data via ethernet och skapa en eller flera analoga utsignaler. Det är inget absolut krav men ett stort plus om kortet kör Linux.
Jag har en känsla av att det får bli något anslutet via SPI. Men, vem vet, det kanske finns något färdigt...
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Ofta är den enklaste lösningen en PWM-utgång följd av ett RC-filter.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Jo så är det ju. Men jag tycker inte det ser ut som RPi har PWM ut.
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Vad får man för PWM-frekvens om man skriver den i mjukvara då? Driven av timer-interrupt?
Man borde ju kunna få samma PWM-frekvens för 8 utgångar som 1 utgång (man modulerar helt enkelt en byte i loopen istället för en enskild bit).
Man borde ju kunna få samma PWM-frekvens för 8 utgångar som 1 utgång (man modulerar helt enkelt en byte i loopen istället för en enskild bit).
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Jo jag har tänkt tanken. I den här tillämpningen räcker säkert 1Hz uppdatering så om man kan uppdatera PWM med 4096Hz får man 12 bits och det räcker ju bra.
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
ljudutgången på RPi har jag för mig är PWM - sedan om det är användbart i ditt fall är en annan sak
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Det stämmer att ljudutgången är PWM, men den går inte att adressera direkt utan man måste i såna fall fylla en "ljudbuffert" med den nivå man vill ha. Och bygla kondingarna.
Däremot finns det tydligen ett library som fixar PWM via DMA till valfri GPIO.
https://pythonhosted.org/RPIO/pwm_py.html
Däremot finns det tydligen ett library som fixar PWM via DMA till valfri GPIO.
https://pythonhosted.org/RPIO/pwm_py.html
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Om du ska ha 12 bitars upplösning och 1Hz och med ett RC filter på 3dB/oktav så behövs det 12 oktaver för att få bort ripplet = 4096 Hz och för att sedan få 12 bitars upplösning krävs 4096 steg, så PWM frekvensen måste vara 4096x4096 = 16.666.624Hz.
Inte helt otänkbart för en HW PWM men knappast för en SW version.
/Ropa
Inte helt otänkbart för en HW PWM men knappast för en SW version.
/Ropa
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Ett RC-filter brukar väl ge 6dB per oktav? Sedan är det ju inget som hindrar att man har ett tredje ordningens filter och då brukar det väl bli 18dB per oktav. Och slutligen kanske man kan tänka sig mindre än 12 bitars upplösning men det framgick ju inte i mitt inlägg. 
Kan man lösa det med DMA borde det vara ganska enkelt. Nu vet ju inte jag hur det här med DMA fungerar i en RPI eftersom min gamla RPi bara tjänstgör dom en btsync server och gateway till mitt lokala nät. Med en STM32F407 hade det varit trivialt men då skulle Modbus över Ethernet vara lite besvärligare.

Kan man lösa det med DMA borde det vara ganska enkelt. Nu vet ju inte jag hur det här med DMA fungerar i en RPI eftersom min gamla RPi bara tjänstgör dom en btsync server och gateway till mitt lokala nät. Med en STM32F407 hade det varit trivialt men då skulle Modbus över Ethernet vara lite besvärligare.

- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Nerre: Bra länk. Kanske dessutom kan få den gamle trötte mannen att lära sig Python. Tack!
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
3 dB volt = 6dB watt.
Ett RC filter ger 3dB volt per oktav och 6dB watt per oktav.
Eftersom jag tror vi talar volt i DA fallet så blir det 3dB volt per oktav, alltså en halverad signal per oktav.
Normalt anger man dB i watt men i signalsammanhang när det inte är någon ström att tala om (långt bortom 50ohm landet) så händer det att man räknar med 10log(dU) och inte 20log(dP)
A change in voltage ratio by a factor of 2 (equivalently factor of 4 in power change) approximately corresponds to a 6 dB change in level.
https://en.wikipedia.org/wiki/Decibel
Sen kan man kaskadkoppla filter till högre ordning och med två op nå 24dB watt, alltså en undertryckning med 16ggr.
Men totalt behövs det 72dB watt för att undertrycka 4096 gånger över en oktav, men det räcker då med 12 RC steg a 6dB styck.
Man får in två per op så 6st op i serie så äör du hemma
Ärligt så tror jag inte att PWM är rätt väg att gå om man vill ha "hög" upplösning men med rätt krets så...
1-bit DAC var populärt på CD-spelarnas tid...
edit: fixade tabellen...
/Ropa
Ett RC filter ger 3dB volt per oktav och 6dB watt per oktav.
Eftersom jag tror vi talar volt i DA fallet så blir det 3dB volt per oktav, alltså en halverad signal per oktav.
Normalt anger man dB i watt men i signalsammanhang när det inte är någon ström att tala om (långt bortom 50ohm landet) så händer det att man räknar med 10log(dU) och inte 20log(dP)
Kod: Markera allt
dB Power ratio Amplitude ratio
6 3.981 1.995 ≈ 2
3 1.995 ≈ 2 1.413
1 1.259 1.122
0 1 1
https://en.wikipedia.org/wiki/Decibel
Sen kan man kaskadkoppla filter till högre ordning och med två op nå 24dB watt, alltså en undertryckning med 16ggr.
Men totalt behövs det 72dB watt för att undertrycka 4096 gånger över en oktav, men det räcker då med 12 RC steg a 6dB styck.
Man får in två per op så 6st op i serie så äör du hemma

Ärligt så tror jag inte att PWM är rätt väg att gå om man vill ha "hög" upplösning men med rätt krets så...
1-bit DAC var populärt på CD-spelarnas tid...
edit: fixade tabellen...
/Ropa
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Ja det här med effekt kontra spänning eller ström brukar bli lite förvirrande.
Jag vill inte hävda något med bestämdhet (nu iallafall) men jag har ett vagt minne av att man brukar räkna 6dB per oktav när det gäller filter med OPar. Men det kanske gäller effekt. Jag får kolla upp det imorgon.
Men om 3 eller 6 dB motsvarar en halvering och man med en OP kan få 9 eller 18 dB innebär det ju att man får dämpning 1:8 i ett steg. Har man då en översampling på 512 gånger är man väl i princip hemma. Med reservation för sen timme.
Jag vill inte hävda något med bestämdhet (nu iallafall) men jag har ett vagt minne av att man brukar räkna 6dB per oktav när det gäller filter med OPar. Men det kanske gäller effekt. Jag får kolla upp det imorgon.
Men om 3 eller 6 dB motsvarar en halvering och man med en OP kan få 9 eller 18 dB innebär det ju att man får dämpning 1:8 i ett steg. Har man då en översampling på 512 gånger är man väl i princip hemma. Med reservation för sen timme.

Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Jo, med brantare filter krävs mindre översampling, helt rätt.
Att använda DMA hårdvaran i ARM processorn i Rpi verkar vara ett bra sätt att skapa PWM med hög upplösning.
Med 1uS som minsta puls och 4096 per cykel så är du uppe i ca 200 ggr översamling, drygt 7 oktaver och då är det bara 5 kvar så med två 18dB filter i kaskad så är du hemma.
Men med en 12 bit DAC blir det nog både enklare, effektivare och mer exakt, typ en 30 spänn på ELFA för en tvåkanalers.
Slippa joxa med massa filter och utrymmeskrävande komponenter.
Att använda DMA hårdvaran i ARM processorn i Rpi verkar vara ett bra sätt att skapa PWM med hög upplösning.
Med 1uS som minsta puls och 4096 per cykel så är du uppe i ca 200 ggr översamling, drygt 7 oktaver och då är det bara 5 kvar så med två 18dB filter i kaskad så är du hemma.
Men med en 12 bit DAC blir det nog både enklare, effektivare och mer exakt, typ en 30 spänn på ELFA för en tvåkanalers.
Slippa joxa med massa filter och utrymmeskrävande komponenter.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Något i stil med RPi med DAC på minst 10 bit (ej audio)?
Men nu är jag en pervers jävel som älskar översampling. Delvis för att folk brukar bli så förvirrade. 
