USBDM on FRDM, target forces reset?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

USBDM on FRDM, target forces reset?

Jump to solution
625 Views
jpa
Contributor IV

I'm trying to use the FRDM-KL25Z with USBDM to program a K60 target.   (Under both Linux and a Virtual Machine running XP, but let's stick with Linux for now, XP has similar problems)

I've successfully installed the software and drivers and was able to program the loop program into the KL25, and removed the J11 jumper.

However, if I connect it to my target, the FRDM-KL25Z goes into reset and comes out with the 1 sec blink and is back to enumerating as a mass storage device.

I've tried powering the target independently (before and after plugging in the FRDM board) and NOT powering the target independently, but get the same results.

I've previously programmed the target successfully using a PEMicro Multilink.  (Although not under Linux and not even on this PC).

I'm thinking the problem has to do with the reset module built onto the target board.  The one I'm using at the moment is open drain, but it has a 'debounce' detect built-in.  That is, if it detects reset going low externally, it will also pull reset low and keep it there for 150ms  (ADM1818 from Analog Devices).   I'll try replacing it when I'm in reach of a soldering iron, but is there also a software method that would keep the FRDM board from going into it's alternate mode on power up based on the state of the target's reset pin?

I'm guessing that I can't just disconnect reset between the FRDM and the target, that the USBDM needs this to put the target in BDM mode.  

John

0 Kudos
1 Solution
338 Views
pgo
Senior Contributor V

Hi John,

The bootloader in the FRDM board checks the TARGET reset line when being reset to determine the boot mode either bootloader or application (USBDM).

I suspect you have diagnosed the problem correctly - I would agree that the target reset line is being held low while the FRDM board is experiencing a reset.  The question is why?

I would have expected you to be able to power on the BDM and target separately and then connect to avoid the problem since connection should not then cause a reset (even from a power spike).

I don't understand why this is happening.

Suggestions:

  • A simple suggestion would be to isolate the reset signal in one direction.  You can try a diode for example.  This would allow the BDM to reset the target but not the other way around. It is still possible that the external reset circuit on you board will still interfere with the actual programming.
  • You could also try increasing the filter capacitance on the target so that connecting the BDM is less likely to affect the external target reset circuit (if that's the problem).
  • Isolate the power supply between target and BDM i.e. disconnect the Vdd line in the debug connector to avoid any Vdd spikes.  This should be OK if the two system use the same supply voltage.
  • Further to the above - are the BDM and target both 3V3?

I can't think of a software solution so it looks like a soldering iron is still necessary.

bye

View solution in original post

0 Kudos
2 Replies
339 Views
pgo
Senior Contributor V

Hi John,

The bootloader in the FRDM board checks the TARGET reset line when being reset to determine the boot mode either bootloader or application (USBDM).

I suspect you have diagnosed the problem correctly - I would agree that the target reset line is being held low while the FRDM board is experiencing a reset.  The question is why?

I would have expected you to be able to power on the BDM and target separately and then connect to avoid the problem since connection should not then cause a reset (even from a power spike).

I don't understand why this is happening.

Suggestions:

  • A simple suggestion would be to isolate the reset signal in one direction.  You can try a diode for example.  This would allow the BDM to reset the target but not the other way around. It is still possible that the external reset circuit on you board will still interfere with the actual programming.
  • You could also try increasing the filter capacitance on the target so that connecting the BDM is less likely to affect the external target reset circuit (if that's the problem).
  • Isolate the power supply between target and BDM i.e. disconnect the Vdd line in the debug connector to avoid any Vdd spikes.  This should be OK if the two system use the same supply voltage.
  • Further to the above - are the BDM and target both 3V3?

I can't think of a software solution so it looks like a soldering iron is still necessary.

bye

0 Kudos
338 Views
jpa
Contributor IV

I had tried powering up the target first (with the BDM connected) before the FRDM board, and second (after FRDM board), but hadn't tried making the BDM connection with both live.  I was able to do that and the FRDM board did not go into reset, but I still couldn't probe the target enough to even detect the chip.

Disconnecting the reset module worked, however.  After that I was able to power the target from the FRDM board (it's a small board) and could probe the chip type.  Once I figured out that the erase settings needed to be set to "MASS ERASE", I could erase and program the chip from Linux and the program runs.

I then briefly tried all this from my VirtualBox Windows XP virtual machine (on the same PC) using the standalone programmer and while it initially detects the interface, I can't detect the chip or do much of anything else, it says "Failed to probe target, Reason: Selected BDM not found (removed?)" and after this it no longer detects the interface unless I disconnect the USB device (FRDM) from the virtual machine and reconnect it. 

But that's for another day...I was able to program the board, and that has me happy enough for now.

John

0 Kudos