Forum: Analoge Elektronik und Schaltungstechnik eigene Betriebspannung messen


von LED (Gast)


Lesenswert?

Hallo,
ich benutze eine Batterie 3,6 Volt als Versorgungspannung für eine 
MSP430F149.
kann ich mit Hilfe des ADC-Wandler der MSP430149 ihre eigene 
Betriebsspannung (die Spannung ihre Batterie praktisch) messen?
Grüße.

von unsichtbarer WM-Rahul (Gast)


Lesenswert?

ja.

von LED (Gast)


Lesenswert?

Hallo unsichtbarer WM-Rahul,
kannst du mir den Messaufbau und einen Software dafür vorschlagen?
Ich habe gerade angefangen mit MSP430F149 zu arbeiten, deshalb habe noch 
nicht viel im Kopf.
Grüße.

von Karl heinz B. (kbucheg)


Lesenswert?

Du brauchst dazu eine Referenzspannung, die nicht
von der Versorgungsspannung abhängig ist.
Ich kenn jetzt den MSP nicht, kann dir also nicht
sagen, ob der Chip etwas eingebaut hat, was man
als Referenzspannung verwenden könnte.
Wenn ja: Dann wird die Versorgungsspannung mittels ADC
         mit dieser Referenzspannung verglichen. Die
         Referenzspannung ist dann jene Spannung bei der
         der ADC seinen Maximalwert ausgibt. Bei sinkender
         Versorgungsspannung sinkt auch der Wert vom ADC
Wenn nein:

    Kannst du dem ADC eine externe Referenzspannung vorgeben?
    Wenn ja, dann funktioniert es wieder so wie im vorhergehenden
             Fall
    Wenn nein:
       In dem Fall benutzt der ADC ja dann wohl die Versorgungs-
       spannung als Maximalspannung für den ADC.
       Daher legst du die Referenzspannung an den ADC und misst
       diese. Mit sinkender Versorgungsspannung steigt daher
       der ADC Wert an.


von marokko (Gast)


Lesenswert?

hallo,
soviel ich weiss, der MSP430 hat einen internen referenzspannung
schau einfach in www.ti.com da sind bsp für ADC in verbingung mit LEDs.
ciao

von marokko (Gast)


Lesenswert?

so ein bsp:
1
#include  <msp430x14x.h>
2
3
void main(void)
4
{
5
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
6
  ADC12CTL0 = SHT0_2 + ADC12ON;             // Set sampling time, turn on ADC12
7
  ADC12CTL1 = SHP;                          // Use sampling timer
8
  ADC12IE = 0x01;                           // Enable interrupt
9
  ADC12CTL0 |= ENC;                         // Conversion enabled
10
  P6SEL |= 0x01;                            // P6.0 ADC option select
11
  P1DIR |= 0x01;                            // P1.0 output
12
13
  for (;;)
14
  {
15
    ADC12CTL0 |= ADC12SC;                   // Sampling open
16
    _BIS_SR(CPUOFF + GIE);                  // LPM0, ADC12_ISR will force exit
17
  }
18
}
19
20
// ADC12 interrupt service routine
21
__interrupt void ADC_ISR (void);
22
ADC12_ISR(ADC_ISR)
23
__interrupt void ADC_ISR (void)
24
{
25
    if (ADC12MEM0 < 0x7FF)
26
      P1OUT &= ~0x01;                       // Clear P1.0 LED off
27
    else
28
      P1OUT |= 0x01;                        // Set P1.0 LED on
29
    _BIC_SR_IRQ(CPUOFF);                    // Clear CPUOFF bit from 0(SR)
30
}

von Patrick D. (oldbug) Benutzerseite


Lesenswert?

Bitte Code-Tags (C und /C in eckigen Klammern [] für C-Code) verwenden, 
dann werden auch die Zeilen mit Überlänge nicht umgebrochen und man kann 
den Code ordentlich lesen.

von TheMason (Gast)


Lesenswert?

@led ...

der msp hat eine interne ref.spannung von 2.5v (wenn ich mich nicht 
täusche).
du kannst einfach deine betriebsspannung durch einen vorteiler (da deine 
spannung größer als die ref. spannung ist) teilen (verhältnis 1:2 oder 
1:3)
und dann messen. noch mit 2 oder 3 multiplizieren (je nach vorteiler) 
und du hast deine betriebsspannung ...

gruß
rene

von pumpkin (Gast)


Lesenswert?

warum nicht die ref-spannung per lumpiger (aber genauen) z-diode 
erzeugen? man muss halt nur sicher gehen dass die spannung nicht unter 
einen kritschen wert fällt sodass der z-strom nicht zu klein wird. is 
halt nur kritisch wegen batteriebetrib...aber idr haben die AD wandler 
schon eine ref-quelle intern.

pumpkin

von Peter D. (peda)


Lesenswert?

Bei den AVRs kann man auch die eigene Band-Gap-Referenz messen und die 
VCC als Referenz auswählen.
Dann braucht man keinen Pin und keine externen Komponenten.

Man muß nur ein kleines bissel rechnen (Wert ist reziprok zu VCC).


Peter

von Patrick D. (oldbug) Benutzerseite


Lesenswert?

Der MSP hat da WIMRE auch eine "eingebaute Einrichtung" für und es 
sollte dafür auch Beispiele von TI geben...

von arc (Gast)


Lesenswert?

Der F149 hat eine interne, zw. 1.5V und 2.5V umschaltbare 
Referenzspannung eingebaut. Beschaltung 10uF und 100nF zw. VRef+ und 
AVss. Für die Messung der Betriebsspannung gibt es eigene 
Voreinstellungen in den ADC12MEMCTLx (INCHx) Registern.
http://focus.ti.com/lit/ug/slau049f/slau049f.pdf


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.