0
\$\begingroup\$

I am trying to use an isolator for SPI communication with the Arduino. I am presently using the ADum3150. You can find the datasheet here. There are some delays associated with this arrangement and the ADum3150 provides a 'delayed clock' as mentioned in page 17 of the datasheet to read the output in sync.

The arduino has only clock, miso,mosi and ss. How can I use this delayed clock function on the arduino ?

\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

The delayed clock on this IC is provided to facilitate high speed SPI communications. At high speeds, the propagation delay through the isolator can exceed the repeat rate of the clock. The delayed clock corrects for this by providing a clock signal in sync with the returned data on MISO.

The way you'd use this in practical terms is to hook MISO and the delayed clock up to a second SPI peripheral, in slave mode, and read returned data from there instead of from the master SPI peripheral.

As you observe, the processor in the Arduino has only one SPI bus peripheral. However, use of the delayed clock is only necessary at high speed. The list of features on page 1 of the datasheet states:

Supports up to 40 MHz SPI clock speed in delay clock mode
Supports up to 17 MHz SPI clock speed in 4-wire mode

Since the AVR only runs at 16MHz, and the fastest the SPI peripheral can run is 1/2 that, 8MHz. Since this is well below the stated limit of 17MHz, you can simply ignore the delayed clock and connect the isolator as you would a standard 4-wire SPI peripheral.

\$\endgroup\$
3
  • \$\begingroup\$ Yeah, I realized this after reading the datasheet. I asked Analog devices and they said to use it with an external shift register to collect the MISO data with the dlyclk then the microcontroller to read from it, if I need the high speed. Thank you \$\endgroup\$
    – rahul
    Commented May 7, 2015 at 19:34
  • \$\begingroup\$ @rahul Happy to help. It's polite to mark and upvote answers that answer your question. \$\endgroup\$ Commented May 8, 2015 at 21:11
  • \$\begingroup\$ Yeah I tried doing that but it seems I need a reputation of 15 or so. This was my first post actually. \$\endgroup\$
    – rahul
    Commented May 9, 2015 at 21:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.