J'ai essayé les réglages suivants avec des XBee série S1 : ils fonctionnaient très bien.
Dans un terminal faire les réglages suivants :
Coordinateur
ID = 2013
DH = 0
DL = 0
MY = 1234
CE = 1
BD = 3
AP = 2
End Device 1
ID = 2013
DH = 0
DL = 1234
MY = 1
CE = 0
BD = 3
AP = 2
D0 = 2
IR = 64
End Device 2
ID = 2013
DH = 0
DL = 1234
MY = 2
CE = 0
BD = 3
AP = 2
D0 = 2
IR = 64
Explications :
Le panID est le même pour tous.
Choix de DH, DL, MY et CE :
With Digi XBee 802.15.4 modules (also know as Digi XBee Series 1 modules), there is no penalty to using broadcasts on the coordinate to speak with your end devices.
If on the other hand you wanted to be able to establish communication between any two Digi XBee 802.15.4 modules you'd need to use unicast addressing. Unicast addressing is performed the following way:
- Set an address on each node by setting the MY parameter to a unique value
- Set the coordinator's DL parameter to the MY value of the *end device node you wish to speak with.
- Note that each end device will always be able to speak to the coordinator (the node with CE set to 1) by setting DL to 0.
BD = 3 signifie 9600 bauds
AP = 2 signifie que le mode API est choisi
D0 = 2 signifie que la broche D0 est une entrée analogique
IR = 64 impose une période entre trame de 100ms.
Voici ce que je reçois côté coordinateur :
start : 7E
longueur MSB :00
longueur LSB :0A
API identifier :83
Adresse 16 bits MSB :00
Adresse 16 bits LSB :02
Digital Channel Mask H :46
Digital Channel Mask L :00
Analog Channel Mask H :01
Analog Channel Mask L :02
Digital Samples :00
Analog samples H :02
Analog samples L :E4
Checksum :4B
start : 7E
longueur MSB :00
longueur LSB :0A
API identifier :83
Adresse 16 bits MSB :00
Adresse 16 bits LSB :01
Digital Channel Mask H :45
Digital Channel Mask L :00
Analog Channel Mask H :01
Analog Channel Mask L :02
Digital Samples :00
Analog samples H :03
Analog samples L :FF
Checksum :31
Et ainsi de suite ...
On voit que les trames issues de chacun des capteurs sont émises en alternance : une fois l'adresse 16 bits LSB est 01, puis elle est 02.
Chaque trame dure 15octets x 10 bits / 9600 = 15,6 ms. Deux trames durent 30ms. Elles sont réémises toutes les ms ce qui ne pose pas de problèmes.
Aucun commentaire:
Enregistrer un commentaire