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?
Looks like I may have solved the problem --- what I should have done in the first place was to place a jumper between the pin that drives the AUDIO_RESET signal, and the ADAU; so, it occurred to me that the easiest thing to try was based on that: I just cut the trace (fortunately it is on the board's top layer), and SigmaStudio could save the latest compilation to EEPROM. (now I just need to put a small blob of solder to re-connect it)
I haven't verified that the whole thing works (I don't have the necessary equipment here --- will try it tomorrow at the office), but this ia definitely a good sign!
Actually, there is still some problem with the design.
I'm using SigmaStudio 3.17 on Windows 7, through a VirtualBox virtual machine. This setup so far has worked fine with the ADAU1701 EVAL-MINI board.
I tried a simple 2-way crossover, getting input from I2S and outputting to the DACs.
I can do "Write latest compilation to E2PROM", but when I do "Check last compilation vs. E2PROM", it reports a discrepancy. The pop-up window shows:
FIRST MISMATCH VALUE: FF AT INDEX: 0. DIFFERS FROM EXPECTED VALUE: 01
As you can see in the schematic above, I used the 24AA256 E2PROM, same as the EVAL-MINI board to be on the safe side. Any ideas of why I'm getting this error? What should I try next?
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.
Thanks Dave for your reply and the tips!
Couple of follow-up questions/comments:
Just to double check that I understand correctly --- what you're suggesting is what the schematic below shows, right? Pin 4 of the USBi connector brings in the +5V, correct? (the transistor can have pretty much any β / hFE --- something as low as 1 still guarantees that the transistor saturates)