Post Go back to editing

ADIN 3310 SPI host interface - MISO not responsive during bring-up

Thread Summary

The user encountered a timeout in SES_AddDevice() during ADIN3310 initialization over single-SPI, with no MISO activity. The solution involved ensuring the SPI transactions include a 1-byte instruction field (0x40 for write, 0x80 for read) and using a clock frequency of at least 5MHz at 3.3V VDDIO_A. The user successfully communicated with the ADIN3310 after applying these changes.
AI Generated Content
Category: Software
Product Number: ADIN3310
Software Version: ADIN6310 TSN Driver Library Rev. 5.1.0-GA

We are currently evaluating the ADIN3310 using the EVAL‑ADIN3310 development board. Our intended workflow is to perform an initial configuration over SPI, and then hand over control to Ethernet Port 0.

We have built and integrated the ADIN33x0 TSN driver library, and configured the switch to use single‑SPI as the host interface. During bring‑up, the initialization fails with a timeout in SES_AddDevice(), and we observe no activity on the MISO line. Additionally, TIMER0 remains low.

On the bus side, CS, SCLK, and MOSI appear correct on the scope. The driver sends a 32‑bit SPI transaction (repeated twice), but no response is received from the ADIN3310. At this point, we would expect valid data to be driven on MISO for device enumeration.

What we checked so far:

- The device has valid firmware: We can successfully connect to the ADIN3310 by configuring Ethernet Port 0 as the host interface.
- Bootstrapping pins are correctly set at reset: CS, TIMER0, TIMER1 = HIGH, TIMER2, TIMER3 = LOW.
- Supply voltages: VDD and the SPI I/O voltage are both at 3.3 V.
- SPI configuration: Clock reduced to 100 kHz and all four SPI modes tested.

Given the timeout in SES_AddDevice(), we suspect the ADIN3310 is not responding as expected to the initial SPI discovery/handshake sequence.

During SES_AddDevice(), is the ADIN3310 expected to drive MISO and return a valid response in single‑SPI mode, or is a prior configuration/state (e.g., TIMER0 assertion, SPI_SIO configuration, or alternate frame format) required before MISO becomes active?

Any guidance on additional checks or common SPI bring‑up pitfalls around SES_AddDevice() would be greatly appreciated.

Thread Notes

  • Hi Joan,

    In single SPI, the ADIN3310 is expected to drive the MISO and upon receiving a valid data it will then pull-up the TIMER0 (Interrupt) pin.

    A few items to check:

    • The SPI transactions must include a 1-byte instruction field (0x40 for write, 0x80 for read) preceding the message payload.
    • The SPI clock frequency requires at least 5MHz when running VDDIO_A at 3.3V,

    I've attached a reference SPI capture showing a successful initialization sequence [SPI Capture].

    • SES_Init -> SES_AddHwInterface -> SES_AddDevice -> SES_InitializePorts

    This may be useful for comparison.

    Let me know what device you're using to configure the ADIN3310.

    Regards,

    Karl

  • Hi Karl,

    Thank you for your reply. After applying the points you outlined, I’m now able to communicate with the ADIN3310 successfully.

    I really appreciate your support.

    Joan

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.