T-Bot FAQ presents | Chercher |
PbPicretour à LaFaq
J'arrive pas à utiliser RB4 en sortie sur mon 16F628 ! Il faut mettre à 0 le fusible LVP (c'est à côté de CodeProtect et de PowerUpTimer) pour pouvoir utiliser RB4 en sortie. question sur la mémoire du PIC Je voudrais un peu mieux comprendre la documentation du PIC notamment en ce qui concerne la mémoire. En se basant sur la doc des 18FXX2, je peux lire en page 3 : (Pour le 18F252) Flash(bytes) : 32K #Single Word instructions : 16348 On-Chip RAM (bytes) : 1536 Data EEPROM (bytes) : 256 Quelle est la différence entre FLASH, #Single Word instructions et EEPROM ? Je suis à peu près sur que je dispose de 192 octets de RAM mais pour ce qui est de la ROM, je ne sias pas quelles sont les différences et de combien de place je dispose pour mettre mon programme. Merci par avance Julien Donc pour repondre a ta question, il y a 3 types de memoires sur les PIC. La RAM (registre) la FLASH (ROM) et l'EEPROM La RAM ya tout ce que tu peux changer rapidement, comme d'hab, et tous les registres de config/etat du PIC. Dans la FLASH il y a le programme. Chaque instruction prennant 2 octets sur les 18F, tu as donc 32ko de FLAH et 16K d'instructions. Dans l'EEPROM, tu met des donnes que tu veux garder entre 2 reset du PIC. La leccture est rapide, mais l'ecriture lente (de l'ordre de la ms). Tu n'est pas oblige de l'utiliser, contrairement aux deux autres. j'ai un peu de mal avec le system d'interruption du 18C4x2 si j'ai bien compris, il n'y a que 2 niveaux d'interruptions ? 1 niveau haut (x00008h )et un niveau bas (x000018h) et pour determiner quelle est la source de l'interruption, il faut scanner les flags ? tu as deux niveaux (donc deux procédures), tu définis quel événement provoque l'interruption. Les deux niveaux ne se comportent pas de la même façon sur les sauvegarde de l'environnement si j'ai bien lu le datasheet. Maintenant pour scanner 3 événement, il faudra scanner les bits (flags) ayant provoqué l'interruption. J'ai pas de fonctions mathématique dans mon compilateur http://www.ancr.org/fichtech/microp/BibPic/index.htm et http://tcremel.free.fr/soft/moby/mymath.c Pour configurer en entrée un 16F628 Après avoir essayé sans succes de lire dans le PORTA En ce qui concerne le port B, aucun pb mais pour le port A, rien à faire où est l'erreur ? Il manquait MOVLW 0X07 ;Turn comparators off and MOVWF CMCON ;enable pins for I/O Pour configurer en entrée un 16F87x ADCON1=6 Comment brancher LeQuartz ? Quelle différence entre un 16F84 et un 16F84A ?
Mon pic reset tout seul ou Je voudrais mettre un bouton reset je te conseille même le montage suivant : Tu mets une résistance de tirage au 5V (résistance de l'ordre du kilo {1, 10 15 comme tu veux}) tu mets un bouton entre le /MCLR et la masse. Jusque là je fait que des redites dirais-tu ? Et tu aurais raison. Mais en ajoutant une capa pas trop ridicule entre le /MCLR et la masse, tu charges la capa. Quel intêret ? Si tu appuies sur le bouton reset, de toute façon, tu décharges la capa et le chip se reset. Mais si c'est une microcoupure qui apparait, eh bien ta capa elle conservera la 5V sur la broche /MCLR. Et comme tu as mis une capa quasiment identique sur le PIC lui même pour les mêmes raisons , bin tu as un montage un peu blindé contre les micro coupures (pu de jus dans la batterie au départ du moteur par exemple). En plus ca fait un démarrage lent du pic (mais ceci existe également en interne == fusible PWRT). L'intéret du démarrage "lent" du PIC est que l'alimentation est bien stabilisée lorsque le PIC démarre. Dans mon cas j'ai mis 15k de résistance de tirage et 100nF de capa de stabilisation. Soit un temps de démarrage de RC de environ 1,5ms. J'ai mis une diode pour permettre au pic de se faire programmer en direct. La diode sert à éviter que le 13V de programmation ne se retrouve via la résistance dans le Vdd. En effet si on alimente pas (fil coupé) le Vdd, le 13V se retrouve dans tout le schéma. Comment ne pas condamner le port B au seul usage de la programation ? Comment eviter que les signaux de programation se balladent partout et que le +13 volt grille tout sur son passage. MCLR tu as tout juste, il faut un RC au 5V suivi d'une diode. Mais nous avons aussi mis une diode sur le programmateur pour éviter le retour du MCLR dans le programmateur. Donc sur le programmateur nous générons du 13V7 pour la patte MCLR et on met une diode avant la sortie. cf schéma eagle dans http://tcremel.free.fr/doc/programmateur.zip Pour RB6,RB7 : Tu peux mettre un connecteur 5 points au pas de 2.54 connecté directement sur MCLR (cf ci dessus), 5V, 0V RB6, RB7 comme tu as mis dans le schéma. Mais nous avons utilisé une petite astuce : un connecteur 2 points au pas de 2.54 sur lequel se branchent les "vrais" RB6, RB7. Tu dois placer 2 straps entre le connecteur de programmation et ce connecteur pour utiliser RB6, RB7. Or quand tu veux programmer, il faut forcément enlever les straps puisque le 5 point est un peu occupé. cf http://tcremel.free.fr/doc/2004/4.11%20carte%20maitre.zip La sortie du programmateur est open drain, mais le fait de découpler physiquement le circuit lors de la programmation permet de s'affranchir de questions genre : Ai-je créé un pont diviseur ? retour à LaFaq Page non modifiable
|