AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Coupleur WirelessUSB CYWUSB6935

Description détaillée

Couche matérielle - OSI1 Physical Layer.

Graphe de collaboration de Coupleur WirelessUSB CYWUSB6935:

Structures de données

struct  xWDevConfig
 Structure de stockage de la configuration du module. Plus de détails...
 
struct  xWDevRegister
 Structure de stockage d'un registre du module. Plus de détails...
 
struct  xWDevRegisterTable
 Structure de stockage d'un tableau de registres du module. Plus de détails...
 

Fonctions

eWDevDataRate eWDevGetDataRate (void)
 Renvoie la vitesse de transmission.
 
eWDevStatus eWDevGetStatus (void)
 Renvoie l'état du module.
 
int iWDevReceive (uint8_t *ucUserPacket, uint8_t *ucUserValid, int iUserBufferSize, int usTimeout)
 Réception d'un message. Plus de détails...
 
int8_t iWDevRssi (void)
 Evaluation de la qualité de la transmission La valeur renvoyée, entre 0 et 31 permet d'évaluer le bruit présent sur le canal utilisé pour la transmission.
Une valeur inférieure à 10 indique un canal relativement calme, entre 10 et 20 un canal probablement déjà utilisé et une valeur supérieure à 28 indique la présence d'un brouillage. Plus de détails...
 
const uint8_t * pucWDevGetPnCode (void)
 Lecture du PN Code courant.
 
const uint8_t * pucWDevMid (void)
 Lecture des 4 octets de l'identifiant de fabrication (REG_MID)
 
uint8_t ucWDevGetChannel (void)
 Lecture du canal de réception (REG_CHANNEL)
 
uint8_t ucWDevGetCrystal (void)
 Lecture de la capacité d'ajustement de la fréquence du quartz (REG_CRYSTAL_ADJ) Plus de détails...
 
uint8_t ucWDevGetPaBias (void)
 Lecture du niveau d'amplification à l'emission (REG_PA)
 
uint8_t ucWDevGetReg (uint8_t Address)
 Lecture d'un registre octet du module radio. Plus de détails...
 
uint8_t ucWDevGetSynthLockCount (void)
 Lecture du délai de verrouillage du synthetiseur par pas de 2 us(REG_SYN_LOCK_CNT)
 
uint8_t ucWDevGetThresholdHigh (void)
 Lecture du seuil de réception du niveau haut (REG_THRESHOLD_H)
 
uint8_t ucWDevGetThresholdLow (void)
 Lecture du seuil de réception du niveau bas (REG_THRESHOLD_L)
 
uint8_t ucWDevGetX13Out (void)
 Lecture de l'activation de la broche X13OUT (REG_PA) Plus de détails...
 
uint8_t ucWDevRevId (void)
 Lecture de l'identifiant de revision (REG_ID)
 
void vWDevDisable (void)
 Arrête la transmission ou la réception.
 
void vWDevEnable (uint8_t Tx)
 Passe le module en attente de réception ou de transmission. Plus de détails...
 
void vWDevInit (eWDevDataRate DataRate)
 Initialise le module radio L'initialisation se fait avec les valeurs par défaut correspondants à la vitesse de transmission DataRate passée en paramètre. Plus de détails...
 
void vWDevRxCB (uint8_t *Data)
 Gestionnaire de réception radio Renvoie l'information reçue à la couche supérieure. Plus de détails...
 
void vWDevSaveConfigToEEPROM (void)
 Sauvegarde la configuration courante en EEPROM. Plus de détails...
 
void vWDevSetChannel (uint8_t Value)
 Modification du canal de réception (REG_CHANNEL)
 
void vWDevSetCrystal (uint8_t Capacitance)
 Ajustement de la fréquence du quartz (REG_CRYSTAL_ADJ) Permet d'ajuster la capacité parallèle du quartz 13 Mhz afin de le régler précisement la fréquence à 13 MHz. La capacité peut être ajustée par pas de 0.135 pF entre 8.65 et 17.15 pF. Plus de détails...
 
void vWDevSetDataRate (eWDevDataRate DataRate)
 Réinitialise le module radio avec une nouvelle vitesse de transmission. Plus de détails...
 
void vWDevSetMid (const uint8_t *Mid)
 Modifie les 4 octets de l'identifiant de fabrication La modificiation se fait en RAM. Elle est perdue lors d'un RESET. Attention, normalement le MID est fourni par le fabricant du module et n'est pas accessible en écriture. La modification du MID risque de provoquer des conflits sur le réseau (si un autre node a le même MID) Plus de détails...
 
void vWDevSetPaBias (uint8_t Value)
 Modification du niveau d'amplification à l'emission (REG_PA)
 
void vWDevSetPnCode (const uint8_t *PnCode)
 Modification du PN Code. Plus de détails...
 
void vWDevSetPnCode_P (const uint8_t *PnCode)
 Modification du PN Code. Plus de détails...
 
void vWDevSetReg (uint8_t Address, uint8_t Value)
 Ecriture dans un registre octet du module radio. Plus de détails...
 
void vWDevSetSynthLockCount (uint8_t Value)
 Modification du délai de verrouillage du synthetiseur par pas de 2 us(REG_SYN_LOCK_CNT)
 
void vWDevSetThresholdHigh (uint8_t Value)
 Modification du seuil de réception du niveau haut (REG_THRESHOLD_H)
 
void vWDevSetThresholdLow (uint8_t Value)
 Modification du seuil de réception du niveau bas (REG_THRESHOLD_L)
 
void vWDevSetup (const xWDevRegister *Regs, uint8_t Size)
 Charge les registres du module radio à partir d'un tableau en RAM. Plus de détails...
 
void vWDevSetup_P (const xWDevRegister *Regs, uint8_t Size)
 Charge les registres du module radio à partir d'un tableau en FLASH. Plus de détails...
 
void vWDevSetupFromTable_P (const xWDevRegisterTable *SetupTable, uint8_t Index)
 Charge les registres du module radio à partir d'un tableau de configuration en FLASH. Plus de détails...
 
void vWDevSetX13Out (uint8_t flag)
 Active ou désactive la broche X13OUT du module radio. Plus de détails...
 
void vWDevSleep (bool Sleep)
 Endort ou réveille le module afin d'économiser de l'énergie Le module est à l'état statique. Les registres du module ne sont pas modifiés. Plus de détails...
 
void vWDevTransmit (const uint8_t *Data, uint8_t Length)
 Transmission d'un message. Plus de détails...
 
void vWDevWaitStatus (eWDevStatus eStatus)
 Attends que le module passe à l'état Status.
 

Macros

#define WDEV_MID_SIZEOF   4
 
#define WDEV_REGTABLE_SIZEOF(r)   (sizeof(r)/sizeof(xWDevRegister))
 Cacul du nombre de registres dans un tableau de registres xWDevRegister.
 
#define WDEV_RXDATA   1
 
#define WDEV_RXSTAT   0
 
#define WDEV_RXVALID   2
 

Définitions de type

typedef struct xWDevConfig xWDevConfig
 Structure de stockage de la configuration du module.
 
typedef struct xWDevRegister xWDevRegister
 Structure de stockage d'un registre du module.
 
typedef struct xWDevRegisterTable xWDevRegisterTable
 Structure de stockage d'un tableau de registres du module.
 

Énumérations

enum  eWDevDataRate { WDEV_RATE_EEPROM = 0, WDEV_RATE_16KBPS = 1, WDEV_RATE_64KBPS = 2 }
 Différentes vitesse de transmission.
 
enum  eWDevStatus {
  WDEV_IDLE = 0x00, WDEV_TX = 0x01, WDEV_RX = 0x02, WDEV_BUSY = 0x04,
  WDEV_TXBUSY = (WDEV_TX | WDEV_BUSY)
}
 Différents états du module. Plus de détails...
 

Documentation du type de l'énumération

Différents états du module.

Valeurs énumérées
WDEV_IDLE 

Disponible

WDEV_TX 

Transmission validée

WDEV_RX 

Réception validée

WDEV_BUSY 

Occupé

WDEV_TXBUSY 

Transmission en cours

Définition à la ligne 62 du fichier device.h.

62  {
63  WDEV_IDLE = 0x00,
64  WDEV_TX = 0x01,
65  WDEV_RX = 0x02,
66  WDEV_BUSY = 0x04,
68 } eWDevStatus;
eWDevStatus
Différents états du module.
Definition: device.h:62
Definition: device.h:65
Definition: device.h:64

Documentation des fonctions

int iWDevReceive ( uint8_t *  ucUserPacket,
uint8_t *  ucUserValid,
int  iUserBufferSize,
int  usTimeout 
)

Réception d'un message.

Paramètres
ucUserPacketBuffer pour stocker les octets reçus
ucUserValidBuffer pour stocker les octets de validation
iUserBufferSizeTaille des buffers ucUserPacket et ucUserValid
usTimeoutTemps d'attente avant sortie. -1 attente infinie
Renvoie
Le nombre d'octets reçus ou un nombre négatif en cas d'erreur
Note
Cette fonction est prévue pour être utilisée que dans le cas où la couche N to 1 n'est pas utilisée. La macro WDEV_TEST doit être définie lors de la compilation.
int8_t iWDevRssi ( void  )

Evaluation de la qualité de la transmission La valeur renvoyée, entre 0 et 31 permet d'évaluer le bruit présent sur le canal utilisé pour la transmission.
Une valeur inférieure à 10 indique un canal relativement calme, entre 10 et 20 un canal probablement déjà utilisé et une valeur supérieure à 28 indique la présence d'un brouillage.

Renvoie
une valeur entre 0 et 31.
Note
Cette fonction ne peut être utilisée que par un hub, il faut que la macro WUSB_CONFIG_HUB_ENABLE soit définie à la compilation.
uint8_t ucWDevGetCrystal ( void  )
inline

Lecture de la capacité d'ajustement de la fréquence du quartz (REG_CRYSTAL_ADJ)

Renvoie
valeur de la capacité entre 0 et 63. 0 correspond à 8.65 pf, 63 à 17.15 pF.
uint8_t ucWDevGetReg ( uint8_t  Address)
inline

Lecture d'un registre octet du module radio.

Paramètres
Addressadresse du registre
Renvoie
Value valeur du registre
uint8_t ucWDevGetX13Out ( void  )
inline

Lecture de l'activation de la broche X13OUT (REG_PA)

Renvoie
bCLOCK_DISABLE si désactivée, bCLOCK_ENABLE si activée.
void vWDevEnable ( uint8_t  Tx)

Passe le module en attente de réception ou de transmission.

Paramètres
rxOrTxbTX_ENABLE pour valider la transmission, bRX_ENABLE pour la réception
void vWDevInit ( eWDevDataRate  DataRate)

Initialise le module radio L'initialisation se fait avec les valeurs par défaut correspondants à la vitesse de transmission DataRate passée en paramètre.

Paramètres
DataRatevitesse de transmission. 0 pour initialiser à partir de la config en EEPROM.
void vWDevRxCB ( uint8_t *  Data)

Gestionnaire de réception radio Renvoie l'information reçue à la couche supérieure.

Paramètres
DataLe pointeur désigne 3 octets qui sont dans l'ordre le contenu des registres REG_RX_INT_STAT, REG_RX_DATA_A et REG_RX_VALID_A.
void vWDevSaveConfigToEEPROM ( void  )

Sauvegarde la configuration courante en EEPROM.

Note
Pour utiliser cette fonction, il faut avoir validé WUSB_CONFIG_EEPROM_ENABLE lors de la compilation.
void vWDevSetCrystal ( uint8_t  Capacitance)

Ajustement de la fréquence du quartz (REG_CRYSTAL_ADJ) Permet d'ajuster la capacité parallèle du quartz 13 Mhz afin de le régler précisement la fréquence à 13 MHz. La capacité peut être ajustée par pas de 0.135 pF entre 8.65 et 17.15 pF.

Paramètres
Valeurde la capacité à ajouter entre 0 et 63. 0 correspond à 8.65 pf, 63 à 17.15 pF.
Note
  • Toute valeur non comprise entre 0 et 63 est ignorée.
  • Pour utiliser cette fonction, il faut avoir validé WUSB_CONFIG_DEVICE_ADJUST_XTAL lors de la compilation.
  • L'activation ou non de la sortie X13 n'est pas modifiée.
void vWDevSetDataRate ( eWDevDataRate  DataRate)
inline

Réinitialise le module radio avec une nouvelle vitesse de transmission.

Paramètres
DataRatevitesse de transmission
void vWDevSetMid ( const uint8_t *  Mid)
inline

Modifie les 4 octets de l'identifiant de fabrication La modificiation se fait en RAM. Elle est perdue lors d'un RESET. Attention, normalement le MID est fourni par le fabricant du module et n'est pas accessible en écriture. La modification du MID risque de provoquer des conflits sur le réseau (si un autre node a le même MID)

Paramètres
Midles 4 octets du nouveau MID rangés en little endian
void vWDevSetPnCode ( const uint8_t *  PnCode)
inline

Modification du PN Code.

Paramètres
PnCodepointeur sur les 8 octets en RAM du PN Code (octet de poids faible en premier)
void vWDevSetPnCode_P ( const uint8_t *  PnCode)
inline

Modification du PN Code.

Paramètres
PnCodepointeur sur les 8 octets en FLASH du PN Code (octet de poids faible en premier)
void vWDevSetReg ( uint8_t  Address,
uint8_t  Value 
)
inline

Ecriture dans un registre octet du module radio.

Paramètres
Addressadresse du registre
Valuevaleur du registre
void vWDevSetup ( const xWDevRegister Regs,
uint8_t  Size 
)

Charge les registres du module radio à partir d'un tableau en RAM.

Paramètres
Regspointeur sur le tableau des registres
Sizenombre de registres contenus dans le tableau
void vWDevSetup_P ( const xWDevRegister Regs,
uint8_t  Size 
)

Charge les registres du module radio à partir d'un tableau en FLASH.

Paramètres
Regspointeur sur le tableau des registres
Sizenombre de registres contenus dans le tableau
void vWDevSetupFromTable_P ( const xWDevRegisterTable SetupTable,
uint8_t  Index 
)

Charge les registres du module radio à partir d'un tableau de configuration en FLASH.

Paramètres
SetupTablepointeur sur le tableau de structures xWDevRegisterTable
IndexIndex 1 correspond au premier élément du tableau
void vWDevSetX13Out ( uint8_t  flag)

Active ou désactive la broche X13OUT du module radio.

Paramètres
flagbCLOCK_DISABLE pour désactiver, bCLOCK_ENABLE pour activer
Note
Pour utiliser cette fonction, il faut avoir validé WUSB_CONFIG_DEVICE_ADJUST_XTAL lors de la compilation.
void vWDevSleep ( bool  Sleep)

Endort ou réveille le module afin d'économiser de l'énergie Le module est à l'état statique. Les registres du module ne sont pas modifiés.

Paramètres
Sleeptrue pour endormir, false pour réveiller
void vWDevTransmit ( const uint8_t *  Data,
uint8_t  Length 
)

Transmission d'un message.

Paramètres
Datapointeur sur les octets
Lengthnombre d'octets