logo T-Bot FAQ presents

Chercher
Dernière page modifiée : LaGravure le 21/06/11 00:17:24

PbPic

retour à LaFaq

Comment connecter une carte mémoire sur mon pic
hugo
j'ai enfin du temps pour bosser sur mes projets dont l'un d'eux est la gestion de la FAT (FAT16 en l'occurence) avec PIC18.
En attendant, pour ceux que cela intéresse, j'ai developpé un pilote Compact Flash et une carte de développement avec le support CF.
Si cela vous intéresse :
Présentation : http://www.digitalspirit.org/blog/index.php/2005/05/26/9-pilote-compact-flash-pour-pic
Documentations, Schémas et sources : http://www.digitalspirit.org/wiki/index.php/PicCompactFlash

Nota : L'hexapode Bleuette marche !!! http://www.digitalspirit.org



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 ?
  • c'est approximativement les mêmes puces. Le programme peut être mis de l'un dans l'autre sans problème. Par contre pour le chargement dans la puce, il faut spécifier le composant exact, le protocole est pas exactement le même...
  • Le prix est plus faible pour le 16F84A
  • c'est compatible patte à patte avec le 16F628 et moyennant une recompilation de l'assembleur, ca fonctionnera de la même manière. le 628 est moins cher, compatible patte à patte, a plus de mémoire : que du bonheur :-)


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.

http://tcremel.free.fr/image/reset.jpg http://tcremel.free.fr/image/sch_cible_reset.gif
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

Retour à LaFaq WikiListe des pages

Chercher