Netcruzer USB Bootloader Project  V1.00
 All Data Structures Files Variables Groups Pages
Introduction

This documentation is for the Netcruzer USB Bootloader. To return to the main Netcruzer documentation page Click Here.

Introduction

This documentation contains information on using, configuring and building the Netcruzer USB Bootloader.

For details on programming a board with a pre-built version of the Netcruzer USB Bootloader, click here. The source code and MPLAB IDE projects is available for free, and located in the ".../src/projects/usb_hid_boot" folder of the Netcruzer Download.


Details

 Picture 1. Jumper in "Firmware Upgrade" position


 Picture 2. Jumper in "Park" position
All SBC66 Boards boards with USB ports are programmed at delivery with the Netcruzer USB Bootloader. It is a small program that resides in the first couple of KBytes of program memory, and is activated at startup if the jumper is placed in the "F" position (see Picture 1). It allows the firmware of the board to be updated via the Netcruzer USB Bootloader. See Updating Firmware via USB for details. Once firmware has been uploaded, the board will have two separate and completely independant programs on it. The Bootloader and Firmware (User Program). See Memory Map for details. When the jumper is placed in the "Park" position (see Picture 2), the Netcruzer USB Bootloader will immediately start the Firmware on power-up.


Secure Method

The firmware is updated in a very secure manner. Even a power failure during the firmware update process will not result in the board being programmed with faulty firmware. For details, click here.


System LED

The system LED indicates the state of the board. During normal operation, the LED should have one long, and 1 to 3 short flashes per cycle, depending on the loaded firmware. For example, the Webserver firmware will have one long, and one short LED flash each 1.6 seconds. When in bootloader mode (jumper on "F"), there will always be two long flashes, followed by 1 to 3 short flashes. The state of the bootloader is:


Bootloader Mode, USB unplugged

When the board is in bootloader mode, but the USB connection is not active, the LED will have 2 long flashes, followed by 1 short flash every 3.2 seconds.

3.2 Seconds (times below in ms)
400 On 400 Off 400 On 400 Off 100 On 1500 Off

LED flash pattern is 400ms ON, 400ms OFF, 400ms ON, 400ms OFF, 100ms ON, 1500ms OFF.


Bootloader Mode, USB plugged in

When the board is in bootloader mode, and the USB port is plugged in and initialized, the LED will have 2 long flashes, followed by 2 short flashes every 3.2 seconds. New firmware can be uploaded via the Netcruzer USB Bootloader application.

3.2 Seconds (times below in ms)
400 On 400 Off 400 On 400 Off 100 On 100 Off 100 On 1500 Off

LED flash pattern is 400ms ON, 400ms OFF, 400ms ON, 400ms OFF, 100ms ON, 200ms OFF, 100ms ON, 1200ms OFF.


Memory Map

There will always be a minimum of two separate programs located on the Microcontrollers FLASH program memory:

  • The Bootloader is a separate program located in the lower 6 KWords of the Microcontrollers FLASH program memory, at word address 0 to 0x1BFF.
  • The User Program (Firmware) occupies the remaining spaceis a separate program located in the lower 6 KWords of the Microcontrollers FLASH program memory, at word address 0 to 0x1BFF.

When the board is powered, the bootloader program will be executed. It will check the jumpers of the board. If the the jumper is in the "Park" position (or removed), the

  
Bootloader 0x0000 - 0x00FF Interrupt Vector Table
0x0100 - 0x01FF Alternative Interrupt Vector Table
0x0200 - 0x1BFF Bootloader
User Program 0x1C00 - 0x1D0F User Program Interrupt Vector Table
0x1D10 - 0x2A7FF User Program
  0x2A800 - 0x2ABFF Last Page, contains Configuration Words
  FLASH Program Memory Map - Word addresses




mxsecbar18.gif
mxsecbar20.gif
mxsecbar22.gif
jmp_f_320.jpg
jmp_park_320.jpg