I have a ULINK2 connected to a LPC1758. The reset line has a 10k pullup and 100nF to ground. When I attempt to debug uVision4 sometimes starts at the reset vector and sometimes not.
I have measured the voltage on the reset line. The ULINK2 pulls it down to 0V as you would expect for reset but then it sits at about 1.8 - 2V. If it is a lucky start, once the code hits main() the voltage jumps to 3V3.
I presume that the code isn't starting sometimes because the 2V is slightly below releasing the reset. I assumed that the reset output of the ULINK2 was open-drain but it's not showing that characteristic.
Where does the 2V come from and how can I make it reset reliably?
Ant
Do you have anything else in circuit driving NRESET with a push-pull driver? FPGA, other logic?
No. The line does go to a connector ready for when the master processor can control it but as it stands at the moment, and is sitting alone on my desk, there are no other connections.
Thank you for the suggestion though.
Might you have a short with a neighbour signal trace, so you get your low voltage when that other signal tries wants to go low. And when your processor has started, then that other signal goes high and stops fighting with the neighbour reset signal?
That's a good thought, thank you. I'll check for that. Does anyone know what the output circuitry of the ULINK2 reset line looks like? Is it open-drain?
An easy way to test - if open-drain, then you should only have a pull-up resistor holding the signal high. And you could add a second resistor to ground and directly create a voltage-divider. With the signal driven by a push-pull output, your pull-down resistor should only manage to affect the signal a tiny bit because of the very low output impedance of a push-pull driver.
And you could add a second resistor to ground and directly create a voltage-divider.
Per, you puzzle me. I have never heard of a divider on reset. Care to elaborate?
Anyhow, if the device (which I do not know) has a reset generator, there should be no cap on reset
trevlig kvall
Erik
Connecting a 10k resistor between a signal and either ground or VCC is a good way to figure out if a signal is weakly or strongly driven.
So a 10k resistor to ground would tell if the reset signal is held high by a strong push-pull driver (the signal stays close to VCC), or if it is just held high by a pull-up resistor (the signal voltage drops a lot because of the introduced voltage divider between your resistor and the pull-up resistor soldered on the board).