FRDM-KL25Z OpenSDA Questions

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

FRDM-KL25Z OpenSDA Questions

1,055 Views
controlguy
Contributor I

Group,

Sorry for the newbie post here but I am just getting started w/ the FRDM-KL25Z board and am trying to understand something:

What is the significance of the 2 USB ports on the board? I see one of them can be used for debugging and loading of code. However, what happens in a production design that needs a single USB port to connect to a computer where the computer is acting as the host? How do you then load code into the board for initial rollout and upgrades?

Labels (2)
0 Kudos
7 Replies

733 Views
controlguy
Contributor I

Thanks for the response. Looks like the header is the way to go. Better to be safe than sorry. Do you have a preference on which one you use and why?

Thanks!

0 Kudos

733 Views
BlackNight
NXP Employee
NXP Employee

Typically, I use the 2x5 (2 mm) header with SWD, as it uses less pins, so I have more pins available on the microcontroller.

See Using the FRDM-K64F with CodeWarrior | MCU on Eclipse

I use the 'standard' header, but if space is a concern, I have seen designs with a smaller header and then using an adapter.

0 Kudos

733 Views
controlguy
Contributor I

Erich,

I apologize. My question should have read which one, P&E Multilink or a Segger J-Link, do you use and why.

Thanks for the other response though. Your blog posts are VERY helpful! :smileyhappy:

Ed

0 Kudos

733 Views
BlackNight
NXP Employee
NXP Employee

Hi Ed,

I'm using both the P&E Multilink (Universal), and as well the P&E tracelink (see First Steps with the P&E Tracelink | MCU on Eclipse) and the Segger J-Link. Both the Multilink and the J-Link are very valuable to me. I use the Multilink Universal because I can use the same device for multiple processor families (PowerPC, S08, ColdFire, ARM) and costs less than the J-Link (not comparing educational versions here). The J-Link has more features (e.g. 'unlimited flash' breakpoints, an extra (usually paid) feature), but costs somewhat more, but 'only' supports ARM, but pretty much every ARM licensee as far as I can tell. Both solutions are good ones, and it is up to your requirements which one you choose. My recommendation is to use both, so you always have a backup in case you have a problem :-). And have more than one of each: It is a bad day if your development is blocked because of broken tools.

0 Kudos

733 Views
BlackNight
NXP Employee
NXP Employee

To initially program the board you either need the microcontroller programmed with a programming adapter (or a socket where the microcontroller gets programmed before soldered on the board). Usually you populate a programming header (typically a 2x5 pin header) on the board. On the FRDM-KL25Z board this is J6 (see Completing the FRDM-KL25Z Board | MCU on Eclipse). After that, if you want to update the board, you would need a bootloader (e.g. through USB). There are many different ways to do this, I'm using a simple serial (as well over USB CDC) bootloader as the one described in Serial Bootloader for the Freedom Board with Processor Expert | MCU on Eclipse

0 Kudos

733 Views
controlguy
Contributor I

To be clear, if I design my own board using the KL25 chip family, I will need something connecting to the J6 header to program initially or have the supply house pre-program them and then, I could use USB as you've described for future updates, correct?

In addition, I could just populate the J6 header in my own design and update there, correct?

0 Kudos

733 Views
BlackNight
NXP Employee
NXP Employee

Yes, you need a JTAG/SWD header like J6 to program the device with a JTAG/SWD programmer like the P&E Multilink or a Segger J-Link. You do not need that if you are pre-programming your devices (e.g. by the one who populates the board) with a bootloader firmware. But I would only rely on that programming method if you are +100% sure that your bootloader is rock solid and the bootloader either has the ability to upgrade itself. In any case I recommend that you have the footprint on your board, so later on you can access your device with a debugger.

Having your own JTAG/SWD (J6 style) header on your board is the way to go in my view.

0 Kudos