Forum: Mikrocontroller und Digitale Elektronik Digitalpoti MCP42010 keine lineare Ausgangsspannung


von Tom (Gast)


Lesenswert?

Hallo,

Digitalpoti ist mit +5V Versorgt.
Poti-Anschlüsse an +2.5 Spannungsreferenz und GND, am Schleifer messe 
ich die Ausgangsspannung.


Die SPI - Routinen:

void SPI_INIT (void)
{


   DDRB |= (1<<PB3)|(1<<PB5)|(1<<PB7)|(1<<PB4);
   SPCR |= (1 << SPE) | (1 << MSTR) | (1 << SPR0) | (1 << CPOL) | (1 << 
CPHA); //SPI enable,as Master,MSB first,CLK/16,Mode3
SPCR &=~(1<<DORD);
   PORTB |= (1 << PB7)|(1 << PB3);
  PORTB&=~(1<<PB4);
}

void SPI_WORD (char data1, char data2)
{

SPI_INIT();
  PORTB|=(1<<PB4);
    PORTB|=(1<<PB7);  //SCK
  PORTB|=(1<<PB5);   //MOSI
  PORTB &=~(1<<PB3);  //CS
    SPDR = data1;
    while(!(SPSR & (1<<SPIF)));
    SPDR = data2;
    while(!(SPSR & (1<<SPIF)));

  PORTB|=(1<<PB3);   //CS
    PORTB &=~(1<<PB7);  //SCK
  PORTB &=~(1<<PB5);   //MOSI

}


main:


SPI_WORD(0b00010001,Offset);
Offset kann über Tastatur von 0 - 255 in 5er - Schritten hochgezählt 
werden)

Ich lass mir jetzt am Display den Offset-Wert anzeigen, also 0 - 255, 
das funktioniert

Bei 0 = 0V, Bei 255 = 2.46V   also oke.
In der (fast) Mitte bei einem Offset - Wert von 130 messe ich aber nicht 
ca. 1.2 sondern nur 1V. Also einen Fehler von ca. 200mV

Das ganze ist überhaupt nicht linear..


An was kann das liegen?


liebe Grüße

von Mark R. (stevestrong)


Lesenswert?

Ich vermute dass es an den "wiper resistance" und den inneren 
Wiederstand des Messgerätes liegen kann.

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Meinst du das?

Kann mir das jemand näher erklären bzw. was kann ich dagegen tun?
Irgent eine Mathematische Lösung?
Einfach +200mV Rechnen geht ja in den äußerden Einstellungen nicht mehr, 
weil die ja stimmen.

Ich addiere nämlich später -1.25V dazu und habe meinen gewollten 0V 
Punkt leider genau dort wo es am ungenausten ist..

von Dietmar S. (dsausw)


Lesenswert?

Hi,
was hängt denn da am Poti (wiper-I)?
Das Messgerät dürfte mit > 1MOhm keinen Einfluss haben.
Hast Du aber einen belasteten Spannungsteiler,
hilft Dir evtl. ein Impeanzwandler (OpAmp)weiter.
Du solltest aber vorsichtshalber einmal mehrere Stützstellen
aufnehmen.

von Werner (Gast)


Lesenswert?

Ehrlich gesagt, ohne Schaltplan und Datenblatt ist das eine mühselige 
Sache und jetzt nach der Arbeit habe ich keinen Lust, das alles 
zusammenzusuchen.

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang ist ein "Schaltplan".

Der Schleifer des Digitalpoti entspricht dem "0-2.5V einstellbar".

Also hängt im Grunde nur ein Addierer dahinter.
Dadurch entsteht ein belasteter Spannungsteiler und verfälscht meine 
Ausgangsspannung oder?

Ich werde mal versuchen einen Impedanzwandler dazwischen zu schalten.

von Werner (Gast)


Lesenswert?

Wenn du den Strom ausrechnest, der über deinen Widerstand zum 
invertierenden Eingang deines ersten OPs fließt, siehst du, dass der 
Summenwiderstand (10k + 25k*x) im Nenner steht. Warum sollte das linear 
zu dem Widerstand deines Digitalpotis sein?

von Thomas (Gast)


Lesenswert?

Ich habe einen Sinus dieser kann zwischen 1-3.5v eingestellt werden 
(op1).
op2 macht dann den einen Offset dazu.

-1.25 bis 1.25 Offset weil -1.25 sind fix und 0-2.5 gib ich mit dem 
Dig.Poti an

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.