Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.sci.electronics > #231186

Re: D/A Wandler Auflösung

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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