ADC12 beim MSP430

OP #2714498
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?
OP #2714536
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.
OP #2714601
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.
OP #2716236
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?
OP #2717545
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;
Gast #2717567
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+?
OP #2717719
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
Persönliche Seite #2722141
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).
Gast #2725375
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+?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren