1
0
mirror of git://projects.qi-hardware.com/nn-usb-fpga.git synced 2025-04-21 12:27:27 +03:00

Fixing multi-channel mode.

This commit is contained in:
Juan64Bits
2010-04-12 21:26:26 -05:00
parent beca2e0bd3
commit 7a462423ed
11 changed files with 347 additions and 68 deletions

View File

@@ -2,9 +2,10 @@
ADCw::ADCw()
{
BUFFER_OFFSET = 8;
BUFFER_OFFSET = 9;
ADC_SPI_CLKDIV=ADC_SPI_CLKDIV_MAX; //Set clock to minimum speed
BUFFER_LEN=10;
BUFFER_LEN=16;
MUX_CHANNELS =0;
ADCBuffer = jz_adc_init();
@@ -25,7 +26,6 @@ void ADCw::testADC()
printf("\nINIT TEST1: Autoselft {(Vref+) - (Vref-)}/2 -> Return 0x0200 \n");
adcConfig(ADC_CMD_SET_AUTOSELFT_1);
adcConfig(ADC_CMD_READ_AUTOSELFT_1);
while(adcCheckBufferFull())usleep (10);
for(int i=BUFFER_OFFSET; i< BUFFER_LEN/2+BUFFER_OFFSET; i++)
printf("[%08X]", ADCBuffer[i]);
fflush (stdout);
@@ -34,7 +34,6 @@ void ADCw::testADC()
printf("\n\nINIT TEST2: Autoselft (Vref-) -> Return 0x0000 \n");
adcConfig(ADC_CMD_SET_AUTOSELFT_2);
adcConfig(ADC_CMD_READ_AUTOSELFT_2);
while(adcCheckBufferFull())usleep (10);
for(int i=BUFFER_OFFSET; i< BUFFER_LEN/2+BUFFER_OFFSET; i++)
printf("[%08X]", ADCBuffer[i]);
fflush (stdout);
@@ -60,17 +59,18 @@ JZ_REG* ADCw::takeSamplesADC(int CHANNEL)
{
adcConfig(ADC_CMD_SET_CHANNEL0+CHANNEL);
adcConfig(ADC_CMD_READ_CHANNEL0+CHANNEL);
while(adcCheckBufferFull())usleep (10);
return (JZ_REG*)(ADCBuffer+BUFFER_OFFSET);
}
void ADCw::adcConfig(uchar CMD)
{
ADCBuffer[0] = ((BUFFER_LEN+(BUFFER_OFFSET-1)*2) << 16) + (ADC_SPI_CLKDIV<<8) + CMD;
usleep (100);
ADCBuffer[0] = (((MUX_CHANNELS<<6) + CMD)<<24) + \
((BUFFER_LEN+(BUFFER_OFFSET-1)*2) << 8) + \
(ADC_SPI_CLKDIV);
while(adcCheckBufferFull()) usleep (10);
}
int ADCw::adcCheckBufferFull()
{
return ADCBuffer[0]&0x20;
return ADCBuffer[0]&0x20000000;
}