AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR

Description détaillée

Ce module permet de transmettre ou reçevoir des informations sur le bus I2C en tant qu'esclave.
La macro TWI_SLAVE_ENABLE dans avrio-board-twi.h pour valider ce module.
Les conflits de bus sont gérés (arbitrage).

Graphe de collaboration de Bus I2C en mode esclave:

Fonctions

eTwiStatus eTwiSlaveRxCB (xQueue *pxRxPayload, eTwiStatus eStatus)
 Gestionnaire de réception esclave. Plus de détails...
 
eTwiStatus eTwiSlaveTxCB (xQueue *pxTxPayload, eTwiStatus eStatus)
 Gestionnaire de transmission esclave. Plus de détails...
 
void vTwiSetDeviceAddress (xTwiDeviceAddr xMyDeviceAddr)
 Modifie l'adresse de notre circuit en mode esclave. Plus de détails...
 

Macros

#define TWI_GENCALL   0x01
 Permet de valider la réponse à un appel général en mode esclave. Plus de détails...
 
#define TWIFRAME_DECLARE(xVarName, xBufferSize)
 Déclare une variable de type trame I2C. Plus de détails...
 
#define TWIFRAME_STATIC_DECLARE(xVarName, xBufferSize)
 Déclare une variable static de type trame I2C. Plus de détails...
 

Documentation des macros

#define TWI_GENCALL   0x01

Permet de valider la réponse à un appel général en mode esclave.

Utilisé pour un appel à la fonction vTwiSetDeviceAddress()

Définition à la ligne 384 du fichier twi.h.

#define TWIFRAME_DECLARE (   xVarName,
  xBufferSize 
)

Déclare une variable de type trame I2C.

Paramètres
xVarNameNom de la variable
xBufferSizeNombre d'octets pouvant être stockés dans la trame

Définition à la ligne 438 du fichier twi.h.

#define TWIFRAME_STATIC_DECLARE (   xVarName,
  xBufferSize 
)

Déclare une variable static de type trame I2C.

Paramètres
xVarNameNom de la variable
xBufferSizeNombre d'octets pouvant être stockés dans la trame

Définition à la ligne 447 du fichier twi.h.

Documentation des fonctions

eTwiStatus eTwiSlaveRxCB ( xQueue pxRxPayload,
eTwiStatus  eStatus 
)

Gestionnaire de réception esclave.

Cette fonction est appelée par la routine d'interruption lorsqu'une trame a été reçue en mode esclave.
Cette fonction doit être implémentée par l'utilisateur si le mode esclave a été validé dans avrio-config-twi.h .

Paramètres
pxRxPayloadPointeur sur la pile des octets reçus.
eStatus
  • TWI_SUCCESS
  • TWI_STATUS_GCALL
  • Un code négatif en cas d'erreur
Renvoie
TWI_SUCCESS ou un code d'erreur
Avertissement
Cette fonction est exécutée sous interruption. Il faut donc qu'elle soit très rapide de façon à éviter que le maître du bus ne nous interroge une nouvelle fois pendant son exécution (SLA_NACK).
eTwiStatus eTwiSlaveTxCB ( xQueue pxTxPayload,
eTwiStatus  eStatus 
)

Gestionnaire de transmission esclave.

Cette fonction est appelée par la routine d'interruption lorsque des données doivent être transmises au maître.
Cette fonction doit être implémentée par l'utilisateur si le mode esclave a été validé dans avrio-config-twi.h .

Paramètres
pxTxPayloadPointeur sur la pile des octets à transmettre.
Renvoie
TWI_SUCCESS ou un code d'erreur
Avertissement
Cette fonction est exécutée sous interruption. Il faut donc qu'elle soit très rapide de façon à éviter que le maître du bus ne nous interroge une nouvelle fois pendant son exécution (SLA_NACK).
void vTwiSetDeviceAddress ( xTwiDeviceAddr  xMyDeviceAddr)

Modifie l'adresse de notre circuit en mode esclave.

Paramètres
xMyDeviceAddrLes 7 bits de poids fort correspondent à l'adresse esclave du circuit qui doivent être différents de 0. Le bit de poids le plus faible valide la réponse à l'adresse d'appel général 0x00 (TWI_GENCALL). Mettre xMyDeviceAddr à 0 revient à invalider sa réponse en tant qu'esclave.