Conseil pour la réalisation d'un programmateur pour pic.

Electronique numérique / Circuits logiques programmables EPLD, CPLD, FPGA d'Altera ou de Xilinx VHDL, Verilog ou SystemC

Modérateur : Modérateur

nifrou
PONCTUEL
PONCTUEL
Messages : 24
Inscription : 30 août 2006 21:28
Contact :

Message par nifrou »

salut.
Personnelement j'utilise la norme propic2 depuis longtemp sur PC portable ou tour.
je l'ai modifié pour ne plus avoir a faire de manip mecanique pour la programmation (interruptuer ou debrachement). et aussi dernièrement pour utiliser du 6V convertit en 10V avec un max232.
le tout tres simple et moins de 2 €uro sans le max232.


l'ICD2, semble etre une meilleur solution (plus rapide et possibilité de déboguage).
(peut etre un peut plus complexe a mettre en oeuvre.) et certainement plus onereuse.

Je n'ai pas d'autre lien a te donner tu a déja trouvé ceux que je connaissait.

bon courage pour la réalisatio.
JP
Administrateur
Administrateur
Messages : 2327
Inscription : 23 sept. 2003 19:14
Localisation : Strasbourg
Contact :

Message par JP »

Salut à tous,

L'auteur de ce ICD2 m'a dit qu'un pas était exécuté en 1 à 2s. Ca va ...
Donc je crois que je vais me lancer dans celui-la.
peut etre un peut plus complexe a mettre en oeuvre.) et certainement plus onereuse.
Oui, ca doit être dans les 15€.
bon courage pour la réalisatio.
Merci :wink:
Ca clignote !!!!
jeanyves

Message par jeanyves »

JP a écrit : J'en ai trouvé 3 pour l'instant :
http://sjeffroy.free.fr/Prog__PIC/ICD2/icd2.html
http://www.stolz.de.be/
http://membres.lycos.fr/silicium31/Elec ... ee_icd.htm
Je pensais me lancer dans celui de sjeffroy en utilisant un FT232 pour la liaison série/usb.

Si quelqu'un a un lien vers un ICD2 clone testé et approuvé, ca m'intéresse. :)
j'ai realisé le trosieme, et il a marché presque du premier coup... le circuit micropuscule cypress avait deux pattes soudées ensemble... apres un coup de tresse marche nikel. mais bon le circuit coute 18 euros ht chez radiospare et ils ont un mini de commande de 150 euros maintenant...
sinon il y a mieux maintenant : www.icd2clone.com

un clone d'icd2 à base d'un 16f877 et d'un 18f4550 qui ne coute presque rien puisque les deux circuits sont dispos en echantillon chez microchip, et puis on peut en avoir qquns dans les fonds de tiroirs.

bon bien sur il faut un programmateur pour mettre les firmwares dans les deux pics mais un jdm suffit pour cela.

l'avantage principal est la liaison full usb qui permet un deboggage tres rapide. si on utilise uniquement la programmation un icd2 clone en port serie ( ou usb via un convertisseur usb-serie ce qui revient au meme) suffit. si on veut debugger il faut une vraie liaison usb.
JP
Administrateur
Administrateur
Messages : 2327
Inscription : 23 sept. 2003 19:14
Localisation : Strasbourg
Contact :

Message par JP »

Ca y est, il est fait.
Je mettrai le schéma, le typon etc sur le site ce week-end.

En mode programmation, il tourne parfaitement pour l'instant. Plus besoin de passer par IC prog et l'in-situ c'est sympa ...
En mode debuggage pas à pas, il exécute un pas en 3s c'est un peu lent mais en utilisant les points d'arrêt (plus rapides) on arrive a bosser correctement.
Moi ca me suffit, surtout que je réserve le mode debuggage aux bugs que je n'arrive pas à corriger en simul.
mais bon le circuit coute 18 euros ht
C'est pour cette raison que je me suis limité à la version RS232. Le debuggage me servira que rarement donc ça ne me dérange pas spécialement s'il est un peu lent.

Merci pour vos réponses :wink:
a+
JP
Ca clignote !!!!
François

Message par François »

J'ai essayé de construire l'ICD d'elektor, mais j'ai un petit problème. Le multiplexeur qu'ils utilisent pour choisir la tension de programmation laisse tout passer quand je mets le pic sur l'ICD, je me retrouve avec des 1 sur les 3 pattes du multiplexeur => court circuit et ça chauffe...

Quelqu'un à eu un problème similaire?
PhiFo
NOUVEAU
NOUVEAU
Messages : 2
Inscription : 25 oct. 2006 1:03

Clone ICD2 Elektor

Message par PhiFo »

Bonjour François,
Oui, j'ai le même problème, avec 2 exemplaires.
Pour moi, cela vient du fait que le pic, lors de l'initialisation, positionne à 0 les ports de selection du multiplexeur. Cette initialisation erronée est réalisée entre la configuration du port C en sortie et l'initialisation de ce même port C (quelques µS tout au plus). Le multiplexeur court circuite alors la masse, le 5 volts et le 12 et c'est fini, ça se bloque et ça chauffe.
Je n'ai pas de solution pour le moment !
Mais je suis preneur (de solution ou d'infos)

J'utilise par ailleurs, un ICD2 d'origine Microchip avec le même bootloader et le même multiplexeur donc ça marche !
Mais comment ?
JP
Administrateur
Administrateur
Messages : 2327
Inscription : 23 sept. 2003 19:14
Localisation : Strasbourg
Contact :

Message par JP »

Bonjour,
J'utilise par ailleurs, un ICD2 d'origine Microchip avec le même bootloader et le même multiplexeur donc ça marche !
Je crois que le PIC sur le l'icd2 original est un 16f876 et celui utilisé dans l'article d'elektor est un 16f877 (si mes souvenirs sont bons). Vous utilisez le bootloader fournit avec MPLAB ?

Je n'ai pas le schéma d'Elektor mais vous pourriez peut être nous décrire le câblage entre le pic, le mux et les différentes tensions ?
Si je fais le lien entre ce que vous nous dites et cet ICD2 Clone, RC0 et RC2 doivent permetre de choisir la tension de programmation.
RC0 RC2
0 0 -> 0V
0 5V -> [tex]\alpha[/tex]5V -> ~12V
0 5V -> [tex]\alpha[/tex]-5V -> 0V
5V 5V -> 0V

Votre multiplexeur devrait être cablé pour réaliser la même chose.
De plus si en sélectionnant l'entrée 0 du multiplexeur vous avez un court-circuit, il faut aussi voir si c'est le cas sur le schéma.

a+
JP
Ca clignote !!!!
PhiFo
NOUVEAU
NOUVEAU
Messages : 2
Inscription : 25 oct. 2006 1:03

Message par PhiFo »

Bonjour tous,
bonjour JP, merci te t'occuper de notre cas.
L'ICD2 d'origine est bien avec un 16F877 (pas un 16F877A ni un 876)
Le bootloader utilisé est bien celui d'origine microchip.

Le multiplexeur est un DG411 (4 commutateurs MOS analogique, avec 4 commandes séparées, supportant une commande en 5 volts et une tension commutée de 12 volts.) Il est utilisé dans l' ICD clone d'elektor pour commuter les différentes tension nécessaires sur la patte MCLR du microcontroleur testé ou programmé. Ces tensions sont (son son j'aime bien le son) 0V pour la mise en reset, 5volts pour le cas normal et 12à 13 volts pour la tension de programmation.
Ce multiplexeur est relié aux ports RC0, RC1, RC2 qui commutent chacun une des tensions. Un 0 réalise la connexion, un 1 ouvre la connexion.
RC0 commute le 12 V
RC1 commute le 5 V
RC2 commute le 0 V
Et pour finir le schéma sans dessin, il y a des pullups de 10K sur chaques entrées.

Donc, à la mise sous tension, pas de problème, les ports du PIC sont en entrée, et les pullups jouent leur rôle.
Ensuite le PIC exécute le bootloader (celui d'origine Microchip, BL010101.HEX) met les ports RC0, RC1, RC2 en sortie, puis ensuite les initialise à 1 (les trois).
Or pendant quelques µSecondes, les ports sont en sortie et à zéro, et les pullups n'ont plus d'effets, donc il y a un court-circuit.

Dans le cas de http://wiki.jelectronique.com/projets/i ... icd2_clone
je ne comprends pas :
comment il génére le cas 5 volts ? RC0 = 5V et RC2 = 5V contrairement à ce qui est écrit ?
comment il travaille sans utiliser RC1 ?
JP
Administrateur
Administrateur
Messages : 2327
Inscription : 23 sept. 2003 19:14
Localisation : Strasbourg
Contact :

Message par JP »

L'ICD2 d'origine est bien avec un 16F877 (pas un 16F877A ni un 876)
Je me rappelais avoir lu qu'il fallait utiliser un bootloader spécifique pour les 877 mais apres vérification il parlait effectivement des 877A. :wink:
Le bootloader utilisé est bien celui d'origine microchip.
Ok, donc apparemment c'est le même pour le 876 et le 877.
Or pendant quelques µSecondes, les ports sont en sortie et à zéro, et les pullups n'ont plus d'effets, donc il y a un court-circuit.
Là je vois bien le problème :(
Et en intercalant une résistance entre les sorties et MCLR ?
MCLR doit consommer 3 fois rien donc il n'y aura quasiment pas de chute de tension et ça évitera le CC pendant l'initialisation des sorties.
omment il génére le cas 5 volts ?
Bonne question.
comment il génére le cas 5 volts ? RC0 = 5V et RC2 = 5V contrairement à ce qui est écrit ?
J'ai effectivement 5V quand RC0 = 5V et RC2 = 5V. Bizarre je pensais que c'était simplement la superposition des 2 cas RC0 = 5V, RC2 = 0V et RC0 = 0V, RC2 = 5V. C'est peut être le 5V connecté à la résistance de tirage connecté à MCLR.
comment il travaille sans utiliser RC1 ?
Il travaille bien :jesors:
Sérieusement, tout fonctionne correctement : le reset commandé par MPLAB en mode programmation et le mode debuggage.
Il doit surement y avoir une explication rationnelle. Quand j'aurai un peu temps j'essayerai de comprendre comment ca marche.
Ca clignote !!!!
Répondre