Hello,
I'm very new to keil products. I'm working with the MDK (latest version) and the ulink2 interface to upload some code to my target (AT91RM9200 controller) - but I get always the error "could not stop arm device, please check the jtag connection".
I develop this board by myself and I want to start testing the device, today...
I used 200kHz for the MAX JTAG Clock.
Where could be the problem for this error message - in my hardware design or is it a configuration error (software problem)?
best regards Lukas
Have a look at the reset signal to the chip.
Do you use a nasty RC to generate the reset, or do you use a real reset chip?
The reset signal from the ULINK isn't strong enough to fight an RC delay, or reset signals with a lot of capacitive load or a strong pull-up.
Hello Per,
I use the MAX6390 IC (for e.g. the brown-out detection and as reset controller).
I have also installed a 1kOhm pull-up resistor at the NRST signal. Maybe I should de-install this pull-up.
10k would be more reasonable. Think about the current needed to fight a 1k resistor...
ok then I would change this resistor with a 10kOhm resistor - hope it will help.
What could be another problem for this error message? I use 10kOhm pull-up resistors for TMS, TDI, NTRST and TDO and one pull-down resistor for TCK. The JTAGSEL pin is connected to VCC via a 10kOhm resistor (to use JTAG instead of the ICE interface).
Moreover is it better to use a 10kOhm pullup or pulldown resistor for the TCK signal? I've seen both options in different schematics. At the moment I use a pull-down resistor at the TCK signal.
now I checked the reset signal, during downloading some code to the controller. The reset signal didn't change his value of 3.3V -> that's the reason I'm not able to stop the controller.
But what could be the problem that I'm not able to reset the controller / or change the value of NRST? NRST has always 3.3V.
by the way is it correct to connect the NRST reset pin from the µcontroller with the RESET pin for the ulink2 interface when I work with the MAX6390?
Or is it better to connect the RESET pin from the ulink2 interface with the MR pin from the MAX6390?
now I changed the resistor from 1kOhm to 10kOhm - but nothing has changed. I'm not able to reset the controller with the ulink2 interface. When I look at the voltage at the reset-Pin - it's always 3.3V.
Is it correct to connect the reset pin from the ulink2 interace direct with the reset pin of the controller - or should it be a better way to connect the ulink2-interface with the MR pin from the MAX6390 - so that this chip will reset the controller?
ok now the voltage at the reset pin changed their value from 3.3V to 3.0V - but I get the same error message.
lukas
Have you checked that you don't have a solder problem or similar with the reset line? It seems very hard to drive low. Or might you have gotten the wrong reset chip, so it is a push-pull variant, instead of an open-collector chip?
I have tested another board I have bought for testing - and this board is working with the ulink2. I get the same values for the reset pin - the lowerst value is 3.0V. This board uses the MAX6390 ic, too / but I don't know the excact specification.
Or might you have gotten the wrong reset chip, so it is a push-pull variant, instead of an open-collector chip?
I have choosen the MAX6390XS30D4 with open-drain output (which is connected with the AT91RM9200 and the reset pin from the ulink2 interface.
I know that this chip has an 900ms long startup time. Maybe there could be something wrong with the crystal and his capacitors?
What would be a suitable value for a good reset voltage (at the reset pin from the ulink2 interface) if your system voltage is 3.3V?
best regards C.Jensen
now I get a reset impulse (50ms long) and nearly 0V. I only disconnect the TRST from the ulink2 interace. But now I get the error "no jtag devices found"?
I read that this pin must not be connected to work with ulink2. www.keil.com/.../ulink2_hw_connectors.htm
now I get "jtag communication error" - I only turn off the ulink2 interface.
Now it's the same error as bevor "could not stop arm device" - the reset impulse from the ulink2 is ok...
now ulink2 tries to get the device ID - could I see if ulink gets this ID? Maybe the processor doesn't work / run or anything else, so that there's no access to the processor?
What's the difference between jtag communication failure and could not stop the device?