ADAU1701 not programming?
I am trying to reprogram a ADAU1701 on a Sure-electronics DSP board. It is delivered with a default crossover but I am trying to reprogram them for better functionality.
I am using teraterm for programming in combination with a arduino uno. (writing directly using the SDA, SCL, WP, RST and GND)
I dont know if it is going all right. This is what teraterm is telling:
Audio DSP Board
EEPROM Programmer
eeprom found
waiting for E2Prom.Hex file...
0000000000000000
0001001000E20100
082001FF78000201
0000000100000000
0000000001000000
0100000000010000
1F00010006000820
0827000101000500
Received 1 characters
Programmed 0 bytes
EEPROM contents:
waiting for E2Prom.Hex file...
0000000000000000
0001001000E20100
082001FF78000201
0000000100000000
0000000001000000
0100000000010000
1F00010006000820
0827000101000500
Received 3808 characters
Programmed 544 bytes
EEPROM contents:
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
01000000E8010000
000001000800E801
0002002001000000
0001001000E20100
DD25FF1245B60076
DD2500ED1323FF91
9E8F0077BF69FF10
812E0077BF6900EE
2001000000000100
2800E20100110820
01FF680002010019
082001FF78000201
739F0079463000F2
31D7FF8D19160079
EE47FF0C23710079
EE4700F392D8FF8B
0000010000000001
0000000001000000
0001000000000100
0000000100000000
0FCD00F5EED0FF89
AF9B007B8C09FF08
E7ED007B8C0900F6
F067FF88C042007B
0000000100000000
0100000000010000
0000010000000001
0000000001000000
A902FF87229A007C
BD14FF0685D7007C
BD1400F964E2FF86
7090007D0FA2FF05
0000000001000000
0001000000000100
0000000100000000
0100000000010000
3DC2007D9D49FF04
C56F007D9D4900FB
2F2FFF84BA0D007D
D9DCFF044C48007D
081C001C01000400
081D080100050008
1E00000100040008
1F00010006000820
41B3FF037C99007E
41B300FC7D53FF83
7685007E6E12FF03
23DC007E6E1200FC
0824800001000500
0825000001000500
0826000001000500
0827000101000500
0800008000000080
0000000008000280
0000007DA6FAFF04
B20B007DA6FA00FB
081C001C06000000
0000000000000000
0000000000000000
0000000000000000
So i am a bit confused is it programming or not?
The device does not pass thru any sound. It only makes some noise while programming.
(I am not experienced at all at this subject I am sorry)
Could someone please help me with this?
Thank you in advance!
Audio Signal Processors
teraterm
programming arduino
sigmastudio
SigmaDSP Audio Processors
adau1701
Show More
Hello,
You will not be able to program the part using a EEPROM programmer and an Arduino. You can read in the EEPROM contents but you cannot change it and expect it to work.
You will have to invest in a USBi interface and download SigmaStudio. At that point you will have to create your own program because you cannot de-compile the Shure program. This is to protect the investment that Shure made in creating the program. There is also a lot more in the hardware that you will need to know to properly program the DSP. So my suggestion is to invest in an EVAL-ADAU1701 evaluation board and start learning how to program these DSPs. Then design your own system around it and this way you will have control over every aspect of the design.
Thanks,
Dave T
Dear Dave,
Thank you for the response. So if im understanding you correctly the only way to programm the eeprom of the adau1707 is using a usbi converter.
I was wondering how the elektor board is working. Because they programm the eeprom with an arduino using the hex file created by sigmastudio.
I thought that should also be possible with the sure board. I already ordered the usbi board but it did not arrived yet. Also my customers would like to know if there is a possibility for programming the eeprom with an arduino or something else.
And than use the dsp afterwards as a stand alone device.
But can i conclude out of your message that that is simply impossible?
Hello marijnsp,
The EEPROM is simply sitting on the I2C bus and so is the ADAU1701. The ADAU1701 will not do anything to stop you from programming the EEPROM. The ADAU1701 will be a master after powering up. I am pretty sure it will try three times to find an EEPROM with a valid program in it and if it does not then it will revert to being a slave on the buss. You can look at the SCL and SDA lines to see if they are being pulled down. They should not be pulled down.
So then you can program the EEPROM with anything you want. The point I was making is that you cannot modify a program or piece together a program using data in a hex file. You have to create the hex file in SigmaStudio then dump the program into the EEPROM. You can program the EEPROM using SigmaStudio if you like but you can use any other programmer. Like I said, if the 1701 is done trying to boot off of the EEPROM then it will release the buss. The other way to do this is if you can change the selfboot pin to take the 1701 out of selfboot mode. Then it will never try to take over the buss. It will be a slave from power up.
So the only way to write a program for the 1701 is by using SigmaStudio. Once you have a hex file compiled then load it in any way you can. I am wondering if the write protect may be an issue? it does have the feature where if you lower the WP pin in the 1701 it will disable the selfboot and allow you to program the EEPROM. What is happening to the WP pin when you are trying to program?
Dave T
Hi Marijnsp,
first, something looks strange in your teraterm log. If you just have a talkthru program, the DSP program should be almost empty. With SigmaDSP, an empty program is filled with 0x00 00 00 00 01 codes (the NOP instruction for the SigmaDSP), since the DSP has no idle mode and must run the 1024 instructions for every sample. SO it looks like it's not the correct HEX file which is downloaded in the EEPROM.
The second thing you have to know is that the WP pin must be pulled down when you want to program the I2C EEPROM (whatever you use the USBi or any other programmer). This however shall not change the EEPROM content you see from the log, so the first point shall be checked first.
Last point: make sure that your I2C programmer handles I2C bus contention properly. The USBi does this perfectly, but many low cost I2C programmers decide they are the only bus master and they don't check if a device ties the bus to signal it's occupied (don't forget that I2C is a multi-master bus by definition). In that case, there will be a bus error and the EEPROM will never be programmed.
Benoit
HI BenKB and Dave,
Thank you for the quick response and my apologies for my late response.
I measured the SDA, SCL they are both high.
I also measured the WP and it is low.
I guess something is going wrong with the programming using teraterm. But the one million dollar question is what.
It seems not to programm any good.
I guess ill just wait for the usbi, just to make sure this board just isnt defective.
Kind regards,
Marijn
Please log in to reply.