TX2 Read digital data stream

I’m trying to read information from an external device onto the TX2. The external device is outputting unencoded digital streams of data and its clock signal. The data is valid on the falling edge of the clock. I’d like to read the data streams through the GPIO pins into a buffer on the TX2, sampling on each falling edge of the clock. Usually I’d use interrupts, or the poll() function, to do this, but the clock speed is on the order of 40 MHz. Lowering the clock speed isn’t an option, and I need to be sure to get exactly one sample per bit. From what I’ve read, the poll() function doesn’t have the necessary accuracy at this high of a speed.

Is there a good way to do this on board, or do I need to buy a daughter board? If I need to buy an external piece of hardware, what would meet these specifications?

Hi, GPIO can’t meet your request. So you’d better to choose other device which can transfer your signals to SPI which support 40MHz in real time. Or you can choose device that can store the information and output in lower speed such as I2C etc.

Anyway you’d better to transfer the data stream into standard IO so that TX2 can read it.

Hi, thank you for your response. I’ve started research into external DAC and other data acquisition boards.

May I ask what feature of the GPIO limits reading information like this? From what I understand it is the speed of the transmission that is the problem, but what spec/area in the datasheet would I be able to find the upper limits of the GPIO pins?

As sampling rate of GPIO is only up to 50khz.