www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC gibt keine 0 her!


Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo! Als Referenzspannung habe ich VCC genommen. Bei anlegen der VCC 
sehe ich per Uart die 1023 manchmal auch nur 1022, das ist ok...

Man sieht hier, das es sich um einen 10Bit-ADC handelt. Aber wenn ich 
nun 0V anlege, dann misst der verschiedene Werte, ca von 180 bis 220
bei mit sind das dann ca 651mV Das oszilloskop sagt aber dass maximal 
80mv anliegen. komische sache..


Was ich ausprobiert habe: GND an den ADC-PIN keine Veränderung! so war 
ja sichergestellt, dass die Potentiale der Spannungsmessung definitiv 
gleich sind.

Kann die SW schuld sein?

MSP430F2274

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wahrscheinlich ist der ADC Takt zu hoch oder die Sample & Hold Wartezeit 
zu kurz (falls sich bei den Controller sowas einstellen lässt).

Ähnliches Problem hatte ich mal mit nem PIC18, da waren die zeiten auch 
zu knapp.

Autor: Stefan G. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem liegt meist in der falschen ADC Taktfrequenz, das Problem 
hatte ich auch mal.

schau mal hier:
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

ich hab dir das wichtigste rauskopiert!

ADPS2...ADPS0 (ADC Prescaler Select Bits)

Diese Bits bestimmen den Teilungsfaktor zwischen der Taktfrequenz und 
dem Eingangstakt des ADC.
Der ADC benötigt einen eigenen Takt, welchen er sich selber aus der 
CPU-Taktfreqenz erzeugt. Der ADC-Takt sollte zwischen 50 und 200kHz 
sein.
Der Vorteiler muss also so eingestellt werden, dass die CPU-Taktfrequenz 
dividiert durch den Teilungsfaktor einen Wert zwischen 50-200kHz ergibt.
Bei einer CPU-Taktfrequenz von 4MHz beispielsweise rechnen wir

\begin{matrix} 
TF_{min}=\frac{CLK}{200\,\mathrm{kHz}}=\frac{4000000}200000}=\mathbf{20} 
\\
\\ 
TF_{max}=\frac{CLK}{50\,\mathrm{kHz}}=\frac{4000000}{50000}=\mathbf{80} 
\end{matrix}

Gruß Stefan

Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich habe meinen ADC wie folgt initialisiert:

ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE;  // VCC als ADC-Ref

und:

- ADCOSC als Input
- Single-channel-single-conversion
- nur channel A0
- ADC10 clock divider = 8

immernoch keine deutliche besserung. Ich erhalte anstatt 0 für 0V ca 180 
bei 10Bit...

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Um welchen Controller handelt es sich denn? Und sind alle Anschlüsse, 
also auch AVCC und AGND richtig verschaltet?

MfG Spess

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da keine Taktfrequenz angegeben ist nehme ich mal 20 MHz an.
bei einem Teiler von 8 wären das dann 2,5MHz Takt an den ADC.
-> Datenblatt beschreibt wie schnell man sein darf.

Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Controller ist immernoch der : MSP430F2274

Außerdem lasse ich nicht meine 4MHz vom Quarz auf den ADC wirken, 
sondern ADCOSC als Input. DIESER wird dann via prescaler geteilt.

Langsamer geht also nicht. Ich habe vieles ausprobiert.
U.a. verschiedene Clocks gewählt.


Bitte um weitere Beteiligung

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.