FORUM Syndrome-OC - Jacky-PC


  Electronique


  Montage


  Prise de tete avec mon &@!%^$ de pic

 




Il y a 29 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Prise de tete avec mon &@!%^$ de pic

n°78967
tix2
ALors toi,hein ,je serais ta m
Posté le 12-08-2007 à 14:27:09  profilanswer
 

Salut tout le monde !
 
Je perd pieds. je n'arrive pas a faire marcher ce ****** de pic.  
 
...il sagit d'un PIC12F629. mon shéma est simple :
 
Un bouton relié à GPIO3 (avec res de pullup), deux led reliées a GPIO.1 et GPIO.2 via des resistances de 150 ohms. rien d'autre
 
J'aimerais faire ceci (programme de teste) :
 
Quand j'appuie sur le contact (GPIO.3 = 1) la led 1 s'allume, l'autre non
quand je relache le bouton (GHPIO.3=0) l'inverse se produit.
 
Aucun autre composant, circuit sous 5V, compilateur CC5X, IDE Mplab, envoyé sur le pic avec ICprog
 
pourriez vous, en connaissance de ces informations, me donner quelques infos sur ma réalisation ? (configuration "trisio" & "gpio" ect ... et surtout POURQUOI proceder ainsi) ?
 
merci beaucoup, j'attende vos réponses avec impatience, ++ Tix.


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
mood
Google
Posté le 12-08-2007 à 14:27:09  profilanswer
 

n°78968
Deadog
Dain Bramaged
Posté le 12-08-2007 à 17:22:26  profilanswer
 

bah pkoi pas essayé de nous décrire ton problème avec la solution que toi tu as ? ça nous permettrai pê de voir un truc qui va pas ...
 
genre, erreur classique avec les pic qui ont un adc : as tu pensais à désactiver le convertisseur analogique des GPIO que tu utilises ?


---------------
* On sais qu'on est un ingénieur si on n'a pas de vie social et qu'on peux le prouver mathématiquement
* "pluralitas non est ponenda sine necessitate" (Les choses essentielles ne doivent pas être multipliées sans nécessité) Guillaume d'Ockham

n°78972
tix2
ALors toi,hein ,je serais ta m
Posté le 12-08-2007 à 22:58:44  profilanswer
 

Merci deadog pour ta réponse, voilà mon shéma et mon code actuel :
 
http://transisterix.free.fr/images/electronique/pic12f62901.png
 

Code :
  1. /*****************************************************
  2.    Version       : 1.0 (11/03/07)
  3.    Compilateur    : CC5X
  4.    Language       : C
  5.    Composant      : PIC12F629   
  6. *****************************************************/
  7. #pragma chip PIC12F629
  8. bit bouton @ GPIO.3 ; // Assigne le nom "bouton" à GPIO.3
  9. void main(void)
  10. {
  11.    GPIO = 0;
  12.    CMCON = 7;
  13.    TRISIO = 0b11001111;
  14.    GPIO = 0b00010000;
  15.    while(1)
  16.       {
  17.          if(bouton)
  18.          {
  19.             GPIO.1 = 1;
  20.             GPIO.2 = 0;
  21.          }
  22.          else
  23.          {
  24.             GPIO.1 = 0;
  25.             GPIO.2 = 1;
  26.          }
  27.       }
  28. }


 
probleme : rien ne se passe
 
solution actuelle : trisio mal configuré, je tente ce soir, je vois tiend au courant .
 
merci, ++ Tix.


Message édité par tix2 le 12-08-2007 à 23:50:36

---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°78973
neteagle
Posté le 13-08-2007 à 08:49:22  profilanswer
 

Salut,
 
Effecctivement TRISIO est mal configuré. En fait TRISIO définit si GP0 à GP5 sont en entrée ou en sortie. Un 1 définit la patte en entrée, 0 en sortie. Ensuite le bit0 de TRISIO configure GPIO0, le bit5 configurant GPIO5.
Dans ton application on a:
GP1 en sortie,
GP2 en sortie,
GP3 en entrée.
(les autres ports sont laissés en entrée)
Donc TRISIO = 0b 1111 1001
 
Lors de la programmation, il faut aussi bien configurer le bit qui correspond au reset (/MCLR), en configurant le reset en interne pour utiliser GP3 comme une entrée.
@+
 
NETeagle
 
PS: le bit0 est situé à droite du mot de 8 bits !


Message édité par neteagle le 13-08-2007 à 08:52:06

---------------
Just Do It Yourself
n°78974
tix2
ALors toi,hein ,je serais ta m
Posté le 13-08-2007 à 09:40:54  profilanswer
 

salut
 
merci pour ta réponse, on m'avais dit la meme chose sur un autre forum ;)

Citation :

celas dit, ayant voulu testé ce code :
 

Code :
  1. /*****************************************************
  2.       Premier programme
  3.     pour PIC12F629
  4.      
  5. ******************************************************
  6. Version   : 1.0 (11/03/07)
  7. Compilateur  : CC5X
  8. Language   : C
  9. Composant  : PIC12F629  
  10. *****************************************************/
  11. #pragma chip PIC12F629
  12. //#define CONF_WORD = 0x3184
  13. bit bouton @ GPIO.3 ; // Assigne le nom "bouton" à GPIO.3  
  14. void main(void)
  15. {
  16. CMCON=7;
  17. ANSEL=0;
  18. TRISIO = 0b001000;
  19. GPIO = 0b111111;
  20. while(1)
  21.  {
  22.   if(bouton)
  23.   {
  24.    GPIO.1 = 1;
  25.    GPIO.2 = 0;
  26.   }
  27.   else
  28.   {
  29.    GPIO.1 = 0;
  30.    GPIO.2 = 1;
  31.   }
  32.  }
  33. }


 
Ou le trisio a été modifié (quoique les pins non-utilisées on été configurées en sorties), et les AN désactivé (normalement) j'ai ca :
 
[quote]Deleting intermediary files... done.
Executing: "C:\Program Files\CC5X\CC5X.EXE" Fichier.c -CC -fINHX8M -p12F629 -IC:\Progra~1\CC5X -a -L -Q -V -FM
CC5X Version 3.3A, Copyright (c) B Knudsen Data, Norway 1992-2007
 --> FREE edition, 8-16 bit int, 24 bit float, 1k code, reduced optim.
Fichier.c:
 
 CMCON=7;
 ANSEL=0;
      ^------
Error[1] H:\Gery\Electronique\Projets\[12f629] LED\Fichier.c 23 : Symbol 'ANSEL' is undefined
 (The definition of the symbol in not known. This can be due to
 wrong spelling or letter case mismatch. Otherwise a new symbol
 definition is required: variable, function, macro, etc.)
 
Error options: -ew: no warning details  -ed: no error details  -eL: list details
BUILD FAILED: Mon Aug 13 09:42:01 2007


 
qui me dit que ANSEL ne marche pas, me serais-je gourré ?[/quote]
 
[color=green]
[EDIT] Pas de souci en fait, les pic12f629 n'ont pas de CAN, je guettais des exemples avec des 12f675 !!!![/EDIT][/color]

 
merci encore, ++ Tix.


Message édité par tix2 le 13-08-2007 à 10:12:53

---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°78975
tix2
ALors toi,hein ,je serais ta m
Posté le 13-08-2007 à 10:13:04  profilanswer
 

J'ai du nouveau !!!
 
j'ai fait un programme qui allume seulement toutes les sorties (à 1)
 
mais voilà, elles ne s'allumes que quand, par inadvertance, j'ai posé le doigt sur certaines de ces sorties !!!!
 
est-ce normal ?


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°78978
neteagle
Posté le 13-08-2007 à 10:26:34  profilanswer
 

Quels sont tes bits de programmation ?


---------------
Just Do It Yourself
n°78979
tix2
ALors toi,hein ,je serais ta m
Posté le 13-08-2007 à 10:28:42  profilanswer
 

comment celas ?


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°78980
neteagle
Posté le 13-08-2007 à 10:30:12  profilanswer
 

Ben quand tu programmes ton pic, tu lui indiques plusieurs chose, comme le type d'oscillateur, la configuration de la patte de reset, etc....
Quel logiciel utilises-tu pour la prog du PIC ?


Message édité par neteagle le 13-08-2007 à 10:30:53

---------------
Just Do It Yourself
n°78981
tix2
ALors toi,hein ,je serais ta m
Posté le 13-08-2007 à 10:38:33  profilanswer
 

IC PROG
 
je désactive le watchdog, et je je suis pas sur de maitriser le vocabulairte de l'oscillation ,que pense tu que de doive configurer ?


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°78982
neteagle
Posté le 13-08-2007 à 10:50:57  profilanswer
 

Ton problème vient surement d'une mauvaise programmation des bits de config !
Dans IC Prog, faut mettre :
Oscillator: INTosc GP4 -> Oscillateur 4 MHz interne, la patte étant libérée pour GP4
BandGap: default
WDT: décoché -> pas de watchDog
PWRT: coché -> ca créer une tempo lors de la mise sous tension pour attendre que les alims soient bien établies
MCLR: décoché -> le reset est relié en interne au PIC, la patte étant libérée pour GP3
BODEN: coché -> fait reset si la tension d'alim chute au dela d'une certaine valeur
CP et CPD: décoché -> protection contre la lecture du code interne.


---------------
Just Do It Yourself
n°78983
tix2
ALors toi,hein ,je serais ta m
Posté le 13-08-2007 à 10:52:56  profilanswer
 

merci ,j'essaye !


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°78984
tix2
ALors toi,hein ,je serais ta m
Posté le 13-08-2007 à 11:24:23  profilanswer
 

argl toujours le meme probleme, mais, d'apres toi, dou provient le fait que mon programme marche que quand je pose le doigt sur les pin du pic ? (entre alim et pin)
 
ca m'inquiete ^o)


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°78985
neteagle
Posté le 13-08-2007 à 11:29:27  profilanswer
 

Bizarre en effet ! Vérifie que MCLR est bien décoché dans IC prog.
J'ai aussi vu un truc pas top dans le code:
TRISIO = 0b001000;
à remplacer par TRISIO = 0b00001000;
idem GPIO = 0b11111111;


---------------
Just Do It Yourself
n°78986
tix2
ALors toi,hein ,je serais ta m
Posté le 13-08-2007 à 11:33:15  profilanswer
 

Okioki, quel en ets la raison exactement ?


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°78987
tix2
ALors toi,hein ,je serais ta m
Posté le 13-08-2007 à 12:23:18  profilanswer
 

si vous voyez d'autres conneries de ma part, ou si vous avez d'autres conseils, je suis preneur, je revien tout de suite.


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°78988
neteagle
Posté le 13-08-2007 à 12:46:16  profilanswer
 

Ben c'est tout simple: le registre TRISIO et GPIO sont des registres 8 bits, il est plus sur de mettre des valeurs de 8 bits dedans, pas de 6 bits...


---------------
Just Do It Yourself
n°78990
tix2
ALors toi,hein ,je serais ta m
Posté le 13-08-2007 à 13:09:44  profilanswer
 

d'accord, ca me parait sensé ;)
 
bon, sinon, mon probleme persiste .... j'ai le doigt magique, à tout les coups ....


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°78993
neteagle
Posté le 13-08-2007 à 13:28:32  profilanswer
 

Lors de la programmation sous IC Prog, quelle valeur y a-t-il dans le mot config word (en bas à droite) ?


---------------
Just Do It Yourself
n°78994
tix2
ALors toi,hein ,je serais ta m
Posté le 13-08-2007 à 13:51:24  profilanswer
 

je te dis ca tout a l(heure :)


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°79013
Karhadras
Posté le 14-08-2007 à 22:07:11  profilanswer
 

Question débile :
 
C'est moi oul es cathode des leds sont au VCC ?
 
http://transisterix.free.fr/images/electronique/pic12f62901.png

n°79016
tix2
ALors toi,hein ,je serais ta m
Posté le 14-08-2007 à 23:07:20  profilanswer
 

elles y sont :)


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°79018
Genesis
modérateur tyranique ^_^
Posté le 15-08-2007 à 10:41:03  profilanswer
 

c est la question que je me suis aussi posée mais comme il dis qu il vois les leds s allumer c est que le schéma doit etre faux. mais son montage juste donc....


---------------
la vitesse de la lumière étant largement supérieure à celle du son, bien des gens ont l'air brillants jusqu'a ce qu'ils ouvrent leur bouche....
n°79021
Deadog
Dain Bramaged
Posté le 15-08-2007 à 11:47:49  profilanswer
 

tix2 a écrit :

argl toujours le meme probleme, mais, d'apres toi, dou provient le fait que mon programme marche que quand je pose le doigt sur les pin du pic ? (entre alim et pin)
 
ca m'inquiete ^o)


Message édité par Deadog le 15-08-2007 à 11:48:13

---------------
* On sais qu'on est un ingénieur si on n'a pas de vie social et qu'on peux le prouver mathématiquement
* "pluralitas non est ponenda sine necessitate" (Les choses essentielles ne doivent pas être multipliées sans nécessité) Guillaume d'Ockham

n°79024
tix2
ALors toi,hein ,je serais ta m
Posté le 15-08-2007 à 13:33:05  profilanswer
 

Je bricole mon montage au fur et a mesure que je me rend compte de betises ... par exemple, là , ya un condo de decouplage, mis sur conseils ...
 
apparemment, j'ai fait une fausse manip et mon exemplaire à cramé. je reprend des samples dans la semaine. en attendant , je vais essayer sur des 16f84 ou un 10f222 ....
 
++ Tix.


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
n°79510
octopuss83
PIC FOR EVER
Posté le 17-10-2007 à 18:39:16  profilanswer
 

   Ca y est les gars , j'ai trouvé le problème , j'ai eu la même surprise (état instable du PIC ... Patte sensible ) , en fait c'est le CCS C Compiler qui bug un peu , je m'explique :
 
    Sur un pic 12F629 j'a fait un programme qui fait clignoter une Led : j'ai examiné le code généré par le compilateur et il semblerait qu'il y ait un problème sur le Vecteur RESET adresse 0000h , en effet a cette adresse on devrait retrouver un "GOTO MAIN" Main etant l'adresse de depart du programme principal , mais la CCS essaie de calibrer le registre OSCAL (calibration de l'oscillateur interne ) visiblement ca marche pas a tous les coups . Un peu de code pour etayer :
 
0000 3000       00001 MOVLW  00   <---- Adresse 0000h Vecteur RESET
0001 008A       00002 MOVWF  PCLATH
0002 2804       00003 GOTO   004
0003 0000       00004 NOP
0004 23FF       00005 CALL   3FF
0005 1683       00006 BSF    STATUS.RP0
0006 0090       00007 MOVWF  OSCCAL
0007 3000       00008 MOVLW  00
0008 008A       00009 MOVWF  PCLATH
0009 2824       00010 GOTO   MAIN   <---- Adresse 0009h Goto programme principal  
 
 
entre l'adresse 0000h et 0009h   le compilateur intègre la valeur de calibration de l'oscilateur interne dans le registre "OSCAL" (voir datasheet du pic )
c'est la ou le programme plante une fois sur 2 . Voila la facon de regler le Pb :
 
il suffit de mettre lors de la programmation du PIC (pour mon cas avec ICPROG) le GOTO MAIN a l'adresse 0000h , de cette facon le programme démarre toujours bien et curieusement le PIC est stable !!!!!
 
ca donne donc :  
 
0000 2824       00001 MOVLW  00   <---- GOTO MAIN ICI
0001 008A       00002 MOVWF  PCLATH
0002 2804       00003 GOTO   004
0003 0000       00004 NOP
0004 23FF       00005 CALL   3FF
0005 1683       00006 BSF    STATUS.RP0
0006 0090       00007 MOVWF  OSCCAL
0007 3000       00008 MOVLW  00
0008 008A       00009 MOVWF  PCLATH
0009 2824       00010 GOTO   MAIN   <---- Adresse 0009h Goto programme principal  
 
bien entendu bien respecter l'adresse du programme principal  (pour ma part je copie le les 2 octets de l'instruction GOTO MAIN Compilée par le CSS) ici 2824.
 
en parallèle , il y a 2 bug sur le PIC12F629 :
 
pour le premier voir l'excellent document de Jonathan Scott, SMIEE, Daniel Rosborough, and Michael Cosgrove : http://eng.waikato.ac.nz/research/ [...] 2F675.html
le 12F629 étant un clone du 12F675 sans l'ADC mais avec 2 comparateurs
 
pour le 2eme voir le correctif "80125G errata" de microchip  : ww1.microchip.com/downloads/en/DeviceDoc/80125G.pdf
 
et pour finir merci Mr picadilly :members.shaw.ca/picgroup/Resources/Picadilly%205.pdf  
 
Voila si ca peut aider , j'ai cherche une bon moment moi aussi pour faire fonctionner le PIC n'hésitez pas a poser des questions


---------------
---------=============  Octopuss  =============---------
n°79608
tix2
ALors toi,hein ,je serais ta m
Posté le 01-11-2007 à 17:00:00  profilanswer
 

merci pour ton éclairement, et désolé de répondre si tard !
 
je n'ai pas le temps de tout lire, mais je m'y attele des que je peu, merci encore, ++ Tix.


---------------
Actuellement : <img src=\\\\\\\"http://www.bencastricum.nl/msn/status.php/26231b22-af9b-4ecf-a5b4-7b12014833d4.png\\\\\\\">
mood
Google
Posté le 01-11-2007 à 17:00:00  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Electronique


  Montage


  Prise de tete avec mon &@!%^$ de pic

 

Hit Parade