Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #231170 > unrolled thread
| Started by | Ole Jansen <remove.this.kaspernasebaer@gmx.de> |
|---|---|
| First post | 2017-08-16 09:20 +0200 |
| Last post | 2017-08-16 22:35 +0200 |
| Articles | 6 on this page of 26 — 14 participants |
Back to article view | Back to de.sci.electronics
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
Page 2 of 2 — ← Prev page 1 [2]
| From | Marte Schwarz <marte.schwarz@gmx.de> |
|---|---|
| Date | 2017-08-17 14:23 +0200 |
| Message-ID | <on41ro$go4$1@news2.open-news-network.org> |
| In reply to | #231183 |
Hallo Hans-Peter, > Nach meiner Erfahrung geht das nicht so einfach. Vermutlich werden die > SMD Widerstände vor dem Verpacken so stark gemischt, daß die Toleranzen > bestenfalls für 6 Bit ausreichen. PTH Widerstände werden möglicherweise > weniger durchmischt gegurtet, damit hatte ich bessere Ergebnisse. Ich weiß nicht auf welche Erfahrungen Du zurückgreifst. Meine Studis bauen jedes Jahr ca 30 8 Bit DA auf dem Steckbrettchen auf. 20 k und 10 aus unterschiedlichen Gurten, aber 1%er. Gemessen werden die Teile dann mit den 10 Bit vom Arduino. Das Ergebnis kann sich durchaus sehen lassen. Die 8 Bit sind ziemlich gut linear. Marte
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2017-08-16 13:29 +0200 |
| Message-ID | <on1aeo$2vv$1@news4.open-news-network.org> |
| In reply to | #231170 |
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: 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.
[toc] | [prev] | [next] | [standalone]
| From | Ole Jansen <remove.this.kaspernasebaer@gmx.de> |
|---|---|
| Date | 2017-08-16 15:23 +0200 |
| Message-ID | <evivb0FkgddU1@mid.individual.net> |
| In reply to | #231185 |
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.
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2017-08-16 15:43 +0200 |
| Message-ID | <on1i9r$8dt$1@news4.open-news-network.org> |
| In reply to | #231186 |
Ole Jansen wrote: > 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". Ja und, was habe ich damit zu tun? >> 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? Nö, steht doch da "PWM", wie "PulsWeitenModulation": Mit Deinen 10bit stellst Du bei unveränderter Hardware die groben Stufen ein und dann wird mit dem zeitabhängigen PWM-Teil in der letzten Stufe die Feineinstellung draufgesetzt. Du musst Deine Daten also so aufteilen, dass die LSB die zeitabhängige PWM steuern und die MSB den "stufigen" DAC. Wie viele LSB Du da verwenden kannst, hängt von Timing und dem Tiefpaß ab. Ganz einfaches Beispiel: Du kannst 1,2,3,4,... einstellen (DAC), für 3.5 stellst Du erst 3 ein und nach dem halben Intervall dann 4, nächstes Intervall wieder 3, nach dem halben nächsten Intervall wieder 4 (PWM) und letztendlich kommt hinter dem Tiefpaß dann 3.5 an. Neue Werte werden nur an den Intervallgrenzen übernommen und stellen dann ggf. das Timing anders ein, für 3.25 dann nach 3/4 Intervall auf 4 schalten. Umgekehrt ginge auch, erst auf 4 und nach 1/4 Intervall zurück auf 3 ist vielleicht intuitiver. Das ist auch keine Theorie, sondern habe ich schon realisiert, wobei der Tiefpaß eine Heizung war und der Einstellbereich von 0..3 auf 0..63 erweitert wurde.
[toc] | [prev] | [next] | [standalone]
| From | Thomas Prufer <prufer.public@mnet-online.de.invalid> |
|---|---|
| Date | 2017-08-16 16:43 +0200 |
| Message-ID | <bfm8pclfcns8vipvahgt5djl2kih5fg35j@4ax.com> |
| In reply to | #231170 |
On Wed, 16 Aug 2017 09:20:35 +0200, Ole Jansen <remove.this.kaspernasebaer@gmx.de> wrote: >Hat jemand Tips wonach ich da suchen muss? Codeschnipsel? >Was mit "Oversampling"? "1-Bit DAC"? Thomas Prufer
[toc] | [prev] | [next] | [standalone]
| From | Sieghard Schicktanz <Sieghard.Schicktanz@SchS.de> |
|---|---|
| Date | 2017-08-16 22:35 +0200 |
| Message-ID | <20170816223527.7c6eebc9@Achmuehle.WOR> |
| In reply to | #231170 |
Hallo Ole, Du schriebst am Wed, 16 Aug 2017 09:20:35 +0200: > für folgendes Problem fallen mir einfach nicht die > richtigen (Such)Begriffe ein: Die hast Du jetzt ja schon genannt bekommen. > - Gewünscht wird ein langsames aber möglichst lineares > Ausgangssignal mit sagen wir mal 16 bit Auflösung. > Tiefpass am Ausgang ist vorhanden. Du schriebst am Wed, 16 Aug 2017 12:03:46 +0200: > Zur Zeit pendelt die Regelung immer zwischen zwei Werten hin und > her dass ichs mit dem bloßen Auge sehen kann. Aaber... - bist Du Dir sicher, daß das wirklich die zu geringe Auflösung ausmacht und Du nicht etwa eine Regelschwingung siehst? Bei einer Regelschwingung wird sich der Wert zur Ansteuerung des D/A- Wandlers innerhalb der Schwankungsperiode um deutlich mehr als ein LSBit ändern, und die Schwankungsperiode wird auch erheblich länger sein als die Regler-Abtastperiode. Das läßt sich dann nur mit einem besseren Abgleich des Reglers beheben. Wenn der D/A-Wert wirklich nur um ein Bit schwankt, dann kannst Du ein "Dithering" vielleicht schon erreichen, wenn Du nur den Regler deutlich schneller machst - dann schaltet er halt das LSBit in der gleichen Zeit öfter, was mittels Tiefpaß und thermischer Trägheit einen stabileren Mittelwert ergibt. Natürlich darf dadurch der Regler dann auch nicht zum Schwingen kommen, was wohl (auch) einen neuen Abgleich zur Folge hat. -- -- (Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem) ----------------------------------------------------------- Mit freundlichen Grüßen, S. Schicktanz -----------------------------------------------------------
[toc] | [prev] | [standalone]
Page 2 of 2 — ← Prev page 1 [2]
Back to top | Article view | de.sci.electronics
csiph-web