Part Number: DAC81416EVM
Hello!
I've been trying to control the DAC81416EVM using a C++ script implementing the USB2ANY SDK and communicating through SPI. However, I have run into a couple of issues.
First, I've observed that the C++ generated SPI commands aren't transmitted (as in they don't show up on oscilloscope) unless I open TI's app for the DAC and send a random byte. It does not seem to matter what I send or which register it writes to, and I can even close the app afterwards and the C++ script will then work fine. Is this normal? Do you think there could be something wrong with the way I'm doing initialization in the C++ script? Here's what I have in main:
char serialno[40]; std::cout << "\n"; std::cout << u2aFindControllers(); std::cout << "\n"; u2aGetSerialNumber(0, serialno); std::cout << std::hex <<serialno; U2A_HANDLE handle = u2aOpen(serialno); uint8_t power_on[] = { 0x03, 0x0A, 0x0C }; u2aSPI_WriteAndRead(handle, 3, power_on); //Power-on Device, Disable Soft-toggle //followed by other SPI_WriteAndRead commands to initialize the other registers in the DAC
Secondly, is it possible to write multiple registers in one SPI command? There's USB2ANY documentation for writing multiple registers in I2C, but I haven't seen anything for burst transmission in SPI. I'm trying to update output voltages for all 16 DACs as quickly as possible, hence the attempt at consolidating them into one command.
Thank you!