DAC63204EVM:

Part Number: DAC63204EVM
Other Parts Discussed in Thread: DAC63204, , DAC80516

Tool/software:

Hi, 

I've identified the DAC63204 for an application that would require to control multiple voltage channels, a minimum of 16, and potentially up to a hundred. Refresh rate speed is not critical. Some channels might require to be constantly updated, whereas others might be set as a DC constant and not updated at all. 

I'd like to identify what would be the best way to communicate with the multiple DACs that offers best scalability. From the data sheet I might consider using:

  • I2C: limited to 4 devices per bus due to only 4 I2C addresses available. More devices would require to implement several I2C buses.
  • SPI with 1 /SYNC line per device. As number of devices increases the number of /SYNC pins available in controller may not be sufficient. Has the benefit of controlling independently every device.
  • SPI in daisy chain connection: 3 lines is sufficient to virtually control unlimited devices. As number of devices increases, the SPI control command frame will increase to 24*N bits and the update of one device implies the "update" of all devices in the daisy chain.

To me, it looks like the SPI in daisy chain is the solution that fits best to my needs. I'd like to proceed with a proof of concept with the DAC63204EVM, of which I already have 2 of them just to give them a try. Few questions:

  • It seems the GUI only support 1 board. Is there any trick to control in the GUI multiple devices? (It doesn't matter the communication protocol for now)
  • Is there any TI code/script available, even if not developed for the DAC63204EVM, that I could partially use for my first steps?
  • For the SPI daisy chain configuration:
    • Is there any recommended maximum (theoretical or practical) number of devices that I should attempt to connect in this configuration?
    • When only one device in the daisy chain requires update, is there any recommendation of what should I send to the rest of the devices in the bus? Garbage data or any available dummy instruction?  

Can anyone from TI check my high-level statements and provide some feedback or relevant information that I might be missing or underestimating?

Best regards,

Emilio

  • Hi Emilio, 

    There is an onboard controller on each EVM. The EVM can only support one being plugged in at a time. You can use an external supply for the DACs on the EVM so they always stay powered on, and swap which EVM is plugged into the computer to send I2C/SPI commands.

    You could also use I2C and wire the I2C bus from one of the EVMs to the other. You can use the GUI in I2C mode, if you toggle the demo mode button, the interface config window comes back up and you can change the I2C address. The A0 pin is pulled high by default, so you can pull the A0 pin of the second EVM low to use a different I2C address.  

    For daisy chain mode, there is a caveat that you must be able to short all of the SDI lines together to send a command to enable the SDO pin and save this in the NVM. Otherwise, the second DAC in the chain will try to capture the first 24 bits in the frame instead of the last 24 bits. 

    We have 16-channel devices such as the DAC80516.

    Best,

    Katlynne Jones