ΣSigmaStudio Ask AI Русский Log in

ADAU1452 spi master port during reset?

SigmaDSP & SigmaStudio rkn Jan 16, 2018 00:00 2 replies Original on forum ↗
Subscribe
rkn Question
Jan 16, 2018 00:00

Hi,

what happens to the pins of the spi master port on an ADAU1452 when I set the device in reset? Are they going to high-z? In my target application I would like to program the eeprom by a microcontroller which becomes the master on the spi bus during programming. Thus, my idea is to keep the DSP in reset during programming the eeprom.

Can I do it this way or am I running into a conflict with the master spi port of the DSP when the mcu takes over the spi bus?

I know that I could program through the slave port but that did never work for the last three boards although used the same circuit and devices like on the evaluation boards. Therefore, I do not trust in this solution.

Raphael

Audio Signal Processors

adau1452

SigmaDSP Audio Processors

DaveThib Reply
Jan 17, 2018 00:00

Hello Raphael,

I am fairly certain that the pins will be in a Hi-Z mode but I am not 100% certain. It can be difficult to get this info sometimes. There may be a better way to do this. The four pins are on a multi-purpose pin so simply change MP0,1,2,3 from its primary function over to an input. Then it will be "out of the way" for you to take over the SPI bus. This should certainly work once you program the PLL and enable the DSP but do not load in the program yet. Then it will not be trying to use the master port. Now if you are selfbooting then you will need to wait until it is done. Then you should be able to change the function of the pin.

If the DSP program is actively using the port then I am not certain that this will work. If the code writes to the MP-Pin registers then it will set it right back to being the primary function. I know it will set these registers during configuration of the master port but it may also be done at other times. I am not sure how diligent the programmers were to ensure the port is in the correct mode. So if this is the case then simply stop the DSP program and resume it after you are finished programming.

Now I would be interested to hear about your attempts to write to the EERPOM through the DSP. It does work, we do it using SigmaStudio and it can be seen in the capture window. In fact, you can capture the program if you like.

Thanks,

Dave T

rkn Reply
Jan 18, 2018 00:00

Hi Dave,

I tried both options on my latest design. Both do not work neither setting the output pins as you described nor setting the DSP in reset. Trying to write the EEPROM directly via SigmaStudio 3.16 or 3.15 does not succeed. Whenever I use "Check last compilation USB" only 0xff is read instead of 0xa0. The EEPROM (25AA1024) is directly connected to the SPI bus on the USBi connector now.

Well, we talked about the "through DSP" option already a 3/4 year ago and it was not possible to solve this issue and the project was aborted.

This is now the third design where programming via SigmaStudio does not work at all. Actually I have never seen it working when using an ADAU1452. So far an external programmer was used instead although the communication with the DSP always worked fine.

In this application now it is a requirement that the user can store new programs on the selfboot EEPROM without using SigmaStudio+USBi just via the MCU (thus, external EEPROM programmer is no option). And I am searching for the best way how to do that. Well I would indeed prefer to go via i2c on the DSP slave port because it will save the SPI port on the MCU.

But if programming via SigmaStudio does already not work I am doubting that it helps to copy the content of the capture window into the MCU routine... Therefore, Write through DSP is not my choice yet.

I am getting more and more the feeling that something in the USBi firmware or in SigmaStudio or in the programmer application downloaded to DSP is terribly wrong.

Sorry to say that.

Maybe you can provide a project file where you are able to program the selfboot memory though DSP on an ADAU1452 (connected via i2c on slave port)? And a screenshoot of the right settings. Make sure, that only SDA, SCL and GND are connected to DSP and the SPI lines are not connected physically.

Raphael