This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS8686SEVM-PDK: SPI Communication with FT232H (Pyftdi)

Part Number: ADS8686SEVM-PDK
Other Parts Discussed in Thread: ADS8686S

Tool/software:

Dear TI Support Team,

I am currently working on integrating the ADS8686S ADC with a FTDI FT232H USB-to-SPI bridge and encountering issues while trying to read the Device ID (Register 0x10) via SPI in software mode. Despite verifying signal activity through an oscilloscope, I am receiving incorrect or inconsistent values (e.g., 0x0002, 0xFFFF, 0x0000) instead of the expected Device ID.

Hardware Setup

ADS8686S Supply:

5.5V → T1 PWR 5.5

3.3V → T1 PWR DVDD

FT232H I/O Voltage: 3.3V

Shared GND between ADS8686S, FT232H, and power supply

Pin Connections

ADS8686S Pin FT232H Pin
SER/BYTE/PAR (J18) 3.3V
DB9/BYTESEL (J18) GND
HWRNGSEL0 (J18) GND
HWRNGSEL1 (J18) GND
SCLK/RD (J18) D0 (SCLK)
DB10/SDI (J18) D1 (MOSI)
DB12/SDOA (J18) D2 (MISO)
CS (J18) D3 (CS)

Note: R23 resistor on the ADS8686S board has been removed to allow SPI access.



Monitoring

   



Software For Test


from pyftdi.spi import SpiController

import time


def read_device_id():
spi = SpiController()
try:
spi.configure('ftdi://ftdi:232h:1/1')
port = spi.get_port(cs=0, freq=1000000, mode=0)

while True:
print("\nArrows counterclockwise Reading DEVICE_ID (Register 0x10)...")

port.write([0x20, 0x00])
time.sleep(0.01)
response = port.exchange([0x00, 0x00], 2)

if len(response) == 2:
value = (response[0] << 8) | response[1]
print(f"Dart Device ID: 0x{value:04X} ({value})")
else:
print("X No response received.")

time.sleep(1)
finally:
spi.terminate()

if __name__ == "__main__":
read_device_id()

SPI mode tested: 0 and 2

  • Mode 2 (CPOL=1, CPHA=0) returns 0x0002.

  • Mode 0 returns 0x0000.

  • Oscilloscope Output: Confirmed proper SCLK and CS timing; data is transmitted as expected from FT232H.

Questions / Support Needed

  1. Could the inconsistent Device ID values indicate a misconfiguration or hardware timing issue?

  2. Is SPI mode 0 confirmed to be the correct configuration for the ADS8686S?

  3. Is any additional configuration or initialization required on ADS8686S after reset to enable SPI register access?

  4. Is there a way to verify that ADS8686S has entered software mode correctly (besides HWRNGSEL[1:0] = 00)?

  5. Are there any known compatibility notes when using FT232H with ADS8686S?

  • Hi Ersin,

    Welcome to our e2e forum!  Can you post the ADS8686S o'scope screen shot you mentioned above?  To your questions:

    1. Yes - timing could be an issue, you also may need to fully configure the data-bus pins for serial mode.  There are a number of pins that should be grounded and the ADS8686SEVM takes care of that via the PHI controller card, which has to be disconnected before you can use your controller.
    2. SPI mode 1 or 2 would be appropriate.
    3. See 1 above, also make sure you have a way to control the RESET pin.
    4. Unfortunately no.
    5. I am not aware of any issues using the FT232H with the ADS8686S.