Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Reading data from "LTC2321-16 2Msps" ADC with an Arduino Board

Status
Not open for further replies.

darkdurrent

Newbie level 6
Newbie level 6
Joined
Oct 13, 2014
Messages
11
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Location
Turkey
Activity points
127
Hi,

I bought a LTC2321-16 16bit, 2Msps ADC and a LT1819 dual op-amp to make a Differential Input ADC circuitry which will be used for data acquisition with a MCU (an Arduino Due, or Arduino Uno Board).

LTC2321-16.PNG

But I failed to notice that the total data acquisition speed reaches up to 30Mbps with this configuration. I am sure that Arduino UNO can not get the data at 30Mbps which is above the MCU clock frequency (16MHz) (ATmega328P).

I can not find any Arduino library for this particular ADC IC. And I am not adequate enough to program the MCU in assembly language. I can only program Arduino using the Arduino IDE.

I have two main questions for you,

1) Is there any way to control the sampling rate of the ADC to fit the proper speed of the UNO board? If so how?

2) I think there is a favourable possibility with slecting Arduino Due as the MCU. I am not sure but DUE might read the data at 30Mbps because the board has 84MHz MCU (Atmel SAM3X8E ARM Cortex-M3 CPU). If it is possible, without decreasing the ADC sampling rate how can I use this ADC IC with Arduino DUE board?

If you guide me on this topic, I will be very grateful guys.

Thank you.
 

The conversion rate is determined by the SCLK signal. The 2Mb/s conversion rate requires it to be at 64MHz but lower SCLK frequency will work just as well but with slower conversion rate.

Brian.
 
2) I think there is a favourable possibility with slecting Arduino Due as the MCU. I am not sure but DUE might read the data at 30Mbps because the board has 84MHz MCU (Atmel SAM3X8E ARM Cortex-M3 CPU). If it is possible, without decreasing the ADC sampling rate how can I use this ADC IC with Arduino DUE board?

I'm not so familiar with Arduino, but in any case if you want to use custom component, that doesn't have ready to use library, you may write it youself. In Arduino IDE you can use C language to write the library, no need to write asm. Read datasheet carefully, find out how to organize data exchange (I briefly explored the datasheet, to start the conversation pull CNV low, feed clock to CLK pin, after the conversion read data from SDOx synchronized with CLKOUT). Writing libs is not so complex, especially if you know C.

But there are two points I would take into consideration if you want to use the ADC at the maximum speed.
The first one is throughput. Did you calculate the time you need to process input data? Will the mcu has enough time to finish the sample before the next one come?
And another is signal integrity. I guess you would use CMOS output, not LVDS (as sam3x doesn't have LVDS), but I'm really not sure that Arduino header will be able to pass 64 MHz correctly. So pay attention to signal integrity. Most likely Due even won't suit at all (but I can be wrong and it will work).
 
LTC2321 is a modern fast differential ADC. Can be fully used only with FPGA. With mega it is just overkill. It designed for differential SPI interface. It is a bit pointless to use it in your application. But it is possible.
 
Thank you for your suggestions guys. I understand that since the LTC2321 is a fast ADC, using it with Arduino boards makes no sence at all.

Ok but again I have to ask a question. What do you think about using a linux SoC Board like Raspberry Pi or Orange Pi etc. to make data acquisition with LTC2321 ADC?

In the official raspberry pi page it says with cdiv=2 you can use SPI clock speed as 125 MHz. As far as I concerned I know Raspberry pi supports only CMOS mode SPI not LVDS. With a proper circuitry I think I can use CMOS mode SPI rather than using LVDS SPI (differential mode).

I look forward to your reply.

Thank you.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top