This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DAC539G2-Q1: Issue programing SRAM and registers

Part Number: DAC539G2-Q1

Dear Support,

I am experiencing issues while trying to program DAC539G2. I followed the instruction, written in Quick Start Guide, but am unable to get it working.

Firstly I installed the GUI app along with FTDI drivers, then I connected jumpers according to the manual, connected MODE to GND and started up the GUI. On the bottom I can see, that the dac is "CONNECTED". I entered desired values and clicked Program NVM, but nothing seemed to be happening, as well as Reload NVM. When I clicked on Low Level Configuration and clicked Read All, all the values changed to 0. So I entered the desired values in High Level Configuration again, created Configuration File and opened it and this error popped up:

 

Error 3 occurred at LibFT4222.lvlib:Error Converter (ErrCode or Status).vi 

Possible reason(s):

This error is returned by the shared library function.

Complete call chain:

     LibFT4222.lvlib:Error Converter (ErrCode or Status).vi

     LibFT4222.lvlib:FT4222 GPIO Write.vi

     FTDI DAC Drivers.lvlib:GPIO Write.vi

     Interface API.vi

     SmartDAC Device Interface.lvclass:Write Register.vi

     Register Map.lvclass:Write Register [Private].vi

     Register Map.lvclass:Write Register.vi

     SmartDAC Register Map Tree.lvlib:Main.vi

 

When I tried to rewrite those registers manually in Low Level Configuration (change value, click Write Selected, then wait a bit and click Read Selected), nothing had happened, the value stayed always the same as before. When I clicked „Read All“, all of the SRAM have the value 0 in them on all bit positions and registers have all value 1 in them.

Then I tried to connect through I2C. I reconnected the jumper to other position as written in instructions. When I read All registers, they all have value 0xFF00 in them. No matter how i try to write or rewrite them, they just always stay the same. 

Can you please suggest any solution to this?

Thank you in advance.

Best Regards,

Martin Bujok

  • Hi Martin, 

    Thanks for your question. 

    Can you try connecting OUT0 and OUT1 and check if you see any PWM output when the MODE pin is pulled high? I want to check to make sure the part itself is working. 

    Connect J1-13 to J1-11, and try to measure the PWM output on J2-12. You can also try pulling GPI0 (J2-2) low and check that the duty cycle changes. 

    When you rechecked using I2C, did you power cycle the device? If you were originally using SPI then the device will not respond to I2C commands until the next power cycle.

    Another thought is that you would need to enable the SDO pin before reading anything back from the low level page. I thought included a SDO enable button to the high level page, but it looks like I did not. To enable the SDO pin, write 0x0001 to register 0x26 in the low level page and you can try reading using SPI again. 

    Best,

    Katlynne Jones 

  • Hello Katlynne,

    Thank you for such a quick response!

    I connected said pins accordingly to your suggestion and the part seems to be working, producing stable PWM waveform. Also pulling down GPIO's seems to be working accordingly to my settings. When I was trying to program it and low level configuration didn't show any changes, I simply thought, that it did not set the register values correctly, which is not true as it seems, becasue it works as intended.

    Regarding the SPI connection I did not get any further. After changing the value in register 0x26 there seemed to be no effect. When i try to change the values through Low Level Configuration, it does not seem to do anything. When I try to open configuration, Error 3 (as before) pops up. When I try to read all, everything is 0xFF00.

    However after I changed the value in 0x26, but set the communication to I2C mode, it started working properly! I can now write and read all registers with no problems.

    So the only issue remains the SPI connection.

    Best Regards,

    Martin Bujok

     

  • Hi Martin,

    Katlynne will review and respond tomorrow.

  • Hi Martin, 

    Let me look into the GUI just to double check the SPI is working on my end and get back to you. Just to double check, are you power cycling the device, moving the jumper to select I2C/SPI, and updating the interface settings to select I2C/SPI every time you switch interfaces? The device locks either SPI or I2C based on the first successful communication until the next power cycle. 

    I will also double check the error 3. I thought this was something that I fixed in the last GUI update, but you are still seeing it. The load configuration feature does still update all of the DAC registers though, so you can still use it to load a configuration. There is just some issue with writing to the GPIO pins on the onboard FTDI controller that is having an issue when you load the configuration. 

    It is good to hear that you are able to see that your device is updating correctly using I2C. I will investigate the GUI issues, but are there any other questions you have now about the device? 

    Best,

    Katlynne Jones