I am trying to communicate with an A/D converter (ADS1256) via spi1 but not having any luck (Rock Pi 4 v1.3) I am able to get the wiki example (test spi) working with no problems. Using the example code to initialize the spi works fine. But when I try to read the ADS1256 registers the mraa_spi_write() return -1. Has anyone else had any success talking to and A/D converter?
Below is a the code I am using (after initializing the spi bus as shown in the test spi code).
for (i = 0; i <= 0x0A; i++) {
sndData[0] = 0x10;
sndData[0] |= i;
sndData[1] = 0;
s = mraa_spi_write(spi, sndData[0]);
s2 = mraa_spi_write(spi, sndData[1]);
status = mraa_spi_transfer_buf(spi, ((void*)0), ®isters[i], 1);
fprintf(stdout, "\nsndData: %#hhX, write status: %d, %d, read status: %d, registers: %#hhX", sndData[0], s, s2, status, registers[i]);
}
The output look like:
53 mraa_spi_init success.
59 mraa_spi_frequency success.
66 mraa_spi_lsbmode success.
sndData: 0x10, write status: 255, 255, read status: 0, registers: 0xFF
sndData: 0x11, write status: 255, 255, read status: 0, registers: 0xFF
sndData: 0x12, write status: 255, 255, read status: 0, registers: 0xFF
sndData: 0x13, write status: 255, 255, read status: 0, registers: 0xFF
sndData: 0x14, write status: 255, 255, read status: 0, registers: 0xFF
sndData: 0x15, write status: 255, 255, read status: 0, registers: 0xFF
sndData: 0x16, write status: 255, 255, read status: 0, registers: 0xFF
sndData: 0x17, write status: 255, 255, read status: 0, registers: 0xFF
sndData: 0x18, write status: 255, 255, read status: 0, registers: 0xFF
sndData: 0x19, write status: 255, 255, read status: 0, registers: 0xFF
sndData: 0x1A, write status: 255, 255, read status: 0, registers: 0xFF