ADAU1701 in self-boot mode --- mistake in my board design

Having made a mistake in my board design, I'd like to figure out whether I can (reasonably easily) get around it and make it work.

As indicated in the subject, I'm using the ADAU1701 with an external EEPROM for self-boot.  The circuit is similar to the ADAU1701 mini evaluation board, so I will program the ADAU with a USBi from SigmaStudio.

The mistake I made is that I placed a chip that is driving the RESET line  (without jumper or switch to selectively disconnect it).  The RESET line (the one that goes to the ADAU1701, labeled AUDIO_RESET in the schematic, shown below) is being held at logical 0.  The one that comes from the USBi  (labeled AVR_RESET in the schematic), at this point has absolutely no effect --- it is connected to the RESET pin of an AVR microcontroller, with a 10k pullup.

SigmaStudio cannot connect to the board to download the compiled model, or save latest compilation to EEPROM.  In either case, it "freezes" and when interrupted it reports it could not connect.

I am supplying power to the board  (separately --- a 12V input goes to a 3.3V DC/DC switching regulator).  Those 3.3V go to the ADAU1701 and to the EEPROM.

Below are the relevant sections of the schematic --- the connections to the USBi and the related ADAU1701 pins.

Question #1:  should it work, with the ADAU1701 RESET line being held to 0  (active) ??
Question #2:  any suggestions to get around the problem?

Thanks!

ADAU1701 to USBi connections

ADAU1701 connections

Parents
  • +1
    •  Analog Employees 
    on Jan 22, 2019 9:49 PM over 1 year ago

    Hello Carlos,

    Sorry for the problems. There are a few other details to take care of.

    The Write Protect is being puled up. This is not a problem during normal operation but it is a problem when you are trying to write to the EEPROM. So you need to pull down the WP pin to allow the EEPROM to be programmed. The connection to the ADAU1701 is there to allow the DSP to pull down the WP line when it writes-back the interface registers when triggered.

    What I have done in designs is to place a transistor in the design to pull down the write protect. The base of the pre-biased transistor is connected to the USBi-5V Power pin. So when you plug in the USBi it pulls down the WP pin. No jumper required.

    So for right now if you can solder on a jumper to pull it down to ground while you are working on it then remove it when you are done.

    Let me know if this works for you.

    Dave T

  • Thanks Dave for your reply and the tips!

    Couple of follow-up questions/comments:

    1. How is this handled in the ADAU1701 EVAL-MINI board?  The ADAU1701 datasheet states "The ADAU1701 does not self-boot if WP is set low" --- the transistor trick you suggest is consistent with this;  but the EVAL-MINI board schematic is not.  In the evaluation board there is switch S5, which allows selection between connecting WP to GND, or to a 10k pullup resistor.  As the schematic shows, S5 connects to the 10k pullup --- I understood that to mean that the board's factory default is that  (WP connected to a 10k pullup), which is why I designed my board like that.

      Right now, the switch (S5) on my evaluation board is to the side of the header connector J8 --- should I guess that that corresponds to connecting the EEPROM's WP to GND?  :-(

      One thing I can't understand is how can the EVAL-MINI board work --- I can't remember whether I changed the position of S5 w.r.t. the factory default;  but I'm somewhat certain that I never change it back and forth when playing with it.  And I am quite sure that I have programmed it, reprogrammed it, tried many different things, powered off then on to verify that the contents downloaded to the EEPROM still take effect, etc.   How can that be?  If I set S5 to the 10k pullup position, then I wouldn't be able to program the EEPROM;  and if I set it to GND, then the ADAU1701 would not do self-boot, so a power cycle would wipe out the design I programmed.   Am I missing something?

    2. Can I get away with downloading the SigmaStudio design into the ADAU1701 without programming the EEPROM?   I would like to test whether the operation is fine  (audio outputs, I2S signals connected correctly, etc.).  I will need to work on a second iteration of this board, so I would like to figure out all of the bugs/glitches  (in any case, as many as possible).   I mean, I will try to solder the jumper as you suggest;  but it looks a bit challenging --- the EEPROM is, like, 3mm away from the WP pin of the ADAU1701, and it connects nowhere else;  do keep in mind that I do not have strong skills (read: good enough eyesight and steady enough hands!) when it comes to soldering tiny things.

      If I try "Link / Compile / Download", the software tells me that that option is for evaluation hardware only;  I can do "Link / Compile / Connect", which I guess I need to do anyway before attempting to program the EEPROM.

      Is that option related to what I'm asking here?

    Thanks,
    Carlos
    --

Reply
  • Thanks Dave for your reply and the tips!

    Couple of follow-up questions/comments:

    1. How is this handled in the ADAU1701 EVAL-MINI board?  The ADAU1701 datasheet states "The ADAU1701 does not self-boot if WP is set low" --- the transistor trick you suggest is consistent with this;  but the EVAL-MINI board schematic is not.  In the evaluation board there is switch S5, which allows selection between connecting WP to GND, or to a 10k pullup resistor.  As the schematic shows, S5 connects to the 10k pullup --- I understood that to mean that the board's factory default is that  (WP connected to a 10k pullup), which is why I designed my board like that.

      Right now, the switch (S5) on my evaluation board is to the side of the header connector J8 --- should I guess that that corresponds to connecting the EEPROM's WP to GND?  :-(

      One thing I can't understand is how can the EVAL-MINI board work --- I can't remember whether I changed the position of S5 w.r.t. the factory default;  but I'm somewhat certain that I never change it back and forth when playing with it.  And I am quite sure that I have programmed it, reprogrammed it, tried many different things, powered off then on to verify that the contents downloaded to the EEPROM still take effect, etc.   How can that be?  If I set S5 to the 10k pullup position, then I wouldn't be able to program the EEPROM;  and if I set it to GND, then the ADAU1701 would not do self-boot, so a power cycle would wipe out the design I programmed.   Am I missing something?

    2. Can I get away with downloading the SigmaStudio design into the ADAU1701 without programming the EEPROM?   I would like to test whether the operation is fine  (audio outputs, I2S signals connected correctly, etc.).  I will need to work on a second iteration of this board, so I would like to figure out all of the bugs/glitches  (in any case, as many as possible).   I mean, I will try to solder the jumper as you suggest;  but it looks a bit challenging --- the EEPROM is, like, 3mm away from the WP pin of the ADAU1701, and it connects nowhere else;  do keep in mind that I do not have strong skills (read: good enough eyesight and steady enough hands!) when it comes to soldering tiny things.

      If I try "Link / Compile / Download", the software tells me that that option is for evaluation hardware only;  I can do "Link / Compile / Connect", which I guess I need to do anyway before attempting to program the EEPROM.

      Is that option related to what I'm asking here?

    Thanks,
    Carlos
    --

Children
  • 0
    •  Analog Employees 
    on Jan 23, 2019 5:22 PM over 1 year ago in reply to cmoreno_uw

    Hello Carlos,

    Let me take these questions a step at a time.

    Have a look at this schematic of the Evaluation board:

    Note that all the switch does is ground the WP pin of the EEPROM. The WP pin of the DSP is still tied to the pullup resistor. So all the switch does is to allow the EEPROM to be programmed. It does not defeat the pullup on the WP pin of the DSP so it will selfboot no matter the position of the switch.

    The only thing the switch will mess up is if you are doing write-backs of the interface registers to the EEPROM. And actually, as I think about it. It will not mess that up either. The purpose of the WP pin is to make certain the EEPROM is able to be programmed. If S5 is grounded then the EEPROM can be programmed. If S5 is set to the other position then the WP pin will go low during the Write-back to allow the EEPROM to be programmed. So in the end the switch is really only allowing you to program the EEPROM from the USBi. I always leave my eval board in this position.

    Question 2:

    I almost never program the EEPROM on my eval board. You can always just load in the program directly from SigmaStudio using the Link/Complile/Download command. If there is a program in the EEPROM I would wait a second to let it load in after powering up before trying to write a new program into it. If Selfboot is enabled then the I2C port becomes a master port while it loads in from the EEPROM. I don't find this to be a problem since I normally plug in the power using the USBi and then it takes me usually more than a second before trying to load in a program.

    What the Link/Compile/Connect command is for is to let the DSP boot up from the EEPROM. Then if you want to control the program from SigmaStudio you do NOT download, you only connect to it. Then the objects on the screen will send the commands to the DSP for changing the settings etc. Or looking at meters. The program in SigmaStudio MUST be the exact same program that is resident on the EEPROM. Otherwise, the addresses of the DSP objects will probably be different.

    Looking at your schematic, I would tack a ground wire to one side of R12 instead of trying to get to the pins on either the DSP or the EEPROM. I don't know what size resistors you used but there should be more room there.

    Now as I get older I know it gets more difficult. I invested in a good magnifier headset that makes me look like a total nerd but it really works well! Then I also use tricks like resting my pinky finger down on something when soldering to help steady my hands. It really helps a lot.

    So now to your last comments. If you are getting a message about there needing to be development hardware attached, then there is an issue with your connection to the DSP. Do you have the USBi attached in the Hardware Configuration window? Is it set to the proper address? Are you getting a window saying that there was a communication issue? There is nothing special about the eval board. All you need is SCL and SDA connected and the ground.

    Dave T