Hello,
I would like to interface five AD7691 18-bit ADCs to a Atmel ARM processor (AT91SAM9RL) running the Linux operating system. The processor will be clocked at a speed of ~200 MHz, and I would like to sample the ADCs at a rate of 10 kHz.
The AD7691 ADC
The AT91SAM9RL processor has only one SPI bus without FIFO.
What is the best way to do this using a Linux kernel driver? Two likely scenarios:
(1) All ADCs are wired to the SPI bus, and each ADC has a /CS pin wired to the AT91SAM9RL processor. The AT91SAM9RL toggles the CNV pin so that the ADCs are read at a 10 kHz sampling rate. The AT91SAM9RL then selects each /CS pin of the five ADCs, and reads each slave in order.
BUT, does writing a Linux kernel driver guarantee that the processor can toggle the CNV pin and then read the five ADCs in sequential order at a rate of 10kHz?
(2) The AD7691 can be daisy chained. Would it be possible to daisy-chain all five ADCs and then read the data as a big (18 bit)(5) =
90 bit transfer?What type of kernel driver would be most appropriate, and what would be the best way to wire up the ADCs if I am to use a kernel driver for the AD7691 ADC running on a AT91SAM9RL Linux board?
Nicholas