Post Go back to editing

Interface Read / Write Failing


I'm having issues with interface Read/Write function. I try to save a value (an index) from an UpDownLUT in interface_0. I want to save this value on powerdown und restore it on reboot. My intention is to restart with the same volume as before. This doesnt work, the value is always lost. My questions are:

  1. Is the workaround described in how-do-i-use-the-interface-read-interface-write-and-write-back-trigger still needed?
  2. If not, what could be other reason for the issues? Too less power perhaps?

thanks for an advise


PS: I'm using an ADAU1701 and Sigma Studio 4.6 

  • Hello Kurt,

    Have you read the Writeback section of the datasheet, page 27. The trigger to writeback to the EEPROM is done in hardware. This has to be done when the power for the DSP is going down but you need to have enough power to complete the write. It is a bit of a tricky setup with the power supply design, a diode and a good sized cap. I know there have been some posts about it but I could not find it with my quick search. I did find this post:

    (+) Changing data in read/write interface is not reflected in WB/WP pins  - Q&A - SigmaDSP Processors and SigmaStudio Development Tool - EngineerZone (

    The one you linked to was showing how you can change the EEPROM directly and you do not want to do that. You just want it to remember the old setting. 

    Are you using our eval board? I was not exactly designed properly to show this feature. 

    Dave T

  • Hello Dave, 

    thanks for your reply. I know, that the Writeback trigger comes from hardware. Maybe, my board - a Wondom JAB3 w DSP - does not implement this feature correctly. I read from problems in a german forum too. 

    thanks for the link on the post above.  In this post a timer based procedure is mentioned. This could be a solution for my problem too. Is it possible to trigger an EEPROM write programmatically? E.g. by a timer every hour? 



  • Hello Kurt,

    Someone else had asked about enabling the multiple Writeback feature where it can be done multiple times. Here is that conversation:

    (+) Where to write in EEPROM "set multiple writeback" ? - Q&A - SigmaDSP Processors and SigmaStudio Development Tool - EngineerZone (

    So you have to figure out how to trigger the writeback from a timer. I think you can use a GPIO connected to the WB pin but I have not given much thought on this. You can setup timers that will run for a very long time. I once setup a timer on our 32 bit core and it took about a day to overflow and start back at zero. 

    If you need help with setting that up let me know. Actually, I just looked at my library of examples and found this.

    Just connect this to a GPIO output and then externally route it to the WB pin. You may have to invert the output. 

    Dave T

  • Hi, 

    thanks a lot for your support. Your Idead with multible writeback and externally connection to WB pin seems to me like a viable solution. I'll give a try on it the next days and I'll come back to you with results, good hopefully.

    thanks Kurt 

  • Hi Dave, 

    I implemented a timer which outputs a 1 every minute i.e. 288.000 = 48K x 60 samples. The output was  routed to GPIO_OUT and externally routed to the pin I assumed to WB.  I modified the E2prom out op to x04 as suggested. 

    But any tests failed. No value was saved. I strongly believe, that the WB Pin is accessible on any port. I will replace rotary encoder by an analog potentiometer.

    thanks four your support


  • Hello Kurt,

    Thanks for trying this. I will try it out when I get a chance. It would be a good thing to document. There is also the trigger polarity. The default is rising edge so the GPIO should be sitting low then go high when you want the writeback to trigger. Then the length of the pulse will be important. There is a chance that a single sample period pulse might be too fast. Did you see any activity with your scope on the I2C bus?  

    Dave T