Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #231186
| From | Ole Jansen <remove.this.kaspernasebaer@gmx.de> |
|---|---|
| Newsgroups | de.sci.electronics |
| Subject | Re: D/A Wandler Auflösung |
| Date | 2017-08-16 15:23 +0200 |
| Message-ID | <evivb0FkgddU1@mid.individual.net> (permalink) |
| References | <evia20FfksuU1@mid.individual.net> <on1aeo$2vv$1@news4.open-news-network.org> |
Am 16.08.2017 um 13:29 schrieb Edzard Egberts: > Ole Jansen wrote: >> Moin, >> >> für folgendes Problem fallen mir einfach nicht die >> richtigen (Such)Begriffe ein: >> >> - Zur Verfügung stünde ein 10bit D/A Wandler welchen >> ein µC mit ca. 10kHz mit Daten versorgen kann. >> >> - Gewünscht wird ein langsames aber möglichst lineares >> Ausgangssignal mit sagen wir mal 16 bit Auflösung. >> Tiefpass am Ausgang ist vorhanden. >> >> Erreicht werden soll dies durch passendes "Modulieren" HI/LO >> Schalten des letzten bits von dem D/A Wandler. >> Der µC ist ein kleiner ATMega und nicht unendlich mächtig. >> Mir ist insbes. unklar mit welchem Algoritmus ich diese >> D/A Umrechnung möglicht schlank implementieren kann. >> >> Hat jemand Tips wonach ich da suchen muss? Codeschnipsel? > > Du musst Dir eben für das letzte Bit eine PWM programmieren: Ich habe mal versucht zu "dithern". Die Funktion rnd64 liefert in zufälliger Reihenfolge die Zahlen 0..63 bei möglichst gleicher Häufigkeit. //input: 16bit word //returns: dithered value // either result = (input div 64) or result = (input div 64) +1 // pseudo random order function dither64(a:word):word; var i,j:integer; begin i:=(a and $FFE0) SHR 6; j:=a and $003F; if (j>rnd64) then i:=i + 1; result:=i; end; Ergibt beispielsweise: Zahl: 58419 /64=912,796875 approx=912,8006 Abweichung=0,2384 Zahl: 39693 /64=620,203125 approx=620,2056 Abweichung=0,1584 Zahl: 1 /64=0,015625 approx=0,017 Abweichung=0,08800 Zahl: 65535 /64=1023,984375 approx=1023,9829 Abweichung=-0,09440 approx: Arithmetischer Mittelwert nach 10000 Zyklen Abweichung: Abweichung in 1/64 > Mit 10 kHz hast Du eine Abtastrate von 100µs und brauchst einen Zähler > für das gesamte Intervall und einen Zähler für das Timing. Wenn Du den > Zähler z.B. mit den drei LSB eines Datums laden willst, ist das gesamte > Intervall 2^3 = 8 Takte lang. Wenn ein neues Datum kommt, wird der > Intervallzähler also mit 8 geladen und der "Breitenzähler" mit dem Wert > der drei LSB, dann bei jedem Takt beide Zähler herunterzählen und wenn > die "Breite" auf Null ist, den Ausgangswert um Eins vermindern. Wenn der > Intervallzähler auf Null ist, wieder das (ggf. neue) Datum laden, > Ausgangswert ändern und wieder loszählen. > Das vestehe ich noch nicht ganz. Ist das Prinzip so ähnlich wie bei einer PLL? O.J.
Back to de.sci.electronics | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
D/A Wandler Auflösung Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2017-08-16 09:20 +0200
Re: D/A Wandler Auflösung Reinhardt Behm <rbehm@hushmail.com> - 2017-08-16 15:29 +0800
Re: D/A Wandler Auflösung Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2017-08-16 12:03 +0200
Re: D/A Wandler Auflösung Reinhardt Behm <rbehm@hushmail.com> - 2017-08-16 18:41 +0800
Re: D/A Wandler Auflösung Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2017-08-16 12:49 +0200
Re: D/A Wandler Auflösung Axel Berger <Spam@Berger-Odenthal.De> - 2017-08-16 20:08 +0200
Re: D/A Wandler Auflösung Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2017-08-17 09:57 +0200
Re: D/A Wandler Auflösung Marte Schwarz <marte.schwarz@gmx.de> - 2017-08-17 14:32 +0200
Re: D/A Wandler Auflösung Rolf Bombach <rolfnospambombach@invalid.invalid> - 2017-08-31 12:15 +0200
Re: D/A Wandler Auflösung Volker Staben <volker.staben@hs-flensburg.de> - 2017-08-17 13:05 +0200
Re: D/A Wandler Auflösung Joerg Niggemeyer <joerg.niggemeyer@nucon.de> - 2017-08-17 13:43 +0100
Re: D/A Wandler Auflösung Volker Staben <volker.staben@hs-flensburg.de> - 2017-08-17 15:01 +0200
Re: D/A Wandler Auflösung Reinhardt Behm <rbehm@hushmail.com> - 2017-08-17 21:20 +0800
Re: D/A Wandler Auflösung Volker Staben <volker.staben@hs-flensburg.de> - 2017-08-18 16:32 +0200
Re: D/A Wandler Auflösung Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2017-08-25 14:34 +0200
Re: D/A Wandler Auflösung Rafael Deliano <rafael_deliano@arcor.de> - 2017-08-16 19:13 +0200
Re: D/A Wandler Auflösung Frank Buss <fb@frank-buss.de> - 2017-08-16 09:53 +0200
Re: D/A Wandler Auflösung Gernot Fink <g.fink@gmx.net> - 2017-08-16 10:05 +0200
Re: D/A Wandler Auflösung Marte Schwarz <marte.schwarz@gmx.de> - 2017-08-16 10:40 +0200
Re: D/A Wandler Auflösung Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2017-08-16 12:54 +0200
Re: D/A Wandler Auflösung Marte Schwarz <marte.schwarz@gmx.de> - 2017-08-17 14:23 +0200
Re: D/A Wandler Auflösung Edzard Egberts <news@edzeg.net> - 2017-08-16 13:29 +0200
Re: D/A Wandler Auflösung Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2017-08-16 15:23 +0200
Re: D/A Wandler Auflösung Edzard Egberts <news@edzeg.net> - 2017-08-16 15:43 +0200
Re: D/A Wandler Auflösung Thomas Prufer <prufer.public@mnet-online.de.invalid> - 2017-08-16 16:43 +0200
Re: D/A Wandler Auflösung Sieghard Schicktanz <Sieghard.Schicktanz@SchS.de> - 2017-08-16 22:35 +0200
csiph-web