12 Nov 2007 Rev 0.1
16/02/2012 rev 0.2
23/06/2014 rev 0.3
08/09/2016 rev 0.4


Bootloader 16F874
Bootloader 18F26K20
New !
Bootloader 18F4685 10Mhz 19200 bds
Bootloader 18F4685 40Mhz 57600bds

Initialisation et chargement du Bootloader pour differents types de PIC
avec Version MPLAB 7.22

Démarche à suivre:

Choisir le bootoloader
Sources ASM
16F876 à 8Mhz 9600 bauds: bootldr_16F876_8_9600_ok_061224.asm
16F877 à 10Mhz 19200 bauds: bootldr_16F877_10_19200_ok_071104.asm
18F252 à 10MHz 19200 bauds : Bootldr_18F252_10Mhz_19200_ok_071106.asm
18F258 à 20MHz 19200 bauds: bootldr_18F258_20Mhz_19200_ok_071108.asm

* Attention, sous mplab, la longueur totale du path fichier doit etre < 62 caracteres!

Il faut avant tout
Assembler , avec MPLAB 7.22 , le source avec les BONS PARAMETRES :
tels que Type de controleur, Freq du Quartz,Vitesse de transmission série
et récupérer le fichier HEX correpondant à charger dans le pic
bootldr_876_8_9600.HEX
bootldr_877_10_19200.HEX
Bootldr_18F252_10_19200.HEX
Bootldr_18F258_20_19200.HEX

Usage d'un "vieux" programmateur POK508 sur RS232, prévu pour 16F84,16F628 en DIP18
mais avec alim 12V séparée!
en recupérant la liaison de programmation en 4 fils, on peut donc programmer des 16F87x ou 18Fxxx

Usage d'un "vieux" programmateur POK508
sur RS232,prévu pour 16F84,16F628 en DIP18
mais avec alim 12V séparée!
liaison de programmation en 4 fils :
Pin 4 orange VPP sur Pin 1 du PIC
Pin 5 Blanc 0V sur 0V alim du PIC
Pin 13 Vert Data sur RB7 du PIC
Pin 12 Blc/Vert Clock sur RB6 du PIC
images/POK508_install_boot.jpg

Le PIC "cible" sera installé sur une carte Prototype pour recevoir, une alim 5V, le quartz approprié,
encadré de 2 capa de 22pF et nos 4 fils de programation tel que le montre l'image ci-dessous


images/18F258_Bootloader_Install.jpg

PIC Pinouts

16F876 16F874-877
18F252 18F258


a
vec icprog105d.exe , choisir le programme chargeur *.HEX désiré et lancer l'ecriture...dans le PIC
avec vérification.. => message OK en fin de programmation !
C'est fini avec le POK508 , on peut déconnecter les 4 fils.



Remettre la connection Vcc sur la pin1 MCLR via R=2,7k à 4,7K


Tester le bootloader
Avec le montage ci-dessous

 


But du Test :
Mesure la tension du potar de consigne sur Ra0 (Ana0) sur 1024 pts
affichage de la valeur via terminal RS232 à 56000 bauds!
La tension mesurée sert de valeur de tempo pour allumer la led sur RB0
Le Programme de Test: Tst_18F258.c écrit avec MikroC est compilé puis utilise
le chargeur Tinybld195 ou PIC_downloader109. (au choix)
Declarer préalablement ces outils dans Mikroc -> Tools

La platine de test est HORS TENSION
Ouvrir le fichier *.Hex crée par le compilateur s
et cliquer sur WRITE.. et mettre SOUS TENSION
en moins de 3 secondes
!.
.. le PIC est reconnu, puis le chargement complet dans
le PIC se fait en moins de 2secondes.
message All.OK
.. et le test se lance ensuite automatiquement..


Résult :

la led sur RB4 doit clignoter à une frequence

dépendant de la position du potentiometre sur entrée analogique RA0.
La meme liaison RS232 sert aussi bien au chargement d'un programme qu'à l'application
à des vitesses de transmision pouvant être differentes !


nota: les 4 bootloader cités ci-dessus ont été testés OK

Problemes rencontrés:
Parametrage incomplet dans le source bootloader...
Oubli de remettre la liaison MCLR pin 1..



Tiny Bootloader pour PIC18F26K20:

avec Version MPLAB 8.63

Choisir le bon bootloader
va le fichier icdtype.inc
choisir

#include "p18f2620.inc"
IFDEF __18F2620
IdTypePIC = 0x4F
#define max_flash 0x10000
ENDIF


tinybld_18F2620_10Mhz_38400bds_ok.asm

mise ne place Tiny bootloader 38400 bauds Q=10MHz avec pickit2
Parametrage:
Device PIC18F26K20 User Ids FFFFFFFFFFFFFFFF
Configuration 0200 0018 8C00 0080 C00F E00F 000F
Checksum 8B6D


Version 10Mhz : tinybld_18F2620_10Mhz_38400bds_ok.asm
tinybld_18F2620_20Mhz_38400bds.HEX


test bootloader
OK avec Tiny bootloader 38400 bauds COM2
et chargement d'un programme de test en MikroC:
source :
18F26K20_MC.c
chargeur:
18F26K20_MC.hex
Attention alim 3,3V nominal pour le PIC , mais 3,4Vminimum pour le DS275 convertisseur TTL / RS232 !
=> donc alim de l'ensemeble à 3,6V
ou alors ,2 R de 390 ohms pour proteger les entrees 3,3V du PIC et les sorties TTL du DS275 si celui ci est alimenté en 5VDC.
Version 20MHz :

Sources ASM
tinybld_18F2620_20Mhz_38400bds.asm
tinybld_18F2620_10Mhz_38400bds_ok.asm
tinybld_18F2620_20Mhz_38400bds.HEX



Bootloader 16F874 4ko

usage de _MPLAB IDE v8.92
ce bootloader utilise moins de 256 octets.. 214 exactement, la zone Flash 0x004 jusqu'à 0xFF0 reste entierement dispo
Testé OK sous MikroC
Le PIC est monte sur une breadboard ,
Alimentée en 5V.
et il suffit de connecter
les 4 fils du Pickit2 pour le programmer en mode ICSP
L'alim + 5V Vdd est raccordée aux pins 11 et 32 du PIC
le 0V alim aux pins 12 et 31 du PIC
la pin 40 RB7 ---- pin 4 ICSPDAT pickit2
la pin 39 RB6 ---- pin 5 ICSPCLK pickit2
la pin 1 MCLR--- pin 1 ICSP VPP pickit2
le 0V ...................pin 3 ICSP VSS pickit2
nota:
Pinout idem que 16F877, la grosse difference est ROM 4Ko au lieu de 8Ko
Pendant le chargement du bootloader, j'ai observé une tension moyenne DC de 11,65V avec un multimetre sur pin 1 VPP

Fichier source :
bootldr_16F874_10_19200_140617_ok.asm
Chargeur :
bootldr_16F874_10_19200_140617_ok.HEX
Liste des fichiers :
Bootloader_files_16F874.htm
projet zippé:
Bootloader_16F874.zip


Bootloader 18F4685 96ko

19/03/2016
usage de _MPLAB IDE v8.92
ce bootloader utilise moins de 200 octets.. zone Flash 017F38 .. 017FF8

Le PIC est monte sur une breadboard ,
qui sera alimentée par le Pickit !
et il suffit de connecter les 5 fils du Pickit2 pour le programmer en mode ICSP
L'alim + 5V de la breadboard provient de Pin 2 Vdd Pickit2
la pin 40 RB7 ---- pin 4 ICSPDAT pickit2
la pin 39 RB6 ---- pin 5 ICSPCLK pickit2
la pin 1 MCLR--- pin 1 ICSP VPP pickit2
le 0V ...................pin 3 ICSP VSS pickit2

L'alim + 5V Vdd est raccordée aux pins 11 et 32 du PIC
le 0V alim aux pins 12 et 31 du PIC
../Platine_NOKIA/images/t_Montage_Programmation_Bootloader.gif
nota:
Pinout idem que 16F877, la grosse difference est ROM 96Ko au lieu de 8Ko
Testé OK sous MikroC , voir details
ICI
projet MPLAB zippé :
Bootloader_18F4685_10Mhz_19200.zip

Vitesse de transfert effective à 19200 bauds .. 17,06 sec pour 17389 bytes

Bootloader version 57600 bds at 40Mhz

Modif du source ASM bootloader
Rajout de la mise à 1 du registre BRG16 (High speed!)
Passage des parametres de config SPRGB en manuel
suivant les donnees de la datasheet du PIC18F4685 parag 18.3




Software :
Projet MPAB : Boot_18F4685_57600 (ASM + Hex)

Modif de mon appli MikroC pour 57600 bauds et config Q=10Mhz x PLL => 40Mhz
Test dialogue Bootloader
Dialogue_Bootloader_18F4685__40MHz_57600bds.txt
Test Appli MikroC ..OK

20/03/2016
//
problemo avc TinyBootloader 1.98: L'eeprom est limite en taille 256 maxi
// donc ne charge pas au dela pour EEPROM de 1024
à voir si une version plus rescente de Tiny Bootloader corrige ce probleme ?

questions ?
mailto:paulfjujo@free.fr

retour à l'index général