Hallo,

Ik ben al een paar dagen aan het experimenteren met een 32- bits PIC: de 32MX460F512L.

Als compiler hiervoor gebruik ik C32, met de MPLAB IDE. Naar mijn weten is dit de enige beschikbare pic32 compiler op dit moment.

Ik krijg alleen de ADC niet werkend. De bedoeling is dat dit testprogrammaatje de spanning op pin AN0 weergeeft op een LCDtje, zonder getal achter de komma (dus 0,1,2, of 3, het bereik is 0-3.3V)

De output is altijd 0.

Alle relevante code:


TRISA = 0x1111;       //Voor testen heel PortA analog input maken
AD1PCFG = 0x0000;

//Init the ADC 
CloseADC10();
//Config

	#define PARAM1  ADC_MODULE_ON | ADC_FORMAT_INTG16 | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON

	#define PARAM2  ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | 
ADC_SAMPLES_PER_INT_1 | ADC_BUF_16 | ADC_ALT_INPUT_OFF

	#define PARAM3  ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_15

	#define PARAM4	ENABLE_AN0_ANA

	#define PARAM5	SKIP_SCAN_ALL

	SetChanADC10( ADC_CH0_NEG_SAMPLEA_NVREF | ADC_CH0_POS_SAMPLEA_AN0); 
	OpenADC10( PARAM1, PARAM2, PARAM3, PARAM4, PARAM5 );

	EnableADC10(); // Enable the ADC

	while ( ! mAD1GetIntFlag() ) //wait if busy

	while (1) {		
	
		    //LSB = 3.2mV
		    ADCResult = ReadADC10(0);
			Volts = ADCResult * 0.0032;
			display(inttochar(Volts));
		}


Kan iemand mij helpen?

Ik begrijp dat je hier naar gekeken hebt?

http://ww1.microchip.com/downloads/cn/DeviceDoc/cn532639.zip
Gezien je eigen source code

Klopt!

De ADC10_basic example van Microchip zelf.

Ik heb het echter iets aangepast naar het gebruik van alleen AN0.
In de sample code zijn mij een aantal zaken onduidelijk. Zoals het gebruik van dual buffer en de 'scan mode'.
De variabele 'offset' die ze daar gebruiken is toch alleen nodig bij het gebruiken van twee buffers?

Ik maak hier allemaal geen gebruik van in mijn code, maar die werkt dus niet. Ik kom er niet uit waarom niet.

Erg weinig documentatie beschikbaar voor PIC32. :(

Ik gebruik trouwens onderstaand boardje (alleen hardware, software vervangen door mijn eigen brouwsels):
http://www.schmalzhaus.com/UBW32/

Op 2 mei 2009 14:36:30 schreef Neen:
Hallo,

Ik ben al een paar dagen aan het experimenteren met een 32- bits PIC: de 32MX460F512L.

Als compiler hiervoor gebruik ik C32, met de MPLAB IDE. Naar mijn weten is dit de enige beschikbare pic32 compiler op dit moment.

Bij codesourcery.com kun je een MIPS GCC compiler downloaden voor Windows. Die zou ook moeten werken voor de PIC32. Je moet alleen even opletten of de PIC32 little of big endian is.

http://www.codesourcery.com/sgpp/datasheet?target_arch=MIPS&target…

De lite versie (alleen de GNU utilities) is gratis:
http://www.codesourcery.com/sgpp/lite/mips/portal/release687

Dan heb je meteen een volledige PIC32 compiler zonder beperkingen. De PIC32 compiler van Microchip is ook GCC.

Voor wat betreft de ADC:
Misschien helpt het door geen macro's te gebruiken maar eerst zelf de registers te schrijven. Eerst uitzoeken wat ieder bitje precies doet en dan stukje bij beetje de macro's uitzoeken.

Opgelost!!

Ik bekeek net dit schema (zeker niet de eerste keer):
http://www.schmalzhaus.com/UBW32/EE/v24/UBW32_v24.sch.pdf

en ik zag dat AN0 niet op pin RA0 zit, zoals ik gewend was. Draadje verwisseld en het werkt perfect. :) Echt heel stom, heb er echt uren aan besteed. :D

Toch bedankt. :)