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ß
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
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ß
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.