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
Apologies for the delay in response.
The ideal power on sequence is to power up all the supplies simulataneosly. If there is some delay, VDDINT has to be powered first followed by VDDEXT. Since you have mentioned that the issue is seen with both these methods, we will have to debug further to find out what else could be going wrong in the system.
In the existing setup, can you probe the signal at the CLKOUT pin of the DSP ? The peripheral clock(HCLK) is supplied at the CLKOUT pin. For the case the booting hangs (i.e. without issuing manual /RESET), do you see a stable signal of correct frequency at the CLKOUT pin ?
In the first post, you had mentioned that there were some issues with the crystal oscillator start-up and an external shock is required to fix this issue. Is this crystal start-up issue seen everytime during power-up or only once in a while ? Also, you have mentioned that once the CLKIN issue is fixed, the EMI booting happens as expected and there is no hang. Just for debugging purpose, can you try with a different crystal (with a lower CLKIN value say 25MHz) and check if that helps to resolve the problem ? Also, you can try with an oscillator that provides direct CLKIN to the DSP (the XTAL pin needs to be left unconnected. This will help us to know if the problem is specific to the crystal.
Please refer to our ADSP-21992 datasheet and the Hardware Reference Manual that has the recommendations for the unused pins of the DSP. Specifically, if the ACK pin is not used in the system, it needs to be pulled "HIGH". It would be helpful if you can post your circuit schematics showing the DSP and the other components used in the system. I would like to review the same.