Forum: Mikrocontroller und Digitale Elektronik DigitalPoti - Bitberechnung und Anstiegsrate


von Mike (Gast)


Lesenswert?

Hallo Zusammen,
ich hätte zwei Fragen zu dem DigitalPoti AD5272/5274, den ich als 
variabler Widerstand für einen Spannungsteiler nutze.

1. Im Datenblatt wird angegeben, dass der aktuelle Widerstandswert 
Rwa=D/1024*Rwa ist.

Wenn Rwa=20kOhm ist und D dem Dezimalwert 0-1023 entspricht, erhalte ich 
für D=1111111111=1023 nicht 20kOhm, sondern 19,980kOhm. Nehme ich für D 
jetzt den maximal-Dezimalwert 1023 oder 1024 (Datenblattauszug: D
 is the decimal equivalent of the binary code loaded in the 10-/8-bit 
RDAC register.)?

2. Bei einem linearen Kennlinienverlauf habe ich eine bestimmte 
konstante Anstiegsrate von V/Bit. Bei 1000V und 1024 Schritten z.B. 
0,976V. Möchte ich 1,953V, also die nächsthöhere Stufe, muss ich bei 
jedem Hochzählen um 2 Bits erhöhen und so weiter. Wie mache ich das aber 
bei einem nichtlinearen Verlauf (logarithmisch)? Da habe ich keine 
konstante Anstiegsrate, möchte aber auch eine Anstiegsrate über eine GUI 
definieren. Intern ist das ja kein Problem. Da erhöhe ich einfach um 1 
Bit pro Schritt, um 2 Bit pro Schritt oder 3 Bit und so weiter. Das 
hängt davon ab, wie hoch die Anstiegsrate ist.

von Pandur S. (jetztnicht)


Lesenswert?

Ein Logpot hat dann eben logarithmische Werte, die muss man umrechnen.
Sodass pro Schrittweite eine Multiplikation rauskommt. zB alle 10 
Schritte 10% mehr, oder alle 20 Schritte eine Verdoppelung.

von Achim S. (Gast)


Lesenswert?

Mike schrieb:
> Nehme ich für D
> jetzt den maximal-Dezimalwert 1023 oder 1024

Da 1023 der größte Wert, den du ins Register schreiben kannst, 1023 ist 
rechnest du mit 1023. Allerdings sind die sonstigen Fehler des 
Widerstands (z.B. der Linearitätsfehler oder der zusätzliche 
Wiperwiderstand) in Summe deutlich größer als die 20 Ohm Unterschied, er 
sich aus der Rechnung mit 1023 oder mit 1024 ergibt.

Mike schrieb:
> Wie mache ich das aber
> bei einem nichtlinearen Verlauf (logarithmisch)?

wo kommt denn jetzt was logarithmisches her? Meinst du vielleicht die 
nichlineare Kennlinie des Spannungsteilers aus AD5272 und 
Festwiderstand? Das ist nicht logarithmisch, dass ist einfach die 
Spannungsteilerformel (also einfach ein Bruch). Wenn du damit einen 
linearen Spannungsverlauf erreichen willst, musst du zu jedem (linearen) 
Spannungswert ausrechnen, welcher Widerstandswert die Spannung ergibt, 
die möglichst nahe am gewünschten Spannungswert liegt. Z.B. indem du den 
Bruch entsprechend auflöst und den benötigten Widerstandswert 
ausrechnest.

Wenn es nicht ganz so genau sein muss kannst du die nichtlineare 
Kennlinie stückweise linearisieren: in einem Bereich der KL musst du 
dann in jedem Schritt um 2 hochzählen, in einem anderen Bereich in jedem 
Schritt um 3....

von Mike (Gast)


Lesenswert?

Ok, aber wenn ich D=1023 habe und Rwa=D/1024*Rwa rechne, bekomme ich 
eben nicht 20kOhm raus, sondern 19,980kOhm. Aber höchste Bitzahl müsste 
20kOhm entsprechen, zumindest gehe ich davon aus, wenn ich einen 20kOhm 
DigiPot kaufe. ..

von Achim S. (Gast)


Lesenswert?

Mike schrieb:
> Ok, aber wenn ich D=1023 habe und Rwa=D/1024*Rwa rechne, bekomme ich
> eben nicht 20kOhm raus, sondern 19,980kOhm.

Und da der Wiperwiderstand mindestens 35 Ohm beträgt bist du mit 
19,98kOhm+35Ohm schon über 20kOhm. Und da die Genauigkeit viel geringer 
ist bist du am realen Digipoti irgendwo zwischen 19,9kOhm und 20,15kOhm 
(zumindest grob geschätzt).

Der nominelle Widerstandswert beträgt 20kOhm. Der maximal mögliche 
Widerstandswert in der Realität beträgt irgendwas in der Nähe von 
20kOhm.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.