Re: AVR32 Analogwerterfassung Kategorie: Programmierung C (von EMK - 27.01.2017 9:17) | |
Als Antwort auf Re: AVR32 Analogwerterfassung von EMK - 17.01.2017 17:03
| |
> > > > > Wollte sieben Analogwerte (ADC0 bis 6) bezogen auf einen Referenzeingang (ADC7) mit 1,024V > > > > > erfassen. Mit Eingangsspannungen von 0 bis 2,048V auf den Eingängen 0 bis 6 sollte somit ein Wert > > > > > von -2048 bis 2047 gemessen werden. leider nicht, der Wert ändert sich von ca. -180 bis +1900. > > > > > > > > > > ADC_SetInput(0, 0, 7, ADC_SHG_1); > > > > > ADC_SetInput(1, 1, 7, ADC_SHG_1); > > > > > ADC_SetInput(2, 2, 7, ADC_SHG_1); > > > > > ADC_SetInput(3, 3, 7, ADC_SHG_1); > > > > > ADC_SetInput(4, 4, 7, ADC_SHG_1); > > > > > ADC_SetInput(5, 5, 7, ADC_SHG_1); > > > > > ADC_SetInput(6, 6, 7, ADC_SHG_1); > > > > > > > > > > ADC_Enable(ADC_MODE_12BIT|ADC_MODE_FREE_RUN, 1000000, ADC_ADCREF0, 7, 0); > > > > > > > > > > Wenn z.B. ADC_SetInput(0, 0, 7, ADC_SHG_1); in ADC_SetInput(0, 0, ADC_GND, ADC_SHG_1); geändert > > > > > wird erhalte ich Messwerte von -19 bis 2048 !? > > > > > Wo liegt der Fehler > > > > > > > > Hallo EMK, > > > > > > > > hast Du denn am Port PA16 (Pin X1.16) eine Referenz von 2,048V? > > > > > > > > VG, Tobias > > > > > > An PA16 ist eine Spannung von 2,048V ; an PA11 hingegen 1,024V > > > An den Analogen Eingängen PA4 bis PA10 kann sich die Spannung von 0 bis 2,048V ändern > > > > > > Habe auch den Versuch gemacht auf PA4 eine Spannung von 1,024V zu legen und die Spannung an PA11 > > > zu verändern -> Messwertänderung von 180-Punkte wenn Spannung an PA11 sich von 0 bis 2,048V ändert > > > (für Messwert von ADC_SetInput(0, 0, 7, ADC_SHG_1);. > > > Kann das Problem bei der Version der AVR32 liegen? Bootloader & Interpreter = 1.00 ; Hardware 10 > > > VG Michael > > > > Hallo Michael, > > > > das mit der Version kann ich mir nicht vorstellen. Bei mir ist > > > > Bootloader Version: 1.00 Interpreter Version: 1.10 > > Hardware:C-Control AVR32Bit Hardware Rev:01 > > > > auf einer nicht all zu alten AVR32. Das scheint schon ok zu sein. > > > > Irgendein Gedankenfehler ist da drin, ich komme nur noch nicht drauf. Deine Auffassung mit > > -2048 bis 2047 digit ist m.E. schon mal falsch. Der AD-Wandler bekommt ja eine Referenz von > > 2048mV. Da Du differentiell messen möchtest, hättest Du bei einer Differenzspannung zwischen > > bspw. Port 0 und 7 von +2048mV -> 2047 digit.Bei einer Differenzspannung von -2048mV -> -2047 digit. > > > > Du hast aber immer nur eine Differenz von 1024mV, egal ob + oder -. > > > > Ich bin leider unterwegs und habe nichts zum testen dabei. Kann auch sein das ich jetzt einen > > Gedankenfehler mache. > > Sende doch bitte mal Dein ganzes Programm, dann kann man evtl. mehr sehen. > > Und versuche doch erstmal auf einen Kanal abzuspecken. > > > > VG, Tobias > > Habe ein Demoproject abgeändert um eine Differenzmessung zwischen ADC0 und ADC1 zu erhalten (siehe > Anhang) > Referenzspannung 2,048V ; an ADC1 1,024V ; an ADC0 Spannung die zwischen 0 und 2,048V variieren > kann ; somit müsste die Differenz Messung von -1,024 bis +1,024V gehen. > Mit ADC_SetInput(0, 0, ADC_GND, ADC_SHG_1); erhalte ich einen Messwert von 0 bis 2047. > Mit ADC_SetInput(0, 0, 1, ADC_SHG_1); erhalte ich einen Messwert von -30 bis 1360 unabhängig > von der Spannung an ADC1. (ADC1 auf Masse, auf 1,024V oder 2,048V) > jetzt taucht die Frage auf ob ADC0 nur eine Differenz zu einen bestimmten ADCx messen kann > > leider benötige ich unbedingt diese Funktion da ich Wechselspannungen und Ströme erfassen muss. > Andere Frage: Ist die AVR32 ein Auslauf Modell oder wird sie weiterhin hergestellt? > > VG. Michael Problem gelöst! C-Control Geräte zum Elektroschrott und anderen Controller gekauft VG. Michael | |
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum