I have a problem with booting ADSP-21992 from an 8-bit external flash via EMI. When switching on the power supply, VDD_INT and VDD_EXT voltages stabilize on their correct values, the oscillator get stabilized, too and after about 1.5 ms the DSP's internal "power on reset" circuit deasserts the RESET signal. DSP starts to boot the code from the external memory, however, after several hundreds of microseconds it suddenly hangs, letting the bootstrapping unfinished. Then, when I assert and deassert the RESET signal "manually" with a piece of wire, the booting procedure starts again and completes normally, the DSP boots to my program and everything is OK. When I switch to EEPROM >4KB boot, connect an external EEPROM (with the same program) to the SPI bus and boot from it instead of flash, everything goes all right.
During my attempts to fix this problem, I experimented with crystal load capacities bringing it to the state, in which it is not able to start oscillations without some external shock (touching XTAL pin with finger etc.). However, after introducing such a shock and starting the oscillator, the DSP normally booted up even via EMI without need to assert and deassert the RESET signal manually.
I have ADSP-21992BSTZ, 32 MHz external crystal (using DSP's internal TTL oscillator), BYPASS pin unconnected (thus, bypass mode selected via the internal pull-up) and POR connected to the RESET (none other connections to those pins). Power supplies are soft-start DC/DC convertors.
Any guess what to do?
por1 - switching on power supplies; pink - VDD_INT, violet - VDD_EXT, yellow - CLK_IN, green - POR (scale: 1 ms - 1 V)
por2 - address bus activity after deasserting the RESET signal by POR
por3 - address bus activity after asserting and deasserting the RESET signal again, but manually
The problem is solved. The reason is in the ADSP-21992 - it seems to have poorely designed power-on-reset, which deasserts the RESET# signal too early (after 1.5 ms). Probably, it has nothing to do with external oscillator stabilization nor external power supplies stabilization, but with some chip's internal issues.
Now I use a simple RC driven (RC=10 ms) TTL gate in place of power-on-reset and it works well.
For ADSP-21992 applications I strongly recommend to use an external power-on-reset circuit and external TTL oscillator instead of the internal ones.
Thanks all for help and advices given.
It is fortunately for me to discover this topic.When I used the internal power-on reset circuit which is used by
connecting the POR pin to the RESET pin，I am encountering the same problem.
You mentioned that we can use a simple RC driven (RC=10 ms) TTL gate,I want to know the accurate value of R and C.
Many thanks in advance. I hope to hear from you soon.
the solution I proposed in my last post worked only on some boards, not all of them. Usage of some power-on-reset IC would be probably better. The reason of this problem is still unknown for me.
I have to point out, that there were two problems connected with booting - one was with oscillator start and the other with a malfunction of the booting procedure which has already successfully started (probably not affected by the oscillator). If you are encountering the former, then usage of an external TTL oscillator is the best solution (or you can experiment with load capacitors if you use an internal oscillator, i.e. decrease their value or even remove one of them).