Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Idée, bugs, propositions .......
Problème de séquence I2C entre deux PIC
satinas
Confirmé
Confirmé
Messages : 523
Enregistré en : novembre 2015

#81 Message par satinas » mar. 5 mai 2020 15:11 lien vers la Data-Sheet : Cliquez ici

Tu as essayé de le faire par toi-même et c'est tout à fait louable, mais là faut que cela marche, effectivement :)
Je vais regarder et essayer de faire fusionner nos 2 programmes.

Problème de séquence I2C entre deux PIC
Serge
Amateur
Amateur
Messages : 133
Enregistré en : septembre 2018

#82 Message par Serge » mar. 5 mai 2020 15:13 lien vers la Data-Sheet : Cliquez ici

Bon, je reprend mes essais avec le mode lecture, car ça, ça ne fonctionne pas.

Problème de séquence I2C entre deux PIC
Serge
Amateur
Amateur
Messages : 133
Enregistré en : septembre 2018

#83 Message par Serge » mar. 5 mai 2020 15:13 lien vers la Data-Sheet : Cliquez ici

Ok

Problème de séquence I2C entre deux PIC
Serge
Amateur
Amateur
Messages : 133
Enregistré en : septembre 2018

#84 Message par Serge » mer. 29 juil. 2020 18:44 lien vers la Data-Sheet : Cliquez ici

Petite info de suite....

J'ai bien avancé sur la compréhension du mode "Ecriture", mais pourtant, ça ne fonctionne pas si on force un peu la cadence.
Bien que les registres soient bien contrôlés pour envoyer les séquences d'écriture du maître, ((SSPCON2<<3)+SSPSTAT.2=0)
L'esclave, lui, fait un "OVERFLOW" SSPCON1.6 systématique dès qu'on lui envoie un rythme supérieur à "La SECONDE"
Un siècle quoi !
Pourtant le maitre surveille bien le bus libre avant d'écrire, et l'esclave ne peut pas faire plus court entre deux octets dans l'interruption
ça fonctionne si je temporise le Maaître entre les deux séquences d'une seconde.
En dessous, "OVERFLOW"
Cette erreur SSPCON1.6 est incompréhensible.
Le buffer SSPBUF est vide et pourtant !!!

Code : Tout sélectionner

    if PIR1.3 and not SSPSTAT.5 then
        adresse
=SSPBUF      
        do
        if SSPSTAT.0 then cde
=SSPBUF : exit
        loop
        do
        if SSPSTAT.0 then octet1
=SSPBUF : exit
        loop
        do
        if SSPSTAT.0 then octet2
=SSPBUF  : exit
        loop
        PIR1.3
=0
endif

Je ne trouve pas pourquoi.

Problème de séquence I2C entre deux PIC
satinas
Confirmé
Confirmé
Messages : 523
Enregistré en : novembre 2015

#85 Message par satinas » ven. 31 juil. 2020 16:40 lien vers la Data-Sheet : Cliquez ici

Bonjour,
valeur de FOSC ?
vitesse I2C ?

Problème de séquence I2C entre deux PIC
satinas
Confirmé
Confirmé
Messages : 523
Enregistré en : novembre 2015

#86 Message par satinas » dim. 2 août 2020 12:53 lien vers la Data-Sheet : Cliquez ici

satinas a écrit :Bonjour,
valeur de FOSC ?
vitesse I2C ?


En admettant que FOSC = 4MHz et Fscl = 100kHz, scénario possible :
Le pic exécute 10 instructions durant 1 période SCL.
En fin de réception des 8 bits du dernier octet data, tu fais très vite PIR1.3=0, donc durant le 9ème bit.
A la fin du 9ème bit PIR1.3 repasse à 1, voir datasheet.
Comme PIR1.3 est à 1, l'interruption se relance aussitôt avec SSPSTAT.5 à 1, donc PIR1.3 reste à 1, et l'interruption se relance en permanence, alors qu'il n'y a aucune réception en cours.


Retourner vers « Le forum Fantas-PIC »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité