OpenDCC - plus de détails sur le logiciel, mise à jour

Comment mettre à jour le logiciel

    OpenDCC peut être chargé avec différents logiciels. Ce qui suit décrit les différentes méthodes pour charger un logiciel sur le microcontroleur. Aucune crainte, il est plus facile qu'il ne paraît à première vue.
    Reprogrammation :
    Bien sûr, on peut utiliser (dans n'importe quelle situation) la procédure de chargement direct utilisée pendant la construction du OpenDCC : construction (e.g. Ponyprog)
    Bootloader (Chargement au démarrage):
    Toutefois, il est beaucoup plus facile et plus pratique d'utiliser un chargement au démarrage. Le boitier n'a pas à être ouvert dans ce cas. Les étapes suivantes doivent être effectuées::
    1. Avant d'allumer OpenDCC, appuyez sur la touche STOP et la maintenir appuyé. Au lieu du mode normal de fonctionnement, le chargement du programme d'amorçage est lancé (reconnaissable par la LED CTRL allumé en permanence), programme qui attend maintenant un nouveau logiciel du PC. Le logiciel sera chargé dans la mémoire interne non volatile de OpenDCC.
    2. pour OpenDCC (Atmega32): copier update_opendcc.bat, update_opendcc_eeprom.bat, opendcc.hex, opendcc.eep, Atmega32.xml et avrosp.exe (voir ci-dessous) dans un répertoire de votre choix. Puis ouvrez l'entrée de commande et exécutez update_opendcc COMx ( x étant le numéro de port correct). Important : COMx doivent être saisis en majuscules ! Ensuite la mise à jour a lieu.
    3. . pour OpenDCC_XP (Atmega644P): copier update_opendcc.bat, update_opendcc_eeprom.bat, opendcc_xp.hex, opendcc_xp.eep, Atmega644p.xml et avrosp.exe (voir ci-dessous) dans un répertoire de votre choix. Puis ouvrez l'entrée de commande et exécutez update_opendcc COMx (x étant le numéro de port correct). Important : COMx doivent être saisis en majuscules ! Maintenant la mise à jour a lieu.
    4. si l'EEPROM doit être écrit : lancer « update_opendcc_eeprom COMx »
    5. . Redémarrez OpenDCC – c’est fini !
    6. si OpenDCC est connecté par USB, il suffit d'utiliser le numéro de port du port com virtuel.
      (Remarque : le pilote USB de OpenDCC installe un port série, il attribuera un numéro de port du système d'exploitation (p. ex. COM8). Ce numéro peut changer si un autre port USB est utilisé.
      Vous pouvez récupérer le port réel par le gestionnaire de périphériques de Windows.
    Comment ça marche :
    Le chargeur de démarrage est un programme distinct, qui est entièrement chargé à la fin de la mémoire interne. Par des programmes appropriés des bits de configuration (ce que l'on appelle fusibles) l'AVR est chargé de lancer l'exécution du programme après réinitialisation avec le chargeur de démarrage. Le programme d'amorçage vérifie la touche stop et si la touche n'est pas pressée, il exécutera le vecteur normal de remise à zéro à 0 x 0000 ; Vous trouverez plus d'informations dans l'Application Notes AVR109 et AVR911 de la société Atmel. Il y a également les fichiers source sur www.atmel.com.

    Afin de créer un le bootloader pour OpenDCC, les fichiers source chargés doivent être adaptés. Vous devez ouvrir preprocessor.xls et suivre les directives. Après que la configuration, le chargeur de démarrage peut être construite avec « make ».
    Hints:
      N'ouvrez pas le fichier makefile avec un éditeur qui remplace les tabulations par des espaces.
      L'éditeur de liens calcule en unités d'octets, donc le nombre DOUBLE comparé aux fusibles doit être utilisé.


    Les fusibles suivants sont requis pour exécuter le programme d'amorçage : The following fuses are required to execute the boot loader:
  • BOOTRST = 0 (0 = programmés): cette étape rediriger le RESET de 0 x 0000 vers le chargeur de démarrage ;
  • BOOTSZ1 = 0 und BOOTSZ0 = 1: Ceci indique la taille du chargeur de démarrage. Ce paramètre indique une taille de 1 k mots, c'est-à-dire la plage de 0 x 0000 à 0x3BFF (93,5 %) est utilisé pour l'application, la plage 4000 à 0x3FFF est utilisée par le chargeur de démarrage. (les deux bits = 0 indique 2k de mots , c'est-à-dire la plage 0 x 0000 à 0x37FF pour l’application et la plage 0x3800 à 0x3FFF est pour le chargeur.)

  • BASEADDR = 0x7800 : cette instruction dans le makefile des chargeurs de démarrage assure que le programme d'amorçage se trouve à la bonne zone. (Remarque : l'éditeur de liens calcule en octets, donc : 0x7800 = 2 * 4000) (pour Atmega644P : 0xF800)
    L'interaction avec le chargeur de démarrage :
    Un programme doit être lancé sur le côté du PC, qui interagit avec le bootloader. Il existe plusieurs possibilités :
  • avrosp:
    J'utilise cet outil. Il est inclut dans l'AppNote AVR911. La commande se présente comme suit (dans le cas du port COM3):
    avrosp -dATmega32 -e - pf –vf -ifopendcc.hex -cCOM3
    Le débit en baud du port doit être ajusté correctement :
    mode com3 baud=19200 parité=n data=8
  • avrdude:
    Cet outil est livré avec WinAVR, la commande se présente comme suit : avrdude - c avr910 -p m32 -P com3 - U flash:w:opendcc.hex -ter 19200
  • Menu rubrique « Outils » dans AVR Studio.

Documents

    Fichier hex du programme d' amorçage : bootloader.hex pour la première installation ce fichier doit être chargé avec le programmateur ISP. Le code déjà adapté pour cette source : bootloader.zip

    Outil de la société Atmel pour mise à jour de Flash et EEPROM : AVROSP.EXE

    Batch pour la mise à jour plus facile : update_opendcc.bat (si *.bat n'est pas distribué par ISP: zip-file)
    Remarque : Simplement copier opendcc.hex, opendcc.eep, avrosp.exe et ce .bat dans un répertoire et lancer le .bat. Le bat initialise également en place le port com.
    Afin de commencer un traitement par lots (batch), on doit ouvrir lune fenêtre de ligne de commande. Malheureusement, la valeur par défaut après l'ouverture de la ligne de commande est le répertoire « maison ». Il est plus facile d'ouvrir la ligne de commande avec le bouton droit de la souris à partir de l'explorateur. Voir ici Comment cela s'effectue.