Problems with SPI and ADS8320
Erio Magnoni <magnonie-ur28x6/[email protected]>
| Newsgroups | gmane.comp.hardware.microcontrollers.tini |
|---|---|
| Message-ID | <[email protected]> |
Hi everyone!
I'm using Tini 1.12 on a DS80C400 with an ADS8320 and I have some problems
understanding the bits this ADC returns me. I use the xmit method of the SPI
class to send 3 empty bytes of data and the ADC, as I see watching the
oscilloscope, returnes digital data. I also see from the datasheet
of the ADS8320 that timing is correct, as I have 5 clock edges for the
sample&hold of the ADC and the 16 bit data following with MSB first. As the
xmit method detail says, read data is returned in the same positions within
the array, but I have some problems understanding the bits the ADC gives out.
In fact on the oscilloscope I view different bits than the ones I print out on
screen.
Is my code incorrect? Can SPI library only execute 8-bit transfers? Do I have
to modify it to execute 16-bit transfers as the ADS8320 is a 16-bit ADC? How
can I do it?
SPI in initialized as follows:
spi = new SPI(0, true, true, false, false, false, false, true);
Here is a part of my JAVA source code where I perform reading from the ADC:
...
void convertAtoD(double samples) {
System.out.println("Converting...");
byte[] spidata = new byte[3];
for(int i=0; i<3; i++)
{
spidata[i] = (byte) 0x00;
}
spi.xmit(spidata, 0, spidata.length);
for(int i=0; i<3; i++)
{
System.out.print("Bitstream: ");
printBinary(spidata[i]);
}
samples = (samp * V_MAX) / 65535.0;
System.out.println();
System.out.println(samples);
System.out.println("Conversion completed.");
}
private static void printBinary(byte b) {
for (int val = 7; val >= 0; val--) {
System.out.print((b >> val) & 1);
}
System.out.println();
}
...
Thanks a lot!
Best regards,
Erio Magnoni.
SUPSI-DTI, Manno, Switzerland
-------------------------------------------------
This mail sent through IMP: https://mail.die.supsi.ch
_______________________________________________
TINI mailing list
TINI-6tN4nzCoH/[email protected]
To UNSUBSCRIBE, edit your profile, or see list archives:
http://lists.dalsemi.com/mailman/listinfo/tini