Forum: Mikrocontroller und Digitale Elektronik ADC12 beim MSP430


von Björn K. (bjoern_k)


Lesenswert?

Hallo,
ich bin gerade dabei mit dem ADC12 des MSP430 zu arbeiten (genau ein 
MSP430F1611).
Ich habe nun scheinbar ein Verständnissproblem bei der Referenzspannung.
Ich habe ja die Möglichkeit bei der internen Referenzspannung zwischen 
1,5V und 2,5V zu wählen.
Wenn ich das im Userguide richtig verstehe muss die anliegende Spannung 
dabei jeweils zwischen der negativen Referenzspannung ( bei mir 0) und 
der positiven Referenzspannung liegen ( bei mir die interne 
Referenzspannung).
Nun habe ich ein rumgespielt mit der interenen Referenzspannung und das 
Ergebnis hat sich dabei bei mir nicht verändert.
Laut der Berechnung der Spannung im Userguide sollte das Ergebnis aber 
doch auch abhängig sein von der Referenzspannung

NADC = 4096 x ((Vin – VR-) /( VR+ –  VR- ))

Bzw. auch wenn ich bei der positiven Referenzspannung liege gibt mir der 
ADC nicht 0FFFh so wie es doch laut Userguide sein sollte


Kann mir jemand sagen wo dabei mein Denkfehler ist?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Björn Kaufmann schrieb:
> Bzw. auch wenn ich bei der positiven Referenzspannung liege gibt mir der
> ADC nicht 0FFFh so wie es doch laut Userguide sein sollte

Und was "gibt" er Dir stattdessen?

von Björn K. (bjoern_k)


Lesenswert?

Habe es mit der internen Spannung versucht 3,3V /2 --> 1,65 V

Bei VR+ 1,5V  0x0A7C    --> ca 2 V
Vei VR+ 2,5V  0xA79     --> ca 3,3V

Bei einer externen Spannung 24V /13 --> ca. 1.84 V


Bei VR+ 1,5 V 0x0B79    --> ca 14 V
Bei VR+ 2,5V  0x0B76    --> ca 23.3V

Bei den Ergebnissen für die Spannungen habe ich dann das Ergbnis mal 2 
bzw. mal 13 genommen.

von Jörg S. (joerg-s)


Lesenswert?

Mit anderen Worten, die externe Spannungsmessung funktioniert, nur der 
interne Messkanal für Vcc zeigt zu viel!?

Wie sieht dein Code aus?

von Björn K. (bjoern_k)


Lesenswert?

Es wird mir sowohl bei der internen als auch bei der externen Messung 
das gleiche Ergebnis ausgebenen. Egal ob 1,5V oder 2,5V als interene 
Referenzspannung.

Aus der Berechnungsformel ergibt sich dann für 1,5V ein falsches 
Ergebnis.

Zum zweiten liegen dann die Werte ja über 1,5V und nach Userguide sollte 
dafür das Ergebnis 0FFFh lautet.

von Björn K. (bjoern_k)


Lesenswert?

Keiner ein Ahnung?
Ich habe jetzt mal AVcc als Referenzspannung versucht und damit 
funkioniert es wie es soll
Nur bei der internen Referenzspannung bleibt das Ergebnis unbeeinflusst 
davon ob ich 2,5V oder 1,5V nehme. Muss ich dabei noch etwas anderes 
setzen ausser das 2,5V Bit und REFON?

von Jörg S. (joerg-s)


Lesenswert?

Wie sieht dein Code aus?

von Björn K. (bjoern_k)


Lesenswert?

Mein code sieht folgendermaßen aus. Zumindest die interessanten Teile

Bei der positiven Referenzspannung von 1,5V habe ich dann REV2_5V 
negiert
und in der Berechnung das Ergebnis mit 1,5 multipliziert statt 2,5


 ADC12CTL0 = ADC12ON|!SHT00|SHT01|!SHT02|!SHT03|!ENC|REFON|REF2_5V;
  ADC12CTL1 = SHP;
  ADC12MCTL0 = INCH_11|SREF_1;
  int dezimalcounter = 0;
  int next_data_flag = 0;
  float result  = 0;
  unsigned char cs_x = CS2;

  _EINT();

  ADC12CTL0 |= ENC;

ADC12CTL0 |= ADC12SC;

   while (1)
  {
    if(!busy_flag(cs_x) && !next_data_flag && displayqueuecounter !=0)
       {
         next_data_flag = 1;
       }
    else
    {
      if((displayqueuecounter == 0) && ((ADC12IFG & 0x0001) == 0x0001))
      {
        result = 0;


        //get AD value in ADCresult
        int ADCresult =ADC12MEM0;


      result = ((ADCresult*2) * 2.5)/4095;

von dummschwaetzer (Gast)


Lesenswert?

>NADC = 4096 x ((Vin – VR-) /( VR+ –  VR- ))
da steht in meinem Datenblatt
NADC = 4095 x ((Vin – VR-) /( VR+ –  VR- ))

Verlängere mal SHT.

> Ich habe jetzt mal AVcc als Referenzspannung versucht und damit
> funkioniert es wie es soll
AVCC als Referenzspannung zum Messen AVCC/2 ist aber ziemlich sinnlos.

Beschaltung am PIN VREF+?

von Björn K. (bjoern_k)


Lesenswert?

Der Fehler in der Formel ist ein Fehler beim Abschreiben. In meinem Code 
ist es ja richtig übernommen.

SHT habe ich auch schon verlängert ohne Auswirkungen.

Mit AVcc wollte ich nur testen ob sich das Ergebnis des AD-Wandlers 
verändert. Bei der Umstellung der internen Referenzspannung zwischen 
1,5V und 2,5V geschieht ja nichts mit dem Ergebnis der Wandlung.

Der Pin VREF+ ist bei mir not connected

von dummschwaetzer (Gast)


Lesenswert?

da gehören kondis drann, siehe DB

von Björn K. (bjoern_k)


Angehängte Dateien:

Lesenswert?

Habe mal das Blockdiagramm angehängt vom ADC12. Bei VREF+ habe ich doch 
nur einen Ausgang. Ist ja auch die interne Referenzspannung.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Und wie sieht Deine Hardwarebeschaltung aus?

von Björn K. (bjoern_k)


Lesenswert?

Ich verstehe das Problem mit der Hardewarebeschaltung nicht. Ich nutze 
ja keine externen Quellen. Das einzige was ich habe ist, dass ich an 
AVcc 3,3V habe

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Björn K. schrieb:
> Ich verstehe das Problem mit der Hardewarebeschaltung nicht. Ich nutze
> ja keine externen Quellen.

Das ist wurscht, der Abblockkondensator für die interne 
Referenzspannungsquelle ist trotzdem nötig.

von spess53 (Gast)


Lesenswert?

Hi

>Das einzige was ich habe ist, dass ich an
>AVcc 3,3V habe

Nur an AVcc?

MfG Spess

von Björn K. (bjoern_k)


Lesenswert?

@rufus Kommt es denn dann zu dem Fehler wie ich ihn beschrieben habe?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Probier doch einfach aus, was passiert, wenn Du den MSP430 korrekt mit 
allen erforderlichen Abblockkondensatoren ausstattest.

Wie man das machen kann, zeigt z.B. Olimex hier: 
http://olimex.com/dev/images/MSP430/MSP430-449STK2-sch.gif oder hier: 
http://olimex.com/dev/images/MSP430-169LCD_RevB_schematic.png (der 'F169 
ist das gleiche wie der 'F1611, er hat nur weniger Flash&RAM).

von spess53 (Gast)


Lesenswert?

Hi

>Probier doch einfach aus, was passiert, wenn Du den MSP430 korrekt mit
>allen erforderlichen Abblockkondensatoren ausstattest.

Hier

http://www.ti.com/litv/pdf/slau049f

steht doch auf S.17-17 wie es gemacht wird.

MfG Spess

von Björn K. (bjoern_k)


Lesenswert?

Es habdelt sich dabei um ein Experimentierboard welches hier vor 
längerem entwickelt wurde. Ich muss mir dann wohl mal den Schaltplan 
besorgen.

von Björn K. (bjoern_k)


Lesenswert?

Also die Beschaltung des MSP ist richtig und alle Abblockkondensatoren 
sind vorhanden.
Fehler bleibt

von dummschwaetzer (Gast)


Lesenswert?

versuch mal vref+ zu messen
-mit voltmeter
-mit oszi
-auf einen anderen ad-kanal gegen vref- = gnd, vref+=vcc

stimmt die am voltmeter abgelesene spannung?
stimmt der ad-wert von vref+

bist du dir sicher,dass du gegen vref+ misst, und nicht gegen veref+?

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.