Problème Programmation 16F877
Répondre à la discussion
Affichage des résultats 1 à 23 sur 23

Problème Programmation 16F877



  1. #1
    invite11fdcbbe

    Problème Programmation 16F877


    ------

    Salut,
    J'utilise le système PicKit 2 pour programmer mon 16F877.
    J'ai programmé un programme simplissime, qui envoie 1 à la sortie D1.
    Eh bien, quand je teste la sortie avec une DEL ou un voltmètre, j'ai 0V...
    Que ce passe t-il?
    Le pic est alimenté en 4.5V, la patte MCLR est reliée au 4.5V au travers d'une résistance de 1K.
    J'ai lu qu'il fallait mettre une condensateur de découplage quelque part mais je ne sais pas si c'est de là que vient le problème =/


    -----

  2. #2
    Antoane
    Responsable technique

    Re : Problème Programmation 16F877

    Bonjour,
    Tout micro-contrôleur a besoin d'une horloge. Dans certain, elle peut-être interne au composant -il faut le lui dire-, mais pour le 16F877, il faut la lui apporter. Un oscillateur à quartz, RC ou un signal d'horloge externe. regarde dans la datasheet (http://ww1.microchip.com/downloads/e...doc/30292c.pdf page 121) pour plus de détails. Attention à bien configurer les fusibles FOSC0 et FOSC1.

    Un condensateur de découplage est nécessaire : c'est une capa de 100nF (en général), céramique, soudée au plus près du circuit intégré, entre le +Vcc=4.5V et la masse. Il sert (en gros) à apporter les pointes de courant au PIC qui ne pourraient être fournies par l'alimentation.


    PS : 32ohm, c'est beaucoup trop peu ! une led c'est -en général- 20mA, et le pic ne peut sortir plus de 5mA (à la rigueur 20mA).
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  3. #3
    invite11fdcbbe

    Re : Problème Programmation 16F877

    Si je reproduis ceci, ça marchera?


    Il y a t-il un moyen de faire la même chose avec des condos de 100pF, parce-que c'est ce que j'ai sous la main pour l'instant :/

  4. #4
    Antoane
    Responsable technique

    Re : Problème Programmation 16F877

    Le schéma à l'air bon. Pour la valeur des condos, cf la datasheet.

    Sinon, monte un oscillateur RC (mais ça ira plus lentement....)

    PS :http://forums.futura-sciences.com/el...-sabonner.html
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  5. A voir en vidéo sur Futura
  6. #5
    invite11fdcbbe

    Re : Problème Programmation 16F877

    Dans la datasheet j'ai ça :


    Donc pour une fréquence de 4MHz je dois utiliser deux condos de 15pF et un quartz de 4MHz?

  7. #6
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    Citation Envoyé par flowind Voir le message
    Dans la datasheet j'ai ça :


    Donc pour une fréquence de 4MHz je dois utiliser deux condos de 15pF et un quartz de 4MHz?
    Salut,

    oui c'est ça... 2 condos 15pf... et un Quartz 4Mhz...
    mais la valeur n'est pas "critique" (avec 2 x 22pF ça fonctionnera aussi)...

    vede
    ;O]
    _____________
    ...

    ps : des p'tits points, des p'tits points, toujours des p'tits points ;O] ...

  8. #7
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    re-ps ;O]

    Citation Envoyé par flowind Voir le message
    Il y a t-il un moyen de faire la même chose avec des condos de 100pF, parce-que c'est ce que j'ai sous la main pour l'instant :/
    c'est possible que ça marche...
    ;O]
    ...

  9. #8
    invite11fdcbbe

    Re : Problème Programmation 16F877

    Est-ce que le PIC 18F2550 a une horloge interne? Si oui comment l'activer? Il y a tellement d'infos dans la datasheet que je suis perdu

  10. #9
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    Salut,

    Citation Envoyé par flowind Voir le message
    Est-ce que le PIC 18F2550 a une horloge interne? Si oui comment l'activer? Il y a tellement d'infos dans la datasheet que je suis perdu
    oui, le 18F2550 a une horloge interne...
    configurable jusqu'à 8Mhz...
    notamment décrite dans :
    Chapitre 2.2.5 (Oscillators > Internal)...
    et
    Chapitre 22.5 (Special > Configuration bits)...

    vede
    ;O]
    ______________
    ...

  11. #10
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    ps :

    > comment l'activer?

    d'abords dans les bits de configuration du PIC,
    au lieu de "_HS" (Quartz), il faut mettre "_INTIO"...

    ensuite dans ton programme, tu dois commencer par
    régler sa vitesse, avec le registre OSCCON (cf page 33 et suivantes)

    erreur :
    Chapitre 22.5 (Special > Configuration bits)...
    non, c'est Chapitre 25.2...

    .

  12. #11
    invite11fdcbbe

    Re : Problème Programmation 16F877

    Je travaille sous flowcode.
    Après avoir fouillé un peu sur Internet j'ai trouvé que pour avoir une horloge interne cadencée à 4MHz je devais rajouter le petit bout de code C suivant:

    D'autre part, ni dans l'ASM, ni dans le C je n'ai trouvé de "_HS" =/

  13. #12
    Antoane
    Responsable technique

    Re : Problème Programmation 16F877

    Bonjour,
    c'est assez étrange de devoir configurer l'horloge dans le "main" : comment peut-on y arriver ?

    Voir dans puce>configurer>switch to expert mode> sélectionner le bon pic en haut à droite, puis cocher tout bien comme il faut. sans doute mettre "oscillator : INTOSC : USB-HS", et pour le reste.... aucune idée.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  14. #13
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    re ;O]

    je viens de télecharger FlowCode4 Demo...
    donc tu vas dans le menu "Puce" (en haut) > Configurer
    là tu cliques sur "Switch to Expert Config..."...
    et t'as la liste des "fusibles"...
    dans le premier champ (Oscillator) tu choisis : INTRC Port on A6-7
    et plus loin tu mets le WatchDog sur Disabled (suggestion ;O])....

    et après, dés le début de ton programme tu configures OSCCON
    comme dans ta copie d'écran pour avoir 4Mhz...

    Hi Antoane,

    et oui ça se passe comme ça...
    la vitesse de l'oscillateur interne se configure dans le code...
    et peut même être modifiée en cours de programme...

    et le mode INTOSC : USB-HS c'est pour utiliser l'oscillateur
    interne pour le programme du PIC, plus un quartz pour la communication USB...
    car impossible de faire fonctionner le "module USB" sans quartz...

    des explications détaillées en FR sur le fonctionnement de base des oscillateurs internes des PICS
    (pour 16F88 mais c'est très très très similaire)
    http://pagesperso-orange.fr/fabrice....ne%2016F88.htm

    bon après tout est décrit en détails dans la datasheet aux Chapitres pré-cités...
    vede
    ;O]
    ______________
    ...

  15. #14
    Antoane
    Responsable technique

    Re : Problème Programmation 16F877

    Et comment qu'y sait, le pic, à l'allumage, qu'il doit démarrer l'oscillateur interne pour aller voir qu'on lui dit de le faire ? à quelle vitesse est-ce qu'il démarre ?


    PS : à moins qu'on configure l'oscillateur à la programmation, c'est alors presque du hard plus que du soft ?
    PS2 : dans ce cas, comment pourrait-on changer la fréquence en cours de route ? Donc il faut que ce soit écrit sur la première ligne du programme ? (je pense à haut clavier).
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  16. #15
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    re ;O]

    "il le sait" grâce au fusible de configuration (INTRC au lieu de HS)...

    par défaut il "démarre" à 32Khz en attendant une modification du registre OSCCON...

    pour changer la fréquence en "cours de route", suffit de modifier le registre OSCCON...

    on peut re-modifier OSCCON à n'importe quel endroit du programme...

    on configure qu'on utilise l'oscillateur interne dans les fusibles ("hard")
    puis la fréquence dans le programme (soft)...

  17. #16
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    ps :

    le plus souvent, on définit la "vitesse" (OSCCON) au début du main...
    puis on y touche plus...

  18. #17
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    re ps :

    après il y a même des bits (IOFS...) pour vérifier que
    l'oscillateur interne à bien réussi à re-osciller avec
    une nouvelle valeur (OSCCON)... et qu'il est bien stabilisé...
    dans le cas où on passe sont temps à changer la fréquence...

  19. #18
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    re re ;O]

    et sur un 16F88, même des fusibles interdisant la re-modification
    de OSCCON (fréquence) en cours de programme (IESO,...)

  20. #19
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    Citation Envoyé par vede Voir le message
    re re ;O]
    et sur un 16F88, même des fusibles interdisant la re-modification
    de OSCCON (fréquence) en cours de programme (IESO,...)
    heuuu...

    ça c'est des conneries (IESO)... enfin faudra que je révise avant de m'avancer...

    IESO = on/off switch internal external over mode...

  21. #20
    invite11fdcbbe

    Re : Problème Programmation 16F877

    Citation Envoyé par vede Voir le message
    re ;O]

    je viens de télecharger FlowCode4 Demo...
    donc tu vas dans le menu "Puce" (en haut) > Configurer
    là tu cliques sur "Switch to Expert Config..."...
    et t'as la liste des "fusibles"...
    dans le premier champ (Oscillator) tu choisis : INTRC Port on A6-7
    et plus loin tu mets le WatchDog sur Disabled (suggestion ;O])....

    et après, dés le début de ton programme tu configures OSCCON
    comme dans ta copie d'écran pour avoir 4Mhz...
    Je tourne sous Flowcode 3 mais c'est le même panneau de config.
    Dans Oscillator j'ai pas INTRC Port on A6-7...


    D'autre part, le watchdog timer est soit "enabled" soit "disabled controled by SWDTEN bit , je dois toujours le disable?

  22. #21
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    Salut,

    en neffet, donc choisis l'oscillator qui est sur-ligné dans ta copie d'écran
    (INTOSC : INTOSC + RA6 - USB EC)

    et oui, désactive le WatchDog en le mettant "Disabled (Controlé par SWDTEN)"

    vede
    ;O]
    _____________
    ...

  23. #22
    invite11fdcbbe

    Re : Problème Programmation 16F877

    Ca marche!!!
    Mercii !!!! =D

  24. #23
    invite7a49d0d5

    Cool Re : Problème Programmation 16F877

    Citation Envoyé par flowind Voir le message
    Ca marche!!!
    Mercii !!!! =D
    YESSSSSSSSSSSSS ;O]

    et amuses-toi bien...
    et n'hésites pas si questions,
    vede
    ;O]
    _______________
    ...

Discussions similaires

  1. programmation du 16F877
    Par inviteca158a7a dans le forum Électronique
    Réponses: 8
    Dernier message: 13/05/2010, 19h14
  2. programmation de PIC 16F877 en C
    Par invite1cd8f19a dans le forum Électronique
    Réponses: 78
    Dernier message: 09/03/2010, 19h21
  3. programmation du 16F877
    Par invite05ab47b1 dans le forum Électronique
    Réponses: 11
    Dernier message: 14/02/2010, 07h10
  4. Pic 16f877 problème de programmation
    Par invite4bffdc16 dans le forum Électronique
    Réponses: 11
    Dernier message: 06/08/2009, 08h21
  5. Problème de programmation PIC 16F877, SAA 1064 et afficheurs 7 segments
    Par invite64e12149 dans le forum Électronique
    Réponses: 6
    Dernier message: 18/05/2009, 09h33
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...