Bonjour,
Je travail depuis quelque temps, non sans douleur, a la mise en œuvre d'une communication sans fil entre deux Microcontrôleurs, a l'aide d'émetteurs / transmetteurs Low Cost 433 MHZ.
ce genre:
Pièce jointe 241107
Le but est de transmettre des données sur une distance d'environ 40 Mètres entre les deux cartes.
J’envoie mes données via l'uart, en appliquant un codage Manchester sur mes données avant envoi.
J’ai fait mes essais avec un baud rate compris entre 600 et 2400 avec deux stops bits (qui ont semblé donner de meilleur résultat qu'un seul), sachant que mes deux µc Atmel dispose d'un Quartz pour arrivé a la meilleure précision.
Composition d'une trame, qui doit envoyer 4 octets utiles, soit 8 octets encodés Manchester, a recevoir toutes les secondes.: (magnifique représentation )
Pièce jointe 241109
J’alimente mon Émetteur en 12V, comme l'autorise la datasheet. Tous deux sont dotés d'une antenne de 17CM .
Mais voilà, malgré cela, transmettre 8 octets / secondes a plus de 3 M me semblent compromis, j'ai très peu de trames qui arrive décodées avec un CRC correct. Mon code attend les bits de synchro (0xaa), et une fois l'ack reçu, place les 8 prochains bits dans un tableau, les décode, et vérifie le CRC.
La première étape, les bytes de synchros sont déjà bien difficilement passés. Si je fais une capture avec mon analyseur logique, du signal a la sortie de mon microcontrôleur émetteur, et sur le rx de mon module récepteur 433Mhz, je remarque que systématiquement, l'état haut est plus cours de quelques microsecondes, quelque soit le baud rate choisie. Ce qui a pour effet des États haut plus bref, et états bas plus longs que le signal original. Ce n'est pas flagrant, le signal semble très fidèle au premier coup d'oeil. Exemple @2400bps:
Pièce jointe 241112
Pièce jointe 241113
On voit le décalage de quelques microsecondes, et on voit que le décodeur de mon analyseur logique fait exactement la même erreur que mon µC a priori, il décale les bits... et ne comprend plus rien!
Alors j'en arrive enfin a la partie questions, voyez-vous, du coté configuration du uart, diverses options qui me permettrais de sécuriser mes données et la synchro Emetteur / récepteur? Que me conseillez-vous de mettre en oeuvre pour réussir ma transmission? Mon Approche de la mise en oeuvre et du problème et t'elle la bonne?
Merci à ceux qui auront la patience de me lire et de me comprendre
-----