Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
On parle des Pics, sans rapport avec le langage ou la programmation

Modérateur : Jérémy

recherche infos bootloader
harryweb
Membre
Membre
Messages : 4
Enregistré en : octobre 2018

#1 Message par harryweb » lun. 1 oct. 2018 11:21

Bonjour,

Je suis nouveau sur le forum, j'ai 53ans et je programme en PICBASIC pro depuis 18 années. J'utilise pour mes montages aujourd'hui quasiment que des 18F45K22.
Je n'ai jamais utilisé de bootloader et je ne trouve pas beaucoup d'infos à ce sujet et rien de récent en tous cas. C'est peut-être un peu le point faible par rapport aux compatibles Arduino.
J'aimerais, si possible que l'on m'explique où je peux trouver un bootloader pour mes 45K22, et comment configurer pour pouvoir uploader mes programmes par liaison série. Je crois savoir qu'il faut respecter certains paramètres (genre vitesse UART, horloge...) mais c'est le flou... puisque rien de concret.
J'ai demandé déjà de l'aide à droite et gauche mais sans succès. Je ne suis pas le seul je crois puisqu'un ami n'ayant su s'en sortir, a ajouté une eeprom sur le PCB qui télécharge dans le PIC. Faut avouer que là, c'est une usine à gaz.
Merci pour toute information.
PS: je ne suis pas un crack en programmation même si c'est un peu mon job et que j'ai 200/300 programmes à mon actif. Je possède la licence MIKRO C pro (dongle) mais je ne m'en sert quasi pas car j'ai du mal avec le C. Mais si cela peut m'aider... (aussi PICKIT 2 & PICKIT 3)

Amicalement
Hervé

recherche infos bootloader
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1057
Âge : 68
Enregistré en : juillet 2015
Localisation : 01120
Contact :

#2 Message par paulfjujo » lun. 1 oct. 2018 15:04

bonjour,


il existe des bootloader MikroC pour 18F2550 , 18F87J50 ..e tc ..
à voir sur la libstock de mikroC pour ton PIC
Par experience, sur le gros 18F87J50 ou le 18F47J53
le bootloader en USB est un regal .. tres rapide, et vu la taille ROM des PIC
le bootloader pese tres peu.
Le HID bootloader de mikroc est alors utilsé . plus besoin de pickitx

sur le PIC18F2550 , ça va aussi.
j'ai aussi utilisé des bootloader 16F877, 18F252, 18F4685,18F2620 ...
mais en liaison UART .. pas tres rapide , 38.4Kbds mais OK.

oops Damned !
je ne me rappellais plus que j'avais une carte de developpement "Ready for PIC18F45K22" avec un bootloder !
MAIS cette liaison USB est une liaison via un FTDI embarqué , donc en fait un bootloader serie (UA RT)
qui n'est donc pas aussi rapide qu'une VRAIE liaison HDI USB. mais quand meme à 115Kbds

pic18f45k22_bootloader_firmware.zip



Code : Tout sélectionner

/*
 * Project name:
     Boot_Test (using mikroC Bootloader on PIC18's)
 * Copyright:
     (c) Mikroelektronika, 2008.
 * Revision History:
     20111017:
       - initial release
 * Description:
     This is a serial port Bootloader implementation. All required bootloader
     routines are placed in the boot18_32K file, the only thing that is
     user-configurable is the baudrate of the UART communication, which is set
     in the main() through appropriate call to Uart_Init(brg_reg).
     Once started in PIC, the bootloader waits for a while (approx. 5 seconds)
     to establish UART communication with the MikroBootloader application on the
     PC. If it fails to do so, the bootloader starts the programme already
     loaded in the MCU (initially it is just a NOP). If the communication is
     established, the bootloader receives the hex file from the PC and places it
     where requred (the MikroBootloader application reads out the hex file and
     takes care of the location where hex is to be placed). When hex download
     has finished, the user is notified by the MikroBootloader to reset the MCU,
     and MCU enters the described bootload sequence again.
 * Test configuration:
     MCU:             PIC18F45K22
                      http://ww1.microchip.com/downloads/en/DeviceDoc/41412D.pdf
     Dev.Board:       EasyPIC7
                      http://www.mikroe.com/easypic/
     Oscillator:      HS-PLL, 32.00000 MHz
     Ext. Modules:    None.
     SW:              mikroC PRO for PIC
                      http://www.mikroe.com/mikroc/pic/
 * NOTES:
     - It's recommended not to alter the start address of the main().
       Otherwise, less space in ROM will be available for the application being bootloaded.
     - RX and TX UART switches SW1.1, SW2.1 on EasyPIC7 should be turned On (board specific).
 */

#pragma orgall 0x7CC0


#define BOOTLOADER_START_ADDR 0x7CC0
#define START_PROGRAM_ADDR 0x7FC0


static char block[64];

void Start_Program() org START_PROGRAM_ADDR{

}

unsigned short UART_Write_Loop(char sendchar receive){
  
unsigned int rslt 0;

  while(
1){
    
Delay_5ms();
    
UART1_Write(send);
    
Delay_5ms();

    
rslt++;
    if (
rslt >= 0x0200){
      return 
0;
    }
    if (
UART1_Read() >= receive){
      return 
1;
      }
  }
}

void Write_Begin(){
  
FLASH_Erase_Write_64(START_PROGRAM_ADDRblock);
  
//--- goto main
  
block[0] = 0x60;  //0xF03EEF60
  
block[1] = 0xEF;
  
block[2] = 0x3E;
  
block[3] = 0xF0;
}

void Start_Bootload(){
  
char i 0xxyy;
  
long j 0;
  while (
1) {
    if (
== 64) {
      
//--- If 32 words (64 bytes) recieved then write to flash
      
if (!j)
        
Write_Begin();
      if (
j<BOOTLOADER_START_ADDR){
        
FLASH_Erase_Write_64(jblock);
      }

      
0;
      
+= 0x40;
    }
    
//--- Ask for yy
    
UART1_Write('y');
    while (!
UART1_Data_Ready()) ;
    
//--- Read yy
    
yy UART1_Read();
    
//--- Ask for xx
    
UART1_Write('x');
    while (!
UART1_Data_Ready()) ;
    
//--- Read xx
    
xx UART1_Read();
    
//--- Save xxyy in block[i]
    
block[i++] = yy;
    
block[i++] = xx;
  }
}

void main() org BOOTLOADER_START_ADDR{
  
ANSELC 0;                         // Configure PORTC pins as digital
  
UART1_Init(115200);                 // Init USART at 115200
  
if (UART_Write_Loop('g','r')) {     // Send 'g' for ~5 sec, if 'r'
    
Start_Bootload();                 //   received start bootload
  
}
  else {
    
Start_Program();                  //   else start program
  
}
}
 
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

recherche infos bootloader
harryweb
Membre
Membre
Messages : 4
Enregistré en : octobre 2018

#3 Message par harryweb » mar. 2 oct. 2018 14:07

Bonjour,

Merci pour le renseignement, je me suis commandé la carte MIKROE chez Mouser... Ca tombe bien, c'est juste avec le µC que j'utilise le plus. Elle pourra m'être utile... Parce que... pas de chance je regardais mon dongle MIKROC mais c'est pour PIC24 et DSPIC... Je m'en souvenais même plus. Je vais pouvoir tester tout ça et vous dirais ce que cela a donné. Surtout que je compte m'en servir derrière un convertisseur serial on LAN (TIBBO). Ca me permettra de mettre à jour mon firmware à grande distance.

Amicalement

recherche infos bootloader
harryweb
Membre
Membre
Messages : 4
Enregistré en : octobre 2018

#4 Message par harryweb » lun. 8 oct. 2018 17:41

Bonjour,
Bon ben quand ça veut pas, ça veut pas.... Le systeme bootloader de MIKROE semble coller avec sa plaque de test ou la mienne en liaison série classique, mais dès que j'ai mis entre les 2 (PC RS232 et carte a 18f45k22) un port série virtuel redirigeant vers une liaison UDP et un module TIBBO (serial over internet) rien ne va plus... Je vois bien mon pic essayer de causer avec mon pc sur mon réseau, en le forçant et avec un moniteur RS232, mais le soft bootloader de mikroe devient inutilisable car il n'initialise pas la connexion UDP en envoyant ne serait-ce qu'un caractère... Aussi il me faudrait éplucher le code du software PC (car je crois pas que ME adonné les sources de son logiciel bootloader) et en retro engeenering faire un bootloader en python par exemple... bon... Ben je sais pas si je vais le faire car gros boulot et pendant ce temps je ne bosse pas pour le boss... Heureusement, il ne comprends rien à ce que je fais :sifflotte:

recherche infos bootloader
F6FCO
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 506
Âge : 64
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#5 Message par F6FCO » ven. 12 oct. 2018 13:46

Ouais, c'est souvent comme çà un boss 8-)
Une porte nand prend 2 bits en entrée... cochonne va !!!

recherche infos bootloader
harryweb
Membre
Membre
Messages : 4
Enregistré en : octobre 2018

#6 Message par harryweb » sam. 13 oct. 2018 09:14

Salut FCO,

Quoi que parfois je me demande s'il ne comprends vraiment pas mais qu'il ne dit rien (pas si idiot le bougre !) :?
Marrant ton parcours (ton site) pas mal de points commun (Technicien RF, OM,CNC home made qui ne sert même plus depuis qu'elle est finie, bidouille...)

Bon j'ai tenté de commencer mon programmateur de PIC série en Python. Je sais pas si je vais aller au bout car il se laisse pas faire (ce qui veut dire que j'ai trop de lacunes en python...) mais j'insiste encore un peu. C'est facile de connecter en ICSP en fait.... :-D
Amicalement
F1SLU

recherche infos bootloader
F6FCO
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 506
Âge : 64
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#7 Message par F6FCO » sam. 13 oct. 2018 09:41

Hello SLU :wink: ,
Ben oui les mêmes directions mais moi c'est la station home made qui ne sert plus depuis qu'elle est finie :sifflotte: . Mais quand mon chantier de réno sera fini et que j'aurai remonté mon (mes) ateliers je compte me remonter une nouvelle station CW pour les bandes basses mais en y intégrant des PIC, genre boite d'antenne automatique par exemple.
Bon, ben çà fait deux OM's sur Fantaspic, comme quoi la radio mène à tout :wink:
Une porte nand prend 2 bits en entrée... cochonne va !!!


Retourner vers « Généralités sur les PICs »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité