12 Nov 2007 Rev 0.1
21/10/2020 rev 0.5
Bootloader 16F874
Bootloader 18F26K20
New !
Bootloader 18F4685 10Mhz 19200 bds
Bootloader 18F4685 40Mhz 57600bds
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
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
PIC Pinouts
avec 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
via le fichier icdtype.inc
choisir
#include "p18f2620.inc"
IFDEF __18F2620
IdTypePIC = 0x4F
#define max_flash 0x10000
ENDIF
tinybld_18F2620_10Mhz_38400bds_ok.asm
mise en 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
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
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)
source : tinybld_18F4685_Q10Mhz_w_PLL_57600bds.asm
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
Rappel sur usage du Tiniy
Bottloader :
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