Répondre à la discussion
Page 1 sur 3 12 DernièreDernière
Affichage des résultats 1 à 30 sur 63

programation I²C



  1. #1
    thesheep

    programation I²C


    ------

    Bonjour a tous

    je débute dans la programmation des pic, est aimerai commander des éclairage grâce a un PCF8574, lui même commander par un PIC16F84.

    pour la parti schémas pas de souci je pense avoir trouver, mais c'est pour la programmation du pic que je ne sait pas comment faire.

    j'ai lus les court bigonoff mais la je plante, sur son site il y a un exemple dans les réalisation pratique pour gérer une eeprom avec se pic mais j'y comprend rien

    merci de votre aide

    -----

  2. Publicité
  3. #2
    thesheep

    Re : programation I²C

    petite presicions

    il faut juste écrire sur le pcf est non lire,

    de plus comme on peut brancher 8 pcf et même 16 si on utilise le A il faudrait que mon montage soit modulaire.

    je m'explique, j'ai la carte "cerveau" avec le pic et ensuite plusieurs cartes pas forcement toute brancher mais que nous pouvons brancher si l'on le souhaite avec un pcf par carte.

    la commande se ferait grâce a 3 poussoir

    1 allumer éteindre
    1 éclairage suivant
    1 éclairage précédent

    seulement 3 boutons qu'il y ai 1 pcf (8 éclairage) ou 8 pcf (8*8 éclairage)

    merci
    Dernière modification par thesheep ; 23/04/2009 à 13h22.

  4. #3
    thesheep

    Re : programation I²C

    Des idées??

  5. #4
    Gérard

    Re : programation I²C

    Citation Envoyé par thesheep Voir le message
    Des idées??
    Change de PIC.
    Prends un PIC avec I2C intégré (876) surtout si tu travailles en asm.

    Si tu as les cours de Bigo et tu n'y arrives pas ... relis les cours

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

    Re : programation I²C

    je suis d'accord avec toi le 876 serai plus simple mais j'aimerai resté sur un dip 18 pattes

    merci

  8. #6
    Gérard

    Re : programation I²C

    Citation Envoyé par thesheep Voir le message
    je suis d'accord avec toi le 876 serai plus simple mais j'aimerai resté sur un dip 18 pattes

    merci
    Tu devras écrire les routines I2C en soft. En asm, ce n'est pas tout cuit.

  9. Publicité
  10. #7
    gedonet

    Re : programation I²C

    Bonjour
    C'est tres simple même avec un 16F84
    1° je suppose que tu utilises un quartz de 4MHz
    2° tu peux utiliser une routine soft, je te propose celle sur mon site: http://gedonet.free.fr/aide_pic/aide_pic.htm mais il y en a d'autre.
    3° pour cette exemple tu veux ecrire sur ton PCF8574 , mettre à 1 P0,P2,P4,P6 et les autres sortie à 0
    4° pour l'exemple A0, 1 et A2 de ton PCF8574 seront à la masse

    Donc on ecrit
    [code]
    call I2C_INIT ; on initialise le bus la routine teste si le bus est libre
    call I2CSTART ; on envoie un start condition
    call WtoI2C

  11. #8
    gedonet

    Re : programation I²C

    Je refais mon post
    Bonjour
    C'est tres simple même avec un 16F84
    1° je suppose que tu utilises un quartz de 4MHz
    2° tu peux utiliser une routine soft, je te propose celle sur mon site: http://gedonet.free.fr/aide_pic/aide_pic.htm mais il y en a d'autre.
    3° pour cette exemple tu veux ecrire sur ton PCF8574 , mettre à 1 P0,P2,P4,P6 et les autres sortie à 0
    4° pour l'exemple A0, 1 et A2 de ton PCF8574 seront à la masse

    Donc on ecrit
    Code:
            call          I2C_INIT               ; on initialise le bus la routine teste si le bus est libre
            call          I2CSTART             ; on envoie un start condition
            movlw    B'01000000'         ; on charge l'adresse complete + 0 pour ecriture dans w
            call          WtoI2C                 ; on envoie le contenu de w sur le bus
            call          I2C_reception_ACK   ; on lit l'ACK je n'ecrit pas le test, il faut tester un bit
            movlw    B'01010101'           ; on charge la valeur qui est l'image de se qui doit etre sur le port du PCF
            call          WtoI2C                 ; on envoie le contenu de w sur le bus
            call          I2C_reception_ACK 
           call           I2CSTOP               ; on envoie un stop condition pour liberer le bus
    Pour lire c'est la même chose sauf pour le bit R/W dans l'adresse est c'est le pic qui envoie l'ACK.
    Gilles

  12. #9
    Gérard

    Re : programation I²C

    Et tu fais ça sur un 16F84 ?
    La taille de mémoire est faible.

  13. #10
    gedonet

    Re : programation I²C

    Citation Envoyé par Gérard Voir le message
    Et tu fais ça sur un 16F84 ?
    La taille de mémoire est faible.
    Bonjour
    Un 16F84 c'est 1K de memoire flash, cela represente plus de 1000 lignes de code, on peut faire pas mal de chose avec 1000 lignes de code.
    Gilles

  14. #11
    Gérard

    Re : programation I²C

    Et la gestion I2C soft fait combien de lignes ?

  15. #12
    DavidDB

    Re : programation I²C

    Salut,

    +/- 100 lignes de codes.

    David.

  16. Publicité
  17. #13
    Gérard

    Re : programation I²C

    Citation Envoyé par DavidDB Voir le message
    Salut,

    +/- 100 lignes de codes.

    David.
    En asm ou dans un autre langage ?

  18. #14
    gedonet

    Re : programation I²C

    Citation Envoyé par Gérard Voir le message
    En asm ou dans un autre langage ?
    Bonjour
    Une centaine de ligne d'assembleur, la macro que je propose fait 103 lignes, mais je triche un peut, car il y a des macros.
    Pour la taille d'un code, ce qui compte, c'est la taille du code assembleur et pas celle d'un langage evolué.
    Gilles

  19. #15
    thesheep

    Re : programation I²C

    merci a tous si la taille memoire me gene je prendrait un 648 qui a le double


    sinon comment faire pour avoir une reconaisance du nombre de circuit brancher sur le bus par le pic
    et une lecture des adresse de l'esclave?

  20. #16
    thesheep

    Re : programation I²C

    je n'arrive pas a executer la routine I2C de gedounet avec son programme
    j'ai une tres long liste d'erreur

    si quelqu'un connais la marche a suivre se serai sympas

    merci

    ps: j'ai actuellement un 16F628A pour mes essai

  21. #17
    gedonet

    Re : programation I²C

    Bonjour
    Pour utiliser la routine que je te propose, il faut ajouter le ligne "#include i2c.asm" juste avant la directive "END"
    Code:
    	#include 	i2c.asm
    	END 		; directive fin de programme
    , ensuite tu declares les trois lignes dans ton programme principale
    Code:
    #DEFINE		SDA	PORTA,2
    #DEFINE		SCL	PORTA,3
    #DEFINE   	I2CACK	flag,0
    Dans mon cas RA2 et RA3 sont utilisées mais tu peux choisir d'autres bits et d'autres ports.
    ensuite tu declares 3 variables:
    Code:
    	I2C_VAR1 : 1			; 3 variables pour routine I2C
    	I2C_VAR2 : 1
    	flag : 1			; seule le bit 0 est utilisé pour la routine
    Tu peux aussi passer ton source commenté, tu dois avoir oublié les declarations ou le #INCLUDE
    Gilles

  22. #18
    thesheep

    Re : programation I²C

    merci beaucoup

    sa marche (je n'avait pas mis le include au bonne endroit)

    c'est tres agreable de voir des personne qui nous aide gratuitement

  23. Publicité
  24. #19
    thesheep

    Re : programation I²C

    re bonjour mon proget avance doucement mais surment

    j'aimerai savoir comment faire pour a l'aide de 3 bouton poussoir commender le pic pour choisir le pcf a commander (bouton +;bouton-)
    puis apres apuis sur le bouton mode choisir parmi plusieur constante a envoier

    par exemple 10101010
    puis apuis sur +
    envoie sur le meme pcf 01010101
    puis appuis sur +
    envoie sur le meme pcf 11001100
    et lorsque l'on appuis sur - on revien au precedent ici 01010101
    sachant que toute c valeur sont en constante actuellment dans mon programe et defile toute les seconde

    merci

  25. #20
    LABTOOL48

    Re : programation I²C

    Citation Envoyé par thesheep Voir le message
    je n'arrive pas a executer la routine I2C de gedounet avec son programme
    j'ai une tres long liste d'erreur

    si quelqu'un connais la marche a suivre se serai sympas

    merci

    ps: j'ai actuellement un 16F628A pour mes essai
    la bonne marche a suivre c'est elle que tu la laissé dans le livre de bigonoff (communication pic /eeprom en i2c) applique dabor cellela pour en moin comprendre comment execute la routine i2c

  26. #21
    thesheep

    Re : programation I²C

    mais je comunique deja en i2c avec plusieur pcf
    se que je cherche a faire c'est d'avoir des interaction decu car en se moment sa tourne en boucle des que je branche mon montage

  27. #22
    thesheep

    Re : programation I²C

    quelqun a des idées??

  28. #23
    gedonet

    Re : programation I²C

    Bonjour
    Il faudrait, à mon avis, que tu precises ou tu as un probleme, parceque cela me semble tres simple avec plusieurs methodes possibles.
    Par exemple dans ta boucle il y a la scrutation des boutons et si BP+ ou BP- sont appuyés on incremente ou decremente une variable qui doit varier entre 00 et 10 et on ajoute cette variable à 11001100 pour l'envoyer sur ton pcf, on aurra trois cas 11001100+00=11001100, 11001100+01=11001101 et 11001100+10=11001110, je ne vois vraiment pas ou est la difficulté. Il faut evidement securiser un peut le programme avec des antirebonds et verifier que la variable ne prenne pas la valeur 11 ou superieur ou ne devienne pas negative.
    Gilles

  29. #24
    thesheep

    Re : programation I²C

    merci mais comment scrut-on un bouton ??

    avec des interuption??
    ou dans le programme principale ??
    quelle code ??

  30. Publicité
  31. #25
    LABTOOL48

    Re : programation I²C

    Citation Envoyé par thesheep Voir le message
    merci mais comment scrut-on un bouton ??

    avec des interuption??
    ou dans le programme principale ??
    quelle code ??
    exemple
    x1
    btfss portb.bp+ ; boutton poussoir +
    goto x1 ; saut si = 0
    incf 0x0c ; increment la variable, 0x0c = 01

    et la meme chose pour bp- change seulement "incf par decf "

  32. #26
    thesheep

    Re : programation I²C

    bonjour a tous

    merci pour votre aide

    je shouaitrait passer du PCF8574 a un MCP23016 mais je n'arrive pas a ecrire sur ses sortie (et mon niveau d'anglais me fais defaut pour commprendre la datasheet)

  33. #27
    gedonet

    Re : programation I²C

    Bonjour
    Il faudrait que tu fasses un effort en anglais car les data-sheet sont en anglais.
    Pour tes tentatives, il faut en premier ecrire l'adresse, puis le "COMMAND BYTE", voir le tableau 1.3 qui te permet d'acceder aux differents registres, comme "IODIR0" ou "IODIR1" qui te permettent de mettre en entrées ou sorties les 16 I/O, "GP0" et "GP1" te permettent soit de lire le port soit d'y ecrire etc.
    Gilles

  34. #28
    thesheep

    Re : programation I²C

    Donc si j'ai bien compris j'envoie l'adresse, puis le commande byte(a quelle valeur pour seulement ecrire sur les sortie ??(67h il me semble mais je ne suis vraiment pas sure)),puis les valeur a mettre sur le port 0 ,puis les valeur a mettre sur le port 1

  35. #29
    edius45

    Re : programation I²C

    Citation Envoyé par thesheep Voir le message


    sinon comment faire pour avoir une reconaisance du nombre de circuit brancher sur le bus par le pic
    et une lecture des adresse de l'esclave?
    L'un des avantage de l'I2C est l'on peur brancher plusieurs composant utilisant ce protocole sur le m^me bus. Pour identifier le quelle parle etc chaque composant a une adresse quil envoi au pic avant chaque transmision.
    "toutes conséquence a une cause. Je l'appel Dieu"

  36. #30
    thesheep

    Re : programation I²C

    je suis d accore mais j'aimerais crée quelque chose de modulaire

    un jour 8 MCP de brancher sur le bus et le lendemain seulement 3 ou 1 ...
    j'aimerai que mon pic le vois tout seule et quil ne me propose pas de changer les valeur de composant qui ne sont pas brancher sur la carte

    PS j'ai la possibilité de passer sur un pic16F876A je voulais savoir si cela me faciliterai la vie ou pas

    merci

Page 1 sur 3 12 DernièreDernière

Discussions similaires

  1. Programation en C
    Par Tookiz dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 19/12/2008, 19h18
  2. programation
    Par amineln dans le forum Électronique
    Réponses: 2
    Dernier message: 10/09/2007, 20h03
  3. programation orientée
    Par c_a_r_a_83 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 31/08/2007, 12h59
  4. programation html
    Par Toni dans le forum Internet - Réseau - Sécurité générale
    Réponses: 13
    Dernier message: 30/08/2007, 13h02
  5. programation de microcontroleur
    Par justadream dans le forum Technologies
    Réponses: 8
    Dernier message: 12/01/2007, 22h30
Découvrez nos comparatifs produits sur l'informatique et les technologies.