Précédent   Forum FS Generation > Futura-Techno : les forums de l'informatique et des technologies > Électronique
Mot de passe oublié ? Inscrivez-vous !


Réponse
 
Outils de la discussion Modes d'affichage
Vieux 15/09/2007, 11h55   #1
 
Date d'inscription: septembre 2007
Âge: 89
Messages: 2
PIC16F876 en I2C

Bonjour à tous
Je travaille avec MPASM en asembleur et me pose une question sur le SSP en mode I2C
Comment peut-on savoir si l'esclave a envoyé son Ack ?
Avec un 16F84 j'utilisais une sous-routine attendant que le SDA passe à zéro mais avec le SSP il semble que ce ne soit plus nécessaire.
Quelqu'un peut-il me donner une explication car je rencontre quelques problèmes
à ce sujet.
Merci d'avance
janialbe est déconnecté   Réponse avec citation
Alt Aujourd'hui
Publicité

Beitrag Liens sponsorisés

   
Vieux 15/09/2007, 17h25   #2
 
Date d'inscription: septembre 2007
Localisation: Belgique
Âge: 27
Messages: 5
Re : PIC16F876 en I2C

Salut,

En checkant l'état du bit ACKSTAT du registre SSPCON2, tu peux savoir si tu as un reçu un ack ou non (page 70 du datasheet).

Il y a un pdf explicatif sur le site de microchip à propos du mode master i2c : http://ww1.microchip.com/downloads/en/DeviceDoc/i2c.pdf
sebastien.t est déconnecté   Réponse avec citation
Vieux 16/09/2007, 11h08   #3
 
Date d'inscription: septembre 2007
Âge: 89
Messages: 2
Re : PIC16F876 en I2C

Citation:
Envoyé par sebastien.t Voir le message
Salut,

En checkant l'état du bit ACKSTAT du registre SSPCON2, tu peux savoir si tu as un reçu un ack ou non (page 70 du datasheet).

Il y a un pdf explicatif sur le site de microchip à propos du mode master i2c : http://ww1.microchip.com/downloads/en/DeviceDoc/i2c.pdf
Merci pour ta réponse, voila ce que j'utilise

Wait
btfsc SSPCON2,ACKSTAT ; Attendre ACK de l'esclave
goto Wait ; nonACK , boucler
PAGE0 ; ACK reçu suite
return
Mais est-il nécessaire de vérifier cet ACK après un envoi ? Il semble que MSSP
le controle automatiquement en mode I2C.

Merci aussi pour le lien microchip, je vais m'y plonger
janialbe est déconnecté   Réponse avec citation
Vieux 16/09/2007, 16h38   #4
 
Date d'inscription: septembre 2007
Localisation: Belgique
Âge: 27
Messages: 5
Re : PIC16F876 en I2C

Bonjour,

Si tu fais cela, et que tu reçois un Nack, tu vas boucler indéfiniment.
Personnellement, j'ai repris les routines présentes dans le pdf. A savoir :

BANKSEL SSPCON2
btfsc SSPCON2,ACKSTAT ; Check ACK Status bit to see if I2C
goto I2CFail ; failed, skipped if successful

; Send and Check the STOP condition, wait for it to complete
BANKSEL SSPCON2
bsf SSPCON2,PEN ; Send STOP condition
call WaitMSSP ; Wait for I2C operation to complete
bcf STATUS, RP1
bcf STATUS, RP0
return

; *** SUBROUTINES & ERROR HANDLERS ***
; I2C Operation Failed code sequence - This will normally not happen,
; but if it does, a STOP is sent and the entire code is tried again.
I2CFail
BANKSEL SSPCON2
bsf SSPCON2,PEN ; Send STOP condition
call WaitMSSP ; Wait for I2C operation to complete
bcf STATUS, RP0
bcf STATUS, RP1
return

; This routine waits for the last I2C operation to complete.
; It does this by polling the SSPIF flag in PIR1.
WaitMSSP
BANKSEL PIR1 ; BANK 0
btfss PIR1,SSPIF ; Check if done with I2C operation
goto $-1 ; I2C module is not ready yet
bcf PIR1,SSPIF ; I2C module is ready, clear flag.
return
sebastien.t est déconnecté   Réponse avec citation






Réponse

Tags
recevoir ack

Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
montage pic16f876 aenur Électronique 1 21/04/2007 11h28
TRMT - liaison UART PIC16F876 smartise73 Électronique 6 19/05/2006 11h43
Pic16f876 smartise73 Électronique 1 02/05/2006 18h48
Comment Utilise Un Pic16f876 En Convertisseur Dc/dc john_deph Électronique 3 16/10/2005 00h50
PIC16F876 Blacky Électronique 1 04/02/2004 13h56


Les dernières actualités
15/10 17:58 - Etude Interphone : le téléphone portable serait peut-être cancérigène
15/10 16:27 - Le retour du podcast Futura : à télécharger sans modération
15/10 15:31 - En vidéo : le joystick vocal pour piloter un ordinateur
15/10 14:33 - En bref : Apple renouvelle sa gamme de portables MacBook
15/10 13:33 - Bientôt des cellules électriques artificielles inspirées de l'anguille ?
15/10 11:34 - Feux de forêt : l'Homme en déclenche plus que la nature depuis deux siècles
15/10 09:34 - Calvitie : de nouveaux gènes identifiés

Fuseau horaire GMT +2. Il est actuellement 23h36.


Édité par : vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. Tous droits réservés.