USB PIC Bootloader

USB PIC Bootloader is a resident bootloader for PIC18 series of Enhanced Flash USB Microcontrollers. It allows you to program application hex into the chip using the standard USB connectivity of your device.

 Bootloader kit

USB PIC Bootloader code is write-protected and cannot be overwritten by firmware.

Firmware update or user mode is selected by SW and/or HW switch.

USB PIC Bootloader is a program that stays in the first 8191 bytes of the program memory of the Microchip PIC Microcontroller. Bootloader runs at the boot time (when the processor has just been reset) and is capable of loading a complete application program into a processors memory. With the USB PIC Bootloader loaded, there are two distinct modes of operation:

firmware update mode and Application mode.

USB PIC Bootloader uses the EEPROM mark and/or hardware switch to determine which mode to run in.

Firmware Update Mode.

In firmware update mode USB PIC Bootloader utilizes USB connection of Microchip PIC Microcontroller to communicate with PC and load the new application code. Once the programming is done, the USB PIC Bootloader switches to Application mode, the processor is reset and begins running the newly loaded code.

Application mode.

In Application mode USB PIC Bootloader simply remap reset and interrupt vectors to user mode firmware application.


Features

1. Easy connect to Laptop as well as Desktop PCs through USB Port to downloading your hex file

2. Built-in MAX232 interface circuit for easy communication with a computer and other serial devices (GPS modules, GSM Modems, etc).

3. On board Buzzer.

4. Comes with two BC547which can be used to drive relays.

5. On board 16x2 LCD with brightness control for LCD.

6. 4 Digit Segment Multiplexed Display.

7. 8 LED array.

8. I2C serial EEPROM and Real Time Clock.

9. 4*4 matrix keyboard.

10. Port extensions for all ports.

Included Material

# 12V DC Adaptor

# 20 No's Burg wire - Female to Female

# USB Port Cable

# The included CD contains tutorials to get started, sample codes, demo projects, BootSoft Software and USB driver.


Contact : shop.romux@gmail.com


Bootloader Modification for Microchip ASM compiler

	processor PIC18F4550
	#include"p18f4550.inc"

	org 0x2000
	goto init
	org 0x2020
	goto int_isr

init
	...               ; initialization
loop
        ...               ; code
	goto loop	


int_isr
        ...               ; interrupt code
	retfie
	end

Bootloader Modification for Microchip C18 compiler

For Bootloader you need to rebuild and use linker file : Bootloader18F.lkr

step 1 : find mcc18/src/traditional/startup/c018i.c

step 2 : edit the files and search "#pragma code _entry_scn=0x000000" modify as "#pragma code _entry_scn=0x002000"

Step 3 : edit the same for c018.c file also

step 4 : Build

Example Format

#include "p18F4550.h"

void low_isr(void);
void high_isr(void);

#pragma code low_vector=0x2018
void interrupt_at_low_vector(void)
{
  _asm GOTO low_isr _endasm
}
#pragma code 

#pragma code high_vector=0x2008
void interrupt_at_high_vector(void)
{
  _asm GOTO high_isr _endasm
}
#pragma code 

#pragma interruptlow low_isr
void low_isr (void)
{
  
 return;
}

#pragma interrupt high_isr
void high_isr (void)
{
 return;
}

void main( void )
{
     ...;
 }

MikroC

Example Format for Bootloader

#pragma orgall 0x2000
void interrupt(void) org 0x2008
{
;
}
void interrupt_low(void) org 0x2018
{
;
}
void main()
{
  ......;
}

Hi-Tech C Compiler

step1:goto Build option

step2:linker tap

step3:set offset : 2000

CCS C Compiler

Example format


#include "18F4550.h"
#use delay(clock = 48000000)

#define LOADER_SIZE        (0x1FFF)
#define LOADER_START       (0)
#define LOADER_END         (LOADER_SIZE)
#define APPLICATION_START  (LOADER_SIZE+1)
#define APPLICATION_END    (getenv("PROGRAM_MEMORY")-1)
#define APPLICATION_ISR    (APPLICATION_START+8)

#build(reset=APPLICATION_START, interrupt=APPLICATION_ISR)
#org 0, LOADER_END {}

#use delay(clock=48000000)

#int_default
void isr() 
{ 
;
}

void main(void) 
{
...;
}




User Comments

No Posts found !

Login to Post a Comment.