Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: AVR32 Analogwerterfassung Kategorie: Programmierung C (von EMK - 17.01.2017 17:03)
Als Antwort auf Re: AVR32 Analogwerterfassung von Tobias - 17.01.2017 14:35

> > > > 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
Test_ADC.zip




    Antwort schreiben


Antworten:

Re: AVR32 Analogwerterfassung (von EMK - 27.01.2017 9:17)