• 0

1.8 V (SPI + Digital In + Digital Out) with Digital Discovery or Analog Discovery 2

Go to solution Solved by attila,


I want to do the following with WaveForms SDK:

  • communicate through 1.8 V SPI
  • read 2 digital 1.8 V inputs
  • generate a digital 1.8 V output
  • generate a digital clock of 32768 Hz (low level 0 V and high level 1.8 V)

Is this possible with a Digital Discovery or with an Analog Discovery 2 (or both)?

I wanted to use an Analog Discovery 2, but I think I cannot set the digital voltage to 1.8 V (it is always 3.3 V).

On the other hand, I do not know if a Digital Discovery does the trick, since:


The protocols use the Digital-In/Out resources to create various communication protocols. Only one of the protocols can be used at a time and no digital-io or out other functions.

(Source: https://reference.digilentinc.com/reference/software/waveforms/waveforms-sdk/reference-manual#digital_protocols)
This means that I cannot communicate through 1.8 V SPI and read digital inputs/write digital outputs; am I right?


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1
  • Solution

Hi @Nicolas Gammarano

The DD digital voltage is adjustable between 1.2 and 3.3V. The input logic threshold changes accordingly.
With AD the digital output is always 3.3V The 5th and 7th configuration makes the input logic threshold ~0.5V suitable inspecting low voltage signals.

The protocols use the digital-in and -out resources of the device, so SPI and capture with digital-in or pattern generator with digital-out can't be used at the same time, only sequential. The 32kiHz clock signal generation would require digital-out so this can't be generated with the same device at the same with with SPI transfers.

The static/digital-io can be used together with protocols on the unused pins. Note the I2C with clock stretching option uses addition DIO lines to keep track of states.

Link to post
Share on other sites
  • 0

Thank you for the quick reply @attila.

So with a Digital Discovery, I can

  • communicate through 1.8 V SPI (with function FDwfDigitalSpiWriteRead16)
  • generate a digital 1.8 V output (with function FDwfDigitalIOOutputSet)
  • read 2 digital 1.8 V inputs (with functions FDwfDigitalIOStatus + FDwfDigitalIOInputStatus)

All these 3 simulaneously?

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now