Carte PIC 16F877/18F452 avec liaison RS232 et bootloader
Date d'initialisation : Août 2004
Etat actuel : Terminé
Sommaire
![]()
Description générale
Caractéristiques techniques :
- Utilisation d'un 16F877 ou mieux un 18F452, jusqu'à 40MHz
- 33 IO
- Bouton poussoir de reset
- Circuit d'alimentation en 5V (autour d'un 7805)
- Connecteurs d'alimentation 5V pour cartes externes
- Connecteur série lié à RC6 (TX) et RC7 (RX)
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.
Photos
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).
Schéma et Circuit Imprimé
Commentaires des visiteurs
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
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).
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
Par ALFY le 11/04/2006
J'oubliais...Fonctionne t il aussi pour les 16F877A?
Par ALFY le 11/04/2006
J'oubliais...Fonctionne t il aussi pour les 16F877A?
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.
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
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
Par CHAKOUR le 09/06/2007
PLUS INFOMATION SUR UTILISATION DU BOOTLOADER
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.
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
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.
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
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
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 !
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
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
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
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.
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.
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...
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.
Par Afriquesolitaire le 10/12/2007
Salut Totofweb,
Je voudrais seulement vous dir Bravo pour votre partage des connaissances et merci.
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)
Par Totofweb le 28/12/2007
cheriki> Votre message est tout simplement incompréhensible !
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.
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
Par cheriki le 30/12/2007
merci
ça marche maintenent tres tres bient.
merci.merci.....
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
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
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)
Par rachrach le 16/04/2008
je veux le programme
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.
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.
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
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.
Par Anounito le 16/04/2008
OK Merci bien et bonne continuation !




