/home/totofweb/homepage
Christophe Le Lann's Homepage v0.8
 

Carte PIC 16F877/18F452 avec liaison RS232 et bootloader

Date d'initialisation : Août 2004
Etat actuel : Terminé

Sommaire

Photo du projet

Description générale

Caractéristiques techniques :

Son grand atout est son connecteur série (RS232) couplé à un MAX232 permettant d'une part une reprogrammation plus simple et plus rapide du pic (grâce à un bootloader) et d'autre part de débuguer le pic en affichant dans un terminal (l'hyperterminal windows ou un équivalent linux) diverses informations sur l'état du pic et des valeurs de variables

Le schéma et le routage est fait sous Eagle (soft windows/linux gratuit en version de démo limitée à des cartes de 100x80mm). Les pistes sont très grosses mais vous pouvez les réduire selon vos capacités de réalisation de circuit imprimé et le courant maximal prévu.

Haut de page

Photos


Cliquez pour voir la photo en grand
global.jpg
Vue globale de la carte. Il manque le condensateur du circuit de RESET (mais ce n'est pas gênant, les perturbations ne sont pas suffisantes pourdéclencher un RESET involontaire).
Cliquez pour voir la photo en grand
modelisation.png
Modélisation par Eagle3D du circuit imprimé.

Haut de page

Schéma et Circuit Imprimé


Cliquez pour voir la photo en grand
schema.brd
Circuit Imprimé sous Eagle.
Cliquez pour voir la photo en grand
schema.png
Schéma du circuit (version Eagle téléchargeable).
Cliquez pour voir la photo en grand
schema.sch
Schéma sous Eagle.
Cliquez pour voir la photo en grand
typon.png
Circuit imprimé du circuit (version Eagle téléchargeable).

Haut de page

Commentaires des visiteurs

Laisser un commentaire

Par rahiche2002@yahoo.fr le 15/11/2005

si vous peuvez m'envoyer un peut de détail et des documents en ce qui concerne le BootLoader.merci

Haut de page

Par Totofweb le 15/11/2005

Salut rahiche
Un bootloader, dans le cas des pics (ou autre microcontrôleur), est une portion de code (environ 100 mots programme dans mon cas) qui se place à la fin de la zone mémoire programme du pic. Lorsque le pic accepte cette manoeuvre (ce n'est pas le cas du 1684 ou 16F628 par exemple, mais de nombreux pics l'acceptent), le bootloader se lance tout au début de l'allumage du pic (ou après reset). Là, il scrute le port série : si rien ne vient, il éxécute le programme normal contenu au début de la zone mémoire programme du pic. Si des données arrives selon un protocole spécifique par port série (ce qui est géré par un logiciel spécial du côté de l'ordinateur), le bootloader auto-reprogramme le pic avec les données arrivant par l'intermédiaire du port série.
Le bootloader permet donc une reprogrammation très aisée (pas besoin de retirer le pic) et très rapide (beaucoup plus que l'ICSP, quelques secondes suffisent à 115200bauds), sans nécessiter d'autres spécifications matérielles qu'une connexion au port série d'un pc par l'intermédiaire d'un MAX232 (qui peut ensuite servir au pic à envoyer des données vers le pc, ce qui est très utile pour débuguer le pic).

Haut de page

Par ALFY le 11/04/2006

Salut,

Je souhaiterais avoir un peu plus d'élément sur ce montage.
Avec quel logiciel fonctionne-t-il?
Une fois le bootloader chargé sur le PIC, une liaison RS232 suffit à programmer le PIC?
Y a t il un moyen de tester des tension?
Surtout, ce montage fonctionne t il sur les PC portables? (ne délivrant pas de 12V mais plutot du 7-8V?

Merci

Haut de page

Par ALFY le 11/04/2006

J'oubliais...Fonctionne t il aussi pour les 16F877A?

Haut de page

Par ALFY le 11/04/2006

J'oubliais...Fonctionne t il aussi pour les 16F877A?

Haut de page

Par Totofweb le 12/04/2006

Bonjour ALFY
- Ce montage fonctionne parfaitement avec le 16F877, le 16F877A, le 18F442, le 18F452 et j'en passe (tous les pics qui sont compatibles pin à pin avec le 16F877)...
- Une fois le bootloader chargé, la liaison RS232 suffit seule à reprogrammer le pic. C'est d'ailleurs tout l'intérêt (arrêter de l'enlever de son support, reprogrammation en fonctionnement hyper-rapide).
- Tu peux bien sûr tester les tensions comme bon te semble avec un multimètre, en plaçant le + du multimètre sur le connecteur de l'IO de ton choix, et le - sur la masse de l'alim.
- Oui, ce montage fonctionne sur les PC portable. En fait, tu auras besoin de programmer le pic une seule fois avec un programmateur classique (donc sur un peu de bureau ou un programmateur avec alim externe). Ensuite, ton portable pourra reprogrammer seul sans programmateur le pic, et sans autre alim.

Haut de page

Par Samus le 16/04/2006

Bonjour Totofweb,
Je suis en projet dans mon IUT et j'ai réaliser une carte très proche de la tienne. Le PIC est un 18f4550 avec un quartz à 10MHz. La carte est fait mais je ne n'arrive pas à faire fonctionner un bootloader dessus. Pourrai tu me donner le .hex ou .asm ou autre du bootloader pour que je puisse faire des test et valider ma carte ?
Merci

Haut de page

Par Totofweb le 17/04/2006

Bonjour Samus
    La carte fonctionne-t-elle quand le pic est programmé avec les méthodes classiques ? As-tu déjà essayé d'utiliser la liaison série avec le pic par le biais d'une programmation classique ? Avant de se pencher sur un problème côté soft, il faut savoir si tout va bien côté hardware...
    Ensuite, il est très important de savoir si tu utilises ou non la PLL du pic, car la détermination de la vitesse de communication sur le port série en dépend, et il peut alors arriver  que le pic et le pc ne communiquent pas à la même vitesse.
    Ensuite, il faut savoir quels tests tu as déjà effectué et qu'est-ce qui n'a pas fonctionné précisément, si besoin mesurer des tensions, ...
    Question bootloader, je te conseille fortement le TinyPICBootloader => http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm
    Tu verras qu'il est certifié fonctionner avec le 18F4550. Il te suffit de le télécharger et le fichier asm sera livré. Il te suffira alors d'y spécifier le type de pic, la fréquence, l'activation ou non de la PLL, les bits de configuration, la vitesse de communication et tu n'auras plus qu'à l'assembler avec MPLAB et à le transférer dans le pic par le biais des moyens conventionnels.

En espérant que ma réponse pourra t'aider, je suis également disponible par mail ou msn si tu as besoin d'une aide rapide.
Totofweb

Haut de page

Par CHAKOUR le 09/06/2007

PLUS INFOMATION SUR UTILISATION DU BOOTLOADER

Haut de page

Par Totofweb le 10/06/2007

Chakour> 1) Crier en utilisant abusivement les majuscules est très impoli n'incite pas vraiment à répondre...
2) Tout ce qui concerne les bootloaders a déjà été dit dans ma réponse au commentaire de rahiche. Ensuite, les détails sont spécifiques à chaque bootloader, et non au matériel. Donc choisis-toi un bootloader (par exemple celui que j'ai conseillé à Seamus) et ensuite tu trouveras sur son site tous ses détails de fonctionnement interne et de mise en place.

Haut de page

Par Claude le 13/07/2007

salut les gars je suis en train de travailler sur le PIC16F877 et j en suis au niveau de la liaison serie RS232 mon MAX232 est cablé je souhaite savoir comment charge le bootloader sur mon PIC
Je vous remercie d avance et attend impatiemment vos reponses

Haut de page

Par Totofweb le 13/07/2007

Claude> N'importe quel bootloader se charge de manière \"classique\", c'est-à-dire en le flashant dans le pic par une programmation normale, à l'aide par exemple d'un programmateur de type JDM. C'est une fois que le bootloader sera chargé que tu pourras dire adieux à ton programmateur et reprogrammer le pic par sa liaison série.

Haut de page

Par abid le 23/07/2007

Bonjour tout le monde je me demande est ce que quelqu’un peu m’envoyer le schéma de programmateur jdm dédier au pic 16f877 sur mon e-mail (habid –ahmed @hotmail.com) est merci d’avance

Haut de page

Par amin81 le 21/09/2007

salut,


je suis en cour de faire mon projet de fin d\'étude, je doit faire le commande d\'un moteur pas à pas à l\'aide d\'un PIC16F877 mais j\'ai aucun idée sur le PIC SVP si quelqu\'un peut m\'aider voici mon email amin.zouch@gmail.com


merci d\'avance

Haut de page

Par Totofweb le 21/09/2007

Amin81> Comme il l'est dit dans la rubrique "conception électronique", je me refuse à faire les projets de fin d'étude des étudiants à leur place. Tout ce que je peux vous dire, c'est que ce genre de réalisation est extrêmement classique et loin d'être bien complexe : les moteurs pas à pas sont largement bien expliqués (utiliser google et wikipedia), leur méthodes de commande aussi (idem, cherchez du côté des ponts en H et de leurs drivers), ainsi que la programmation des microcontrôleurs PIC (c'est pas la documentation qui manque).
Si vous butez sur un point bien précis je pourrais éventuellement vous donner quelques indications supplémentaires, mais en attendant vous trouverez tout ce que vous voulez savoir dans les livres et sur internet sans avoir besoin de chercher très longtemps, donc prenez la peine de faire cette démarche, car cette recherche fait partie intégrante de votre projet d'étude et fait aussi partie de votre préparation au métier d'ingénieur !

Haut de page

Par Claude le 26/09/2007

salut tout le monde je te remercie Totofweb pour le tuyau j ai pu avoir toutes les infos sur le pragrammateur JDM via le site http://feng3.cool.ne.jp/en/pg5v2.html
que m a refilé un de mes contacts lol
j en suis a la partie validation du programmateur et de la carte a pic
je vous remercie de me guider
Bien a vous

Haut de page

Par bwman le 10/11/2007

Très bon site avec des explications bien fournies, mais il ya un truc que je n\'ai pas dû bien saisir, il faut un programmateur (pour le bootloader) + un circuit d'experimentation pour brancher les cartes de contrôles? De plus je me demandai si quand on achete le microcontroleur un bootloader etait deja en place. Merci de vos reponses

Haut de page

Par bwman le 10/11/2007

Très bon site avec des explications bien fournies, mais il ya un truc que je n\'ai pas dû bien saisir, il faut un programmateur (pour le bootloader) + un circuit d'experimentation pour brancher les cartes de contrôles? De plus je me demandai si quand on achete le microcontroleur un bootloader etait deja en place. Merci de vos reponses

Haut de page

Par Totofweb le 10/11/2007

bwman> Non, le bootloader est un programme comme un autre, il n'y a aucune raison pour qu'il soit d'office fourni avec le microcontrôleur. Il te faut donc un programmateur pour l'envoyer une première fois dans le microcontrôleur, puis tu peux ranger le programmateur dans un placard : le microcontrôleur pourra maintenant se reprogrammer lui-même à partir d'un lien série.

Haut de page

Par bwman le 11/11/2007

Merci pour ta reponse. J'ai une autre question, est - il possible d'avoir un circuit tout en un (programmateur°+ carte d'experimentation) ? Après avoir regardé sur google, j'ai vu des montages qui étaient a chaque fois (ou souvent)séparés sauf celui la :http://mdubuc.freeshell.org/Jolt/BootloaderSchematics.jpg. De plus pourquoi la majorité de ces programmateur ne sont-ils pas utilisables avec un ordinateur portable? Probleme d'alimentation? Je croyais que la liaison série apportait du 12V. Voila c'est tout. Merci par avance.

Haut de page

Par bwman le 11/11/2007

Je viens de tomber sur le projet servobot, la carte est appelée "Carte PIC 16F877/18F452 avec liaison RS232 et bootloader" donc elle permet bien à la fois d'envoyer le bootloader et ensuite de programmer normalement son pic? Je pense faire ce montage car tu dis qu'il est compatible avec un PC portable. Bravo pour ce site qui est vraiment très complet et de loin par rapport aux autres sites...

Haut de page

Par Totofweb le 11/11/2007

bwman> C'est parce que la plupart des portables ne peuvent pas fournir l'alimentation requise que l'on a généralement des problèmes avec les programmateur de type JDM.
On n'intège jamais le programmateur dans le montage final car c'est une perte d'espace, d'IO, et qu'en plus il faudra venir brancher l'alimentation dessus de toute manière.
Le montage dont tu donnes le lien n'intègre pas du tout de programmateur, il se contente juste d'implémenter tout comme mon montage une liaison série, qui peut éventuellement servir à utiliser un bootloader. Il n'y a aucune dérogation possible : quoi que tu fasses, tu devras obligatoirement passer par une étape préliminaire de programmation par un programmateur classique.

Haut de page

Par Afriquesolitaire le 10/12/2007

Salut Totofweb,
Je voudrais seulement vous dir Bravo pour votre partage des connaissances et merci.
      

Haut de page

Par cheriki le 28/12/2007

bonjour totofweb
votre site esy extra maifique ,j'ais selment cette probleme de cette montage ,j'ai realise tous mais maleuresement j'ais peut le programmer 16f877a (apres le bootloader).ou envoyer mois une autre schemas de meme type de carte
merci encore (je suit entraine de realiser 4 de vos brojet)

Haut de page

Par Totofweb le 28/12/2007

cheriki> Votre message est tout simplement incompréhensible !

Haut de page

Par cheriki le 29/12/2007

desolé pour les erreur de phrape.
mon question est :
apres la programmation de mon pic 16f877a avec le bootlaeder (programmateur externe) . mais  j'ais pas peut programmer le pic 16F877A dans sa carde de commande avec le MAX232 .
mais j'avait remarquer que mon tention d'enter de mon ordinateur ne fourner pas 12v (9,5v). donc je vais essayet davoir une 12v par alimentation externe.

Haut de page

Par Totofweb le 29/12/2007

cheriki> Tes problèmes viennent de ton programmateur, et n'ont donc rien à voir avec ce projet. Il faut minimum 13V pour un programmateur JDM

Haut de page

Par cheriki le 30/12/2007

merci
ça marche maintenent tres tres bient.

merci.merci.....

Haut de page

Par stephane le 09/04/2008

je veut realise une carte de commande d\\\'un gradateur triphasee pour la variation de vitesse d\\\'un moteur assyncronne a base d\\\'un pic 16f877 ou 16f866 pour mon pfe mais je sais sur la realisation pratique ni sur le prog,est ce que je peut avoir de l\\\'aide.merci

Haut de page

Par MILA?O le 10/04/2008

Je programme mon pic 16F877 en C et j'ai quelques soucis je me demande si vous pouvez me fournir de quelques DOC sur la programmation des PICs en C

Haut de page

Par Totofweb le 10/04/2008

Milao> Google est ton ami. Cherche aussi du côté des forums d'électronique (Future-Science, Planète-Sciences, Jelectronique, ...) en venant avec des questions précises plutôt que des demandes générales sans avoir voulu chercher par soi-même. (Je ne peux pas être le prof particulier de tous ceux qui m'en font la demande ici et par mail)

Haut de page

Par rachrach le 16/04/2008

je veux le programme

Haut de page

Par Totofweb le 16/04/2008

Rachrach> Cette carte peut servir à réaliser toutes sortes d'applications, et n'est pas dédiée à une application en particulier. Je ne peux pas te fournir un programme pour cette carte car c'est à toi de le faire en fonction de ce que tu souhaites faire de cette carte.

Haut de page

Par Anounito le 16/04/2008

Salut Totofweb,
Moi en faite j'ai réalisé votre carte "Base PC USB-XBee" et elle fonctionne très bien, mnt je voulais la coupler à cette carte pic, pour une programmation à distance du pic en utilisant un bootloader, donc ce que je doit faire c'est remplacer le MAX232 par mon module XBee, le problème c'est que les deux circuit fonctionnent avec des tensions différentes, 5V au niveau du PIC et 3.3V au niveau du XBee.

Est ce que le faite de connecter les deux circuits (Tx - Rx) directement ne posera pas de problème? où alors je doit placer un driver d'interface 3.3v <--> 5v style le (SN74LVC1T45)?

Merci et salutation.

Haut de page

Par Anounito le 16/04/2008

Re-Salut,

Juste une petite précision,j'ai met en référence le circuit de conversion (SN74LVC1T45 --> donc je doit en utiliser 2, un pour chacune des ligne Rx; Tx) mais j'ai aussi trouvé le (SN74lS07) qui lui peut faire les deux ligne en passant par un seul boitier, donc l'idée c'est d'utiliser une porte OU avec sorties à collecteur ouvert et des résistances de pull up sur 3.3v et 5.0v pour faire une adaptation 3.3v->5.0v et 5.0v->3.3v de deux signaux Rx et Tx... (Schéma: http://www.acceliis.com/TemporaryFiles/Driver_33v_5v.JPG ).
Dite moi SVP si c'est comme ça que je doit relier les deux circuit.

MERCI

Haut de page

Par Totofweb le 16/04/2008

Anouito> Utiliser des portes AND à une entrée et à sortie à collecteur ouvert est en effet une solution pour faire une conversion 5V/3.3V. Mais en réalité, la datasheet du Xbee signale qu'il est compatible avec les signaux TTL 0-5V, ce qui signifie qu'il ne sera pas endommagé et considérera le 5V comme un état haut. Du côté du PIC, en principe c'est bon aussi : la datasheet indique que toute tension au dessus de 2V sera considérée comme un état haut. Les états bas sont aussi compatibles. Donc des deux côtés la compatibilité est assurée.

Haut de page

Par Anounito le 16/04/2008

OK Merci bien et bonne continuation !

Haut de page

Laisser un commentaire


Pseudo
Mail (facultatif)
Votre message
erreur de génération du cryptogramme visuel. Veuillez recopier le cryptogramme visuel :

Haut de page