Post Go back to editing

Where to write in EEPROM "set multiple writeback" ?

Here the problem. I read in the ADAU1701 datasheet, that I have to set "Set multiple writeback" so that every time I change parameters, a writeback occurs... By default writeback is only enabled "one time" (normally used during power down). Could someone show me the position and the value of the byte I have to modify? In Sigmastudio Hardware configuration IC2, in the Display File, could someone tag the hex number I have to change to set multiple writeback? There's something other parameter to "enable" writeback in the EEPROM?

Thanks a lot,

Charlie.

  • Hello Charlie,

    I did see your question on the other thread you have. I have been investigating this issue internally for a week or so. It seems like this functionality was never implemented. I am not certain why this is. It could be because nobody saw the usefulness of it or it could be because there is a silicon bug with the functionality. I suspect that it was because the team figured that nobody would want to write to the EEPROM multiple times, that simply saving the settings just before power goes down would be sufficient.

    The datasheet does show the commands required to set the multiple writebacks and also to change the trigger edge. If you add this command to the EEPROM image then it will change the checksum and so the program will load in and then not run. Right now I do not have the bandwidth to try to look into this further. Unfortunately, it does not appear that the setting is reachable via the communication port. I will look for the full register listing that includes hidden test registers to see if they are reachable. If I find it I will certainly let you know. However, this would require a controller to write this setting which defeats the purpose of self-booting to not need a controller.

    Dave T

  • Hi Dave, I'm really sorry for the impossibility to write a single byte and the programmer doesn't calculate the checksum. 

    Do you know if the checksum  is one byte or two bytes ? I could try to insert manually after having modified it accordingly. No one in Analog Device could help you in finding the location in EEPROM?

    No problem for waiting. 

    Thanks a lot,

    Charlie.

  • Hello Charlie,

    Unfortunately, no.  I have not had time to write a really small program and then look at the Hex file content and decode it. The information is on page 27 and 28 of the datasheet. It has some of the info and details the commands to add. What it does not detail is the checksum. But I think this could be easily figured out. Write a pass-through program and then look at the resulting file. You can tell what the program code is by looking at the capture window when you program the part. So you will know what the code hex file should look like.

    Dave T

  • Hello Dave, so there is't a fixed position where I could find the flag to change? It's a byte or a bit? I really do not understand your second part of your last message. Please help me as would be too expensive to modify my PCB....

    Thanks a lot

    Charlie.

  • Hello Charlie,

    I would like for you to try this out if you can. Today I wrote several small programs and looked at the EEPROM Hex files that resulted from these programs. It does not appear that this SigmaDSP uses a checksum like the Sigma300/350 parts do. So I think you can simply go in and change one of the NOP instructions to a Multiple Writeback instruction.

    It is not easy for me to test this here so if you don't mind testing this that would be great. So no guarantees but it is worth a try.

    The picture below is from the datasheet showing the EEPROM file format. After the first 8 bytes there are a lot of the NOP commands, (0x03). If you could change one of these NOPs to be an 0x04, then it may set the part into the Multiple Writeback mode. I circled the first NOP in the screenshot. So read bye 9 and it should contain a 0x03.

    Now you can do this from the Read/Write window for the EEPROM. You get to it by going to the config page where you connected the DSP as IC1 to the USBi interface and you connected the EEPROM as IC2.

    So compile your program and download it. Then write the latest compilation to the EEPROM. Then open up this Read/Write window.

    Click on "Read E2 Prom to Display" and wait... it can be slow.

    Then change the first NOP from a 3 to a 4. Then click on "Write Display to E2Prom". Then go for a cup of coffee. It takes a while. It will write all the zeros.

    Then boot up and try it. I will have my finger's crossed!

    Here is a screenshot of the Read Write window and the byte I changed.

    Dave T

  • Hi Dave, IT WORKS !!!! 

    Thank you so much!

    I will finish my project with last implementations. I let you know if you are interested.

    Regards,

    Charlie.

  • That is awesome!

    We are always open to know more about how people are using the parts. It is also helpful to others on the forum.

    Dave T