atmega16 stk500 adc

Gast #573322
Lesenswert?
• ▲
▼
Hallo,

es gibt zwar hier viele Threads zu ADC aber dennoch habe ich einige 
Fragen.

Und zwar möchte ich Spannungen analysieren mit Hilfe des ADC des 
ATMega16.
Die Spannungen werden erzeugt durch ein Mikro dass an den PORT C  PIN7 
des STK500 angeschlossen ist.
Hier gleich meine erste Frage: In den Datenblättern des ATMega16 steht 
das der PORTA des Mikrokontrollers der ADC Eingang ist. Aber das 
bedeutet nicht, dass ich das Mikro am PORT A des STK500 anschließen 
soll? Ich gehe aus, dass die Sachen nicht minteinander zusammenhängen, 
ich frage zur Sicherheit trotzdem nach.

In dem Avr-GCC-Tutorial auf dieser Webseite ist ein ADC Beispiel. Wieso 
werden nirgends die Eingangsports des ADC Wandlers definiert?


Ich habe ein kleines Programm geschrieben, dass die Register ADCL und 
ADCH ausliest und den Wert auf den Leds des STK500 ausgeben soll. Das 
Problem ist es leuchten immer dieselben LEDs während der gesamten 
Laufzeit des Programms. Das Programm analysiert im free running mode 
dauernd die Eingaben und deshalb sollten die LEDS dauernd umschalten, 
was sie aber nicht tun. Wie gesagt es leuchten immer dieselben LEDs. 
Meine erste Vermutung war, dass nichts gemessen wird. Dem widerspricht 
aber, dass beim jeden Einschalten des STK500 Boards (=neustarten des 
Programms) immer andere LEDS leuchten. Das heißt es wird was gemessen.

Das Mikrofon ist funktionsfähig, mittels eines Oszilloskops wurde des 
überpüft. Ein Defekt des Eingabegerätes kann also ausgeschlossen werden.

Trotz Studium des Datenblatts des Atmega16 und des Tutorials bin ich im 
Moment ziemlich ratlos.

Bin für jeden Tipp dankbar.


Gruß
Angehängte Dateien:
#573334
Lesenswert?
• ▲
▼
Hmmmmmmmmm wie fang ich an ;)

Annahme: du meinst mit STK500 das Entwicklungsboard von Atmel und nicht 
das dazu gehörende Protokoll.


1)
Ich hab zwar keine Ahnung von der Beschaltung des Baordes, aber wie 
kommst du auf die Idee den PIN PC7 zu verwenden, wenn im Datenblatt 
steht das nur der Port A ADC Eingänge besitzt?!
Es ist so das allg. der AVR nur einen ADC besitzt. Aber er besitzt des 
weiteren einen MUX, einen analog Switch, mit dem man den ADC auf 
verschieden Pins "mappen" kann. In diesem Fall Pin PA0-7. UND NIRGENDS 
ANDERS HIN! Es macht keinen Sinn wenn du analoge Werte messen willst und 
diese wo anders anlegst. Deswegen kannst du auch mit ADMUX = kanal (oder 
so ähnlich) einen Pin an Port A auswählen. (Siehe Datenblatt)

2)
Die willst ein Mic messen. Wie schauen den die Pegel aus?! Ich meine 
hast du nen Vorverstärker dran oder so was?! Dir ist hollfentlich klar 
das deine ADC Spannungen nur im Vergleich zu deiner Referenzspannung 
messen kann. Und wenn du jetzt Spanungen zwischen 0 und 10mV hast und 
deine Referenzspannung 5Volt beträgt, dann kannst du (fast) nichst 
messen. (Vorsicht, die Referenz Spannung ist auch nicht beliebig 
wählbar....)
-> Thema: Pegel-Anpassung.

So Far
Jürgen
Gast #573340
Lesenswert?
• ▲
▼
Hi,

Annahme: richtig, das Board.

1). Werde das Mikro an PORT A anschließen. Das hat mich schon stutzig 
gemacht.
Danke.
Also jetzt ergibt alles einen Sinn. Also wenn mein Mirofoeingang an PA7 
ist muß ich

ADMUX = 7;

setzen?!

2) Also die Eingangswerte vom Mikro liegen im Bereich bis 2V. Also das 
wurde mit Hilfe des Oszilloskops ermittelt. Vorverstärker habe ich 
keinen.
Das mit der Referenzspannung ist klar, die liegt ja bei 2,56Volt und da 
sollten sich Werte im Bereich zwischen
0..2V messen lassen können.

Gibt es eine empfohlene Referenzspannung wenn man Werte im Bereich von 
0..2V messen will?

Danke Du hast mich weitergebracht.

Gruß
#573348
Lesenswert?
• ▲
▼
Moin,

ADMUX = 7 ist fast richtig.

Du willst ja eine Vref von 2,56Volt haben, dann musst du mehr in dem 
Register setzen.

ADMUX = (3<<REFS0) | 7 ;
also
ADMUX =  0xC7;

Sonst hat du die intere Vref mit 2,56V nicht.

Tja wenn du 0..2V messen willst, das ist eine Vref von 2Volt ganz gut, 
aber 2,56Volt sind auch ok ;) Da verliehrst du nur 25% an Auflösung, 
aber das ist ok, denke ich mal.

n8
Jürgen

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.