Dépot du firmware et création d’un bootloader

Bonjour à tous,

le firmware étant plus ou moins fonctionnel, j’ai fais un git pour le partager facilement :

Ici

La principale difficulté a été le bootloader. Ce bootloader doit pouvoir mettre à jour le PIC depuis le Rpi. Il faut donc pouvoir d’une : pouvoir redémarrer le PIC, et de deux, le redémarrer dans un mode spécifique. Pour cela j’avais déjà prévu un transistor sur le GPIO du Rpi, qui vient tirer la pin de reset du PIC. Pour le mode spécifique, je vais utiliser les pins I2C pour dire « si l’une est à 1 et l’autre à 0, va dans le mode bootloader ». Une fois dans ce mode, j’envoie les données de domodin.hex par le biais de la liaison UART.

Ce projet est physiquement programmé dans le PIC, tout le reste (domodin) est ensuite programmé par le biais du Rpi. Cela permettra de mettre à jour le firmware par réseau, voir automatiquement à partir du Git.

Le projet est organisé de la façon suivante :

  • dans le dossier firmware se trouve tout le code du PIC :
    • domodin.mcp/mcs/mcw : fichiers de projet MPLAB IDE 8.92
    • hardware.h : define des IO
    • dans le dossier bootloader, se trouve le projet du bootloader.
  • dans le dossier hardware:
    • DomoDinV1.0.sch et brd : schémas et board de Domodin
  • software:
    • bootloader.c : programme à exécuter sur le Rpi pour charger le nouveau firmware dans le PIC.

Voila ! Maintenant que le bootloader marche bien, je vais pouvoir intégré Domodin dans mon tableau électrique, car plus besoin de tout rouvrir pour le mettre à jour !

Publicités

Un commentaire sur “Dépot du firmware et création d’un bootloader

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s