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