Hi guys
I'm new to the Teensy world, so appologies if this is trivial.
I have an application where I need to use a high speed ADC. I'm using an LTC2341-18 Dual Simultaneous Sampling ADC.
Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/234118f.pdf
I have managed to get sustained sample rate of just under 350ksps per channel with two channels active, using the SPI and clocking at around 38MHz, albeit there is some noise, which I'll try and fix later. This seems to be the maximum SPI clock rate on the Teensy 4, as the SPISettings ask for a 50MHz clock, but instead, I only get around 38MHz.
However, I would like to push the sample rate even further, and the ADC does allow higher throughput. The ADC has basically three SPI 'modes':
1. Single MISO CMOS SPI:- SCKI, SDI, SDO
2. Dual MISO CMOS SPI:- SCKI, SDI, SDO0, SDO1
3. LVDS SPI:- uses LVDS drivers to reduce noise.
To get more throughput, I'm thinking of making use of the dual, parallel, and simultaneous SDO (MISO) lines available. The issue is, both of the SDO lines are clocked with the same clock, and I don't know how best to implement that in Arduino - let alone if its possible.
I understand I would have to tweak the SPI.h library, but any guidance on what area to focus on, and the path to take would be greatly appreciated.
The forum post below touches on a similar situation but not quite the same.
https://forum.pjrc.com/threads/47183-2-simultaneous-SPI-communications-on-Teensy-for-a-Full-Duplex-System?p=157201&viewfull=1#post157201
I have attached the timing diagram of the ADC below.
I'm new to the Teensy world, so appologies if this is trivial.
I have an application where I need to use a high speed ADC. I'm using an LTC2341-18 Dual Simultaneous Sampling ADC.
Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/234118f.pdf
I have managed to get sustained sample rate of just under 350ksps per channel with two channels active, using the SPI and clocking at around 38MHz, albeit there is some noise, which I'll try and fix later. This seems to be the maximum SPI clock rate on the Teensy 4, as the SPISettings ask for a 50MHz clock, but instead, I only get around 38MHz.
However, I would like to push the sample rate even further, and the ADC does allow higher throughput. The ADC has basically three SPI 'modes':
1. Single MISO CMOS SPI:- SCKI, SDI, SDO
2. Dual MISO CMOS SPI:- SCKI, SDI, SDO0, SDO1
3. LVDS SPI:- uses LVDS drivers to reduce noise.
To get more throughput, I'm thinking of making use of the dual, parallel, and simultaneous SDO (MISO) lines available. The issue is, both of the SDO lines are clocked with the same clock, and I don't know how best to implement that in Arduino - let alone if its possible.
I understand I would have to tweak the SPI.h library, but any guidance on what area to focus on, and the path to take would be greatly appreciated.
The forum post below touches on a similar situation but not quite the same.
https://forum.pjrc.com/threads/47183-2-simultaneous-SPI-communications-on-Teensy-for-a-Full-Duplex-System?p=157201&viewfull=1#post157201
I have attached the timing diagram of the ADC below.