Interface Read / Write Failing

Hi,

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

Kurt

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

Parents Reply Children
  • 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? 

    thanks 

    Kurt 

  • 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 (analog.com)

    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

    Kurt

  • 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