Platine test pour module radio AMB8636

BESQUEUT

Senior Member
A vide, sans traitement , sans rien , j'aurais juste voulus essayer de recevoir des données sans erreurs , le plus vite possible . pour voir , tester et surtout comprendre son fonctionnement
Encore une fois : vous voyez des erreurs là où il n'y en a pas !
Le programme de réception ne fait rien : à fortiori, il est totalement incapable de détecter la moindre erreur !
C'est quoi une "erreur" à la réception pour vous ?
 

dje8269

Senior Member
Par contre ce serait intéressant d'avoir le signal de réception HF, mais ça, ça ne vous intéresse pas...
Je me suis donc branché sur la led de reception . il s'agit de la courbe jaune .

au montage rien n'est coupé .

analyseur_zoom.png

analyseur_zoom_general.png

C'est quoi une "erreur" à la réception pour vous ?
Pour moi , c'est quand le mesage recu n'est pas conforme au messages envoyés .

si j'envoie 99,55,1,65,66,67,68,69 , je dois recevoir le même , sinon c'est une erreur .

décidément je comprends rien a rien . je dois être sacrement stupide .je voulais juste essayer de recevoir le plus vite possible. Je vais rester optimiste ,au moins ca m’aura fait travailler un peu !
 
Last edited:

BESQUEUT

Senior Member
Je me suis donc branché sur la led de reception . il s'agit de la courbe jaune .
relire #220 ; javais dit le bleu, pas le jaune... du coup, on n'a plus les données émises...

Mais bon, on voit bien la réception des données HF, et surtout ces octets 69 qui impliquent que seule la fin de trame est reçue !
Il doit probablement manquer des numéros de trames, mais on ne voit pas la précédente trame : 70? 71? ou 72?

Si c'est confirmé, ça veut dire que le transceiver sature, et le Picaxe de réception n'y peut strictement rien !
Par contre, vous pourriez (comme déjà dit n^n fois...) utiliser des trames de 3 ou 4 octets à l'émission...
ce qui accessoirement vous permettrait peut-être de comprendre pourquoi c'est important de ne pas gaspiller des octets...

si j'envoie 99,55,1,65,66,67,68,69 , je dois recevoir le même , sinon c'est une erreur .
Actuellement, vous savez ce que le transceiver tente d'envoyer au Picaxe, mais vous ne savez absolument pas ce que le Picaxe reçoit.
Tant que tous les octets sont là, quel que soit la taille des paquets, il reste possible que le Picaxe reçoive l'intégralité des trames.
 
Last edited:

BESQUEUT

Senior Member
Ah oui !!!
Là, on voit clairement que le transceiver sature :
- vous lui injectez des données alors qu'l n'a pas fini d'émettre la précédente trame.
- à l'émission, il s'en sort encore en calmant le jeu avec le RTS,
- mais le transceiver de réception part clairement en vrille !
- au début, il s'en sort encore : trames 42 et 43,
- mais je pense qu'on va attendre longtemps la trame 44...
- on voit aussi qu'il y a 4 trames de décalage entre l'émission et la réception... les buffers doivent saturer... c'est la misère...
- voir #243...
 
Last edited:

dje8269

Senior Member
Là, on voit clairement que le transceiver sature :
Ahh ? Lol , au moins ca parle a quelqu'un .

- on voit aussi qu'il y a 4 trames de décalage entre l'émission et la réception... les buffers doivent saturer... c'est la misère...
Je pensais que c’était simplement du fait du traitement des infos a envoyer + le déplacement des ondes radio + le traitement a la réception , qui faisait ce decalage
 

BESQUEUT

Senior Member
Je pensais que c’était simplement du fait du traitement des infos a envoyer + le déplacement des ondes radio + le traitement a la réception , qui faisait ce decalage
Pour une trame, limite 2 quand il y a des perturbations radio, c'est possible.
4 trames : ça indique clairement que les transceivers n'arrivent plus à transmettre tout ce qu'on leur demande...
En même temps, on est déjà largement au delà des besoins du CDC.
Vous vouliez savoir où est la limite ? ben vous l'avez... (30 trames de 8 octets/s : c'est trop avec ces réglages...)

3 pistes :
- trames plus courtes : ça c'est facile à tester,
- augmenter la vitesse UART , diminuer les latences,... nécessite logiciel ad hoc... (A ce rythme, on voit que les transceivers passent pas mal de temps à lire et écrire les UARTs. Même avec des trames plus courtes, ça aiderait... idem pour les 5ms à chaque trame Vu le timing imposé, ça devient non négligeable...)
- augmenter la vitesse HF : probablement très efficace, mais la portée va baisser. Il faudra donc faire des études de portée pour savoir où est le meilleur compromis.

NB : Je suppose qu'il ne doit pas y avoir des km entre l'émetteur et le récepteur, même pas des mètres...
donc à 300 000 km/s, ça m'étonnerait qu'on puisse mesurer le temps lié au "déplacement des ondes radio" même s'il n'est effectivement pas nul...
 
Last edited:

dje8269

Senior Member
- trames plus courtes : ça c'est facile à tester,
Oui avec 4 octets y'a du mieux , mais certaines sautent encore .

- augmenter la vitesse UART , diminuer les latences,... nécessite logiciel ad hoc... (A ce rythme, on voit que les transceivers passent pas mal de temps à lire et écrire les UARTs. Même avec des trames plus courtes, ça aiderait... idem pour les 5ms à chaque trame Vu le timing imposé, ça devient non négligeable...)
Toujours pas de réponse sur ma demande de logiciel ! Il faut certainement qu'ils prennent interprète pour comprendre mon anglais lol .

NB : Je suppose qu'il ne doit pas y avoir des km entre l'émetteur et le récepteur, même pas des mètres...
Une quinzaine de centimètres tout au plus ! peut être que ca sature quelques choses, qu'il soit trop proches . De toute façon à la maison je peux faire des miracles .

Je sature , vous aussi certainement , et les transceiver aussi . Ce qui m’inquiète, c'est que pour l'instant, je test que sur 1 émission . en sachant qu'il faut qu'il reçoive aussi entre temps . , je vais finir avec 250ms entre deux infos à traiter et le VHL sera inconduisible ;

Si vous avez plus internet , je suis pas dans la mouise !! . je vais continuer mes test en me rapprochant d'une trame reel avec aller et retour ;

Mon jeu final ; serait vraiment de simuler comme une vrai communication .

- envoie de 4 octets le plus vite possible sans erreurs d’interprétation a l'arrivée .
- avec 2 fois par seconde l'envoie d"une autre trame simulant les infos TOR par exemple .
amis egalement 2 fois par secondes recevoir des infos du VHl .

C'est pas gagné mon affaire
 

BESQUEUT

Senior Member
Oui avec 4 octets y'a du mieux , mais certaines sautent encore .
Qu'entendez-vous par là ?
Les trames sont morcelées en paquets, mais tous les octets sont là ? ou bien il manque des octets ?
- envoie de 4 octets le plus vite possible sans erreurs d’interprétation a l'arrivée .
- avec 2 fois par seconde l'envoie d"une autre trame simulant les infos TOR par exemple .
amis egalement 2 fois par secondes recevoir des infos du VHl .
Mauvaise approche.
La fréquence d'exploitation est variable entre 2 trames/seconde et 12 ou 16 trames/s au maximum : inutile d'étudier ce qui se passe au delà.
Par contre, il est utile d'étudier ce qui se passe en cas de perturbation (distance, parasites)
Vous pouvez simuler cela en augmentant ponctuellement le débit jusqu'à saturation (par exemple tant qu'on appuie sur un bouton, on divise la pause par 2 ou 3), puis en revenant à la normale, ce qui aura des effets à peu près similaires sur les transceivers.
Avant toutes choses : mettre au point un programme qui vérifie automatiquement le taux de trames conformes reçues. Comme vous l'avez dit, c'est ça qui vous intéresse. Mais en fait vous n'avez pas avancé dans ce domaine...
Puis s'assurer qu'après un merdouillage, le récepteur est effectivement capable de reprendre le flux d'info. Ça oui c'est intéressant et ça suppose un programme pas trop mal foutu.

Le fait d'ajouter une trame supplémentaire toutes les 6 trames est amusant mais ne devrait pas changer fondamentalement le problème.
Par contre, il y a un gros travail de spécification sur le contenu et la signalisation des trames, encore plus si vous utilisez un qualifier...

Le fait de tester le retour d'info suppose que vous ayez défini l'architecture générale (il y a encore de nombreux points sur lesquels vous compliquez inutilement les flux) et que votre plateforme de test soit représentative de cette architecture.
 
Last edited:

dje8269

Senior Member
Qu'entendez-vous par là ?
Les trames sont morcelées en paquets, mais tous les octets sont là ? ou bien il manque des octets ?
En image, car moi je sais pas trop quoi vous dire .
n'hesitez pas a me dire si vous voulez d'autre choses ?

analyseur.png
analyseur_zoom-genral.png

Mais en fait vous n'avez pas avancé dans ce domaine...
c'est pas faux .

Pour tout le reste j'ai pas tout saisi. je dispose de 20M2 de 14M2 et de 20X2 . a la limite je pourrait aller au travail en récupérer genre 28X2 quand je recevrais ma commande par l'afficheur et le cable !

Afin de dé-saturer , je laisse tomber mes tests de rapidité pourris . Je vais donc travailler , avec ce qui focntionne ; c'est a dire avec une pause de 50ms en emission ( pause 100 a 8Mhz).

Je fais donc essayer de compter le nombre de trame loupé comme vous me le suggerrez !
 
Last edited:

BESQUEUT

Senior Member
En image, car moi je sais pas trop quoi vous dire .
n'hesitez pas a me dire si vous voulez d'autre choses ?
Il arrive presque a émettre à chaque fois avant de recevoir de nouvelles données. En supprimant le temps mort de 5ms et en passant à 19200 sur l'UART, je pense que ça passerait.

Par contre, difficile de dire ce qui se passe à la réception : il faudrait connaitre le contenu des trames vertes et jaunes, ou du moins :
- savoir si tous les octets sont bien là dans les trames vertes,
- connaitre le décalage entre les trames jaunes et vertes.

Pour tout le reste j'ai pas tout saisi. je dispose de 20M2 de 14M2 et de 20X2 . a la limite je pourrait aller au travail en récupérer genre 28X2 quand je recevrais ma commande par l'afficheur et le cable !

Afin de dé-saturer , je laisse tomber mes tests de rapidité pourris . Je vais donc travailler , avec ce qui focntionne ; c'est a dire avec une pause de 50ms en emission ( pause 100 a 8Mhz).
Je vais donc essayer de compter le nombre de trame loupé comme vous me le suggerrez !
Le 20X2 peut suffire, mais en background receive, vous ne verrez que 30 trames de 4 octets au lieu de 256 avec un 28X2.
Si vous voulez tester l'aller/retour, il faut minimum 4 picaxes, dont au moins 2 X2 en réception.


OUI ça me semble bien : 20 trames/s c'est amplement suffisant.
Rien n'empêche d'avoir un bouton pour passer temporairement à 50 trames/s (20ms) ce qui va faire merder l'ensemble un peu comme une grosse parasite ou une perte de communication.
En appuyant plus ou moins longtemps, vous pourrez peut-être même provoquer des pannes plus ou moins grave.

Eteindre l'émetteur n'a pas le même effet : les buffers se vident proprement, et ça repart tranquille sur une belle trame entière. Il est probable que le récepteur ne sera pas perturbé dans ce cas...

Le but est en premier lieu de s'assurer qu'après le merdage, la communication reprends normalement,
et secondairement que vous détectez et même mesurez le nombre de trames perdues.

Apparemment, vous êtes plus à l'aise avec le serin.
Si ça marche de façon fiable, y compris après un merdage provoqué, pourquoi pas.
Mais je pense que vous aurez du mal avec cet outil, et que seul le hserin est vraiment performant.
En outre, le hserin permet des vitesses plus élevées au niveau de l'UART.
 
Last edited:

dje8269

Senior Member
Apparemment il suffit de s'enregistrer :
Oui , mais ils doivent valider le compte !

OUI ça me semble bien : 20 trames/s c'est amplement suffisant.
Oui oui c'est parfait, c’était pour mieux comprendre et tester par la même occasion . ca ne c'est pas passé comme prévu ! pas lol .

Le but est en premier lieu de s'assurer qu'après le merdage, la communication reprends normalement
Je vais essayer de faire ca .

Si vous voulez tester l'aller/retour, il faut minimum 4 picaxes, dont au moins 2 X2 en réception.
J'ai ce qu'il faut ! dans ce cas ; mais je vais d'abord faire le test des trames , ce ne m'oblige pas a changer mon hard ( a part mettre des 20X2 a la place des 14M2)

Apparemment, vous êtes plus à l'aise avec le serin.
Pour le moment effectivement je suis plus à l'aise . la configuration du hserin reste problématique pour moi . j'y vais petit a petit
 
Last edited:

BESQUEUT

Senior Member
ca ne c'est pas passé comme prévu ! pas lol .
ben forcément : à force d'augmenter le débit, il fallait bien s'attendre à ce que ça finisse par merder ! Et il vous reste un peu de tuning à faire quand vous aurez le logiciel ad hoc.
Je suis curieux de connaitre la portée effective de ces bidules...
 
Last edited:

dje8269

Senior Member
Ils annoncent a 20Kms , mais bien evidemment dans des conditions optimales aussi bien hard que soft .

mais d'aprés ce que j'ai lu la modulation 2 G-FSK est vraiment efficace, et procure une très grande sensibilité . En tout cas vu de pret , ca parait vraiment etre du tres tres bon matos . du moment qu'il porte 1 km sans perte de données avec un émetteur vidéo a coté ! moi ca me va

Voila ce que j'ai fais:

je compare la nouvelle valeur recue , avec l'ancienne valeur recue ( prealablement enregistrer) + 1 .

Si ce n'est pas la même, c'est donc qu'une trame a sauté , ou si les valeurs recues ne sont pas exact , alors j'allume une led .


Code:
[color=Green]'####################################   Initialisation   ####################################[/color]
[color=Blue]setfreq M8
pause [/color][color=Navy]1000[/color]
[color=Green]'####################################   Programme Principal   ####################################[/color]
[color=Purple]b0 [/color][color=DarkCyan]= [/color][color=Navy]65535[/color]
[color=Blue]do
      
      
serin B.1[/color][color=Black],[/color][color=Blue]T9600_8[/color][color=Black], [/color][color=Purple]b0[/color][color=Black],[/color][color=Purple]b1[/color][color=Black],[/color][color=Purple]b2[/color][color=Black],[/color][color=Purple]b3[/color][color=Black],[/color][color=Purple]b4[/color][color=Black],[/color][color=Purple]b5[/color][color=Black],[/color][color=Purple]b6[/color][color=Black],[/color][color=Purple]b7

w9 [/color][color=DarkCyan]= [/color][color=Purple]w9 [/color][color=DarkCyan]+ [/color][color=Navy]1[/color]

[color=Blue]if [/color][color=Purple]w9 [/color][color=DarkCyan]= [/color][color=Purple]w0 [/color][color=DarkCyan]and [/color][color=Purple]b2[/color][color=DarkCyan]=[/color][color=Navy]65 [/color][color=DarkCyan]and [/color][color=Purple]b3[/color][color=DarkCyan]=[/color][color=Navy]66 [/color][color=DarkCyan]and [/color][color=Purple]b4[/color][color=DarkCyan]=[/color][color=Navy]67 [/color][color=DarkCyan]and [/color][color=Purple]b5[/color][color=DarkCyan]=[/color][color=Navy]68 [/color][color=DarkCyan]and [/color][color=Purple]b6[/color][color=DarkCyan]=[/color][color=Navy]69 [/color][color=DarkCyan]and [/color][color=Purple]b7[/color][color=DarkCyan]=[/color][color=Navy]70 [/color][color=Blue]then
      
      else
            high led
            pause [/color][color=Navy]20
            [/color][color=Blue]low led
end if[/color]

[color=Purple]w9 [/color][color=DarkCyan]= [/color][color=Purple]w0[/color]

[color=Blue]loop[/color]
A part au démarrage quand les valeurs ne sont pas encore enregistrés ( quand w0 vaut 0 et 1), mais c'est normal . tout va bien .

En attendant votre validation , voir , si j'ai fais ce qu'il fallait . j'ai rajouter l'option BP , comme vous l'avez dis .

Ca donne ca :

Code:
[color=Navy]#PICAXE [/color][color=Black]14M2[/color]

[color=Green]'####################################   Configuration   ####################################[/color]
[color=Blue]Symbol [/color][color=Purple]BP [/color][color=DarkCyan]= [/color][color=Purple]pinC.3[/color]
[color=Blue]Symbol led [/color][color=DarkCyan]= [/color][color=Blue]C.4
Symbol [/color][color=Purple]RTS [/color][color=DarkCyan]= [/color][color=Purple]pinB.2[/color]
[color=Blue]Symbol CTS [/color][color=DarkCyan]= [/color][color=Blue]B.5[/color]


[color=Green]'####################################   Initialisation   ####################################[/color]
[color=Blue]setfreq M8[/color]
[color=Purple]b0 [/color][color=DarkCyan]= [/color][color=Navy]0[/color]
[color=Purple]b1 [/color][color=DarkCyan]= [/color][color=Navy]1[/color]
[color=Blue]pause [/color][color=Navy]1000[/color]

[color=Green]'####################################   Programme Principal   ####################################[/color]

[color=Blue]do

if [/color][color=Purple]RTS [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Blue]then
      
            high led
            inc [/color][color=Purple]w0
            [/color][color=Blue]serout B.3[/color][color=Black],[/color][color=Blue]T9600_8[/color][color=Black], [/color][color=Blue]([/color][color=Purple]b0[/color][color=Black],[/color][color=Purple]b1[/color][color=Black],[/color][color=Red]"A"[/color][color=Black],[/color][color=Red]"B"[/color][color=Black],[/color][color=Red]"C"[/color][color=Black],[/color][color=Red]"D"[/color][color=Black],[/color][color=Red]"E"[/color][color=Black],[/color][color=Red]"F"[/color][color=Blue])
            low led
            
      if [/color][color=Purple]BP [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then
            pause [/color][color=Navy]60
            [/color][color=Blue]else
            pause [/color][color=Navy]100   [/color][color=Green]'Simulation du programme qui s'écoule
      [/color][color=Blue]end if

endif

loop[/color]
Donc sans appuyer , va fonctionne parfaitement ma led ne s'allume jamais ; Quand j'appuie ma led clignote trés souvent . quand je relâche , elle ne clignote plus .

J'ai continué , augmentant de 10 par 10 en partant d'une pause 20 . ca bug completement en dessous de pause80 . Le led est allumée en permanence . Par contre dès que je relache ca se recale trés bien et la led s'eteint.
a pause80, ca bug tres fortement, a pause90, ca bug beaucoup 3 fois sur 4 et a pause 100 ben c'est parfait .

Je vais refaire ce test avec seulement 4 octets .

bizarrement le résultat est presque le même, avant une tendance a amélioration. avec une pause90 ça fonctionne parfaitement led éteinte a en permanence.
Avec une pause80 led allumé très souvent
A pause 70 et moins led en permanence allumée

J'en déduis qu'en diminuant le nombre d'octet on gagne presque rien !
 
Last edited:

BESQUEUT

Senior Member
Vous voila prêt pour les tests de distance...
Perso, je n'aime pas trop les pauses à la réception; J'aurais plutôt écrit :
Code:
if w9 = w0 and b2=65 and b3=66 and b4=67 and b5=68 and b6=69 and b7=70 then
                  low led
      else
                  high led
      end if
Les flashs risquent d'être très courts, mais on ne bride pas le programme juste pour afficher les erreurs...
 

dje8269

Senior Member
if w9 = w0 and b2=65 and b3=66 and b4=67 and b5=68 and b6=69 and b7=70 then
low led
else
high led
end if
Oui c'est marrant , car c'est exactement ce que j'ai fais par la suite lol .

Je suis en train de vérifier montage avec un 20X2 en réception pour faire ca avec hserin .

Par contre pourriez vous commenter un peu votre petit programme , car je n'ai pas compris la premiere boucle ?

la seconde c'est bon, vous affiché les valeurs qui ont été enregistres dans le sracthpad . 100 fois les 8 octets a la suite .
comment enregister vous les valeurs il n'y as pas de hserin ?
 

dje8269

Senior Member
Ok ca avance bien, mais j'avoue ne pas avoir trop compris le fai d'enregistrer les valeurs , en tout cas ca aura eu le mérite de me faire réviser mon scratchpad , ça faisait longtemps .

Voici un test qui enregistre 16 trames dans les cratchpad d'un 20X2 , et qui les restitue VIA un sertxd, pour voir si des erreurs se glissent.

Code:
[color=Navy]#PICAXE [/color][color=Black]20X2[/color]

[color=Green]'####################################   Configuration   ####################################[/color]
[color=Blue]Symbol [/color][color=Purple]BP [/color][color=DarkCyan]= [/color][color=Purple]pinC.6[/color]
[color=Blue]Symbol led [/color][color=DarkCyan]= [/color][color=Blue]C.4
Symbol [/color][color=Purple]RTS [/color][color=DarkCyan]= [/color][color=Purple]pinB.1[/color]
[color=Blue]Symbol CTS [/color][color=DarkCyan]= [/color][color=Blue]B.4[/color]
[color=Green]'####################################   Initialisation   ####################################[/color]
[color=Blue]setfreq M8
hsersetup B9600_8[/color][color=Black], [/color][color=Navy]%00001[/color]
[color=Blue]pause [/color][color=Navy]1000[/color]
[color=Green]'####################################   Programme Principal   ####################################[/color]

[color=Blue]do
      
hserin [/color][color=Navy]0[/color][color=Black],[/color][color=Navy]128 [/color]

[color=Purple]ptr [/color][color=DarkCyan]= [/color][color=Navy]0[/color]
[color=Blue]for [/color][color=Purple]b10[/color][color=DarkCyan]=[/color][color=Navy]1 [/color][color=Blue]to [/color][color=Navy]16
        [/color][color=Blue]sertxd ([/color][color=Black]#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])
   next [/color][color=Purple]b10
 [/color][color=Blue]sertxd ([/color][color=Red]"----------------------------------------------"[/color][color=Black],[/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])
loop[/color]
Code:
192 1 65 66 67 68 69 70
2 1 65 66 67 68 69 70
3 1 65 66 67 68 69 70
4 1 65 66 67 68 69 70
5 1 65 66 67 68 69 70
6 1 65 66 67 68 69 70
7 1 65 66 67 68 69 70
8 1 65 66 67 68 69 70
9 1 65 66 67 68 69 70
10 1 65 66 67 68 69 70
11 1 65 66 67 68 69 70
12 1 65 66 67 68 69 70
13 1 65 66 67 68 69 70
14 1 65 66 67 68 69 70
15 1 65 66 67 68 69 70
16 1 65 66 67 68 69 70
----------------------------------------------
28 1 65 66 67 68 69 70
29 1 65 66 67 68 69 70
30 1 65 66 67 68 69 70
31 1 65 66 67 68 69 70
32 1 65 66 67 68 69 70
33 1 65 66 67 68 69 70
34 1 65 66 67 68 69 70
35 1 65 66 67 68 69 70
36 1 65 66 67 68 69 70
37 1 65 66 67 68 69 70
38 1 65 66 67 68 69 70
39 1 65 66 67 68 69 70
40 1 65 66 67 68 69 70
41 1 65 66 67 68 69 70
42 1 65 66 67 68 69 70
43 1 65 66 67 68 69 70
----------------------------------------------
55 1 65 66 67 68 69 70
56 1 65 66 67 68 69 70
57 1 65 66 67 68 69 70
58 1 65 66 67 68 69 70
59 1 65 66 67 68 69 70
60 1 65 66 67 68 69 70
61 1 65 66 67 68 69 70
62 1 65 66 67 68 69 70
63 1 65 66 67 68 69 70
64 1 65 66 67 68 69 70
65 1 65 66 67 68 69 70
66 1 65 66 67 68 69 70
67 1 65 66 67 68 69 70
68 1 65 66 67 68 69 70
69 1 65 66 67 68 69 70
70 1 65 66 67 68 69 70
----------------------------------------------
82 1 65 66 67 68 69 70
83 1 65 66 67 68 69 70
84 1 65 66 67 68 69 70
85 1 65 66 67 68 69 70
86 1 65 66 67 68 69 70
87 1 65 66 67 68 69 70
88 1 65 66 67 68 69 70
89 1 65 66 67 68 69 70
90 1 65 66 67 68 69 70
91 1 65 66 67 68 69 70
92 1 65 66 67 68 69 70
93 1 65 66 67 68 69 70
94 1 65 66 67 68 69 70
95 1 65 66 67 68 69 70
96 1 65 66 67 68 69 70
97 1 65 66 67 68 69 70
----------------------------------------------
109 1 65 66 67 68 69 70
110 1 65 66 67 68 69 70
111 1 65 66 67 68 69 70
112 1 65 66 67 68 69 70
113 1 65 66 67 68 69 70
114 1 65 66 67 68 69 70
115 1 65 66 67 68 69 70
116 1 65 66 67 68 69 70
117 1 65 66 67 68 69 70
118 1 65 66 67 68 69 70
119 1 65 66 67 68 69 70
120 1 65 66 67 68 69 70
121 1 65 66 67 68 69 70
122 1 65 66 67 68 69 70
123 1 65 66 67 68 69 70
124 1 65 66 67 68 69 70
----------------------------------------------
136 1 65 66 67 68 69 70
137 1 65 66 67 68 69 70
138 1 65 66 67 68 69 70
139 1 65 66 67 68 69 70
140 1 65 66 67 68 69 70
141 1 65 66 67 68 69 70
142 1 65 66 67 68 69 70
143 1 65 66 67 68 69 70
144 1 65 66 67 68 69 70
145 1 65 66 67 68 69 70
146 1 65 66 67 68 69 70
147 1 65 66 67 68 69 70
148 1 65 66 67 68 69 70
149 1 65 66 67 68 69 70
150 1 65 66 67 68 69 70
151 1 65 66 67 68 69 70
----------------------------------------------
163 1 65 66 67 68 69 70
164 1 65 66 67 68 69 70
165 1 65 66 67 68 69 70
166 1 65 66 67 68 69 70
167 1 65 66 67 68 69 70
168 1 65 66 67 68 69 70
169 1 65 66 67 68 69 70
170 1 65 66 67 68 69 70
171 1 65 66 67 68 69 70
172 1 65 66 67 68 69 70
173 1 65 66 67 68 69 70
174 1 65 66 67 68 69 70
175 1 65 66 67 68 69 70
176 1 65 66 67 68 69 70
177 1 65 66 67 68 69 70
178 1 65 66 67 68 69 70
----------------------------------------------
Plutot rassurant !
 

BESQUEUT

Senior Member
Par contre pourriez vous commenter un peu votre petit programme , car je n'ai pas compris la premiere boucle ?
Oui, c'est toute la beauté du background receive : il n'y a strictement rien à faire !
On aurait pu écrire :
hsersetup B9600_8,1
do
loop until hserptr>127

hserptr grandit tout seul comme un grand en arrière plan...
J'ai juste allumé la LED quand on reçoit un octet histoire de faire quelque chose.
Mais en principe, c'est ici que se trouverait le coeur du programme.


Vous vous en sortez comme un grand sans ça.
Ca pourrait être plus délicat si vous faites plus de choses à la réception, genre régler des moteurs ou piloter des servos et TOR...
Si ça vous prends un peu trop de temps, vous risquez de rater la prochaine trame.
Par contre le background receive fait ça (en principe...) en parallèle
et il suffit d'aller lire les dernières valeurs enregistrées quand vous en avez besoin.
NB : les dernières valeurs enregistrées sont à partir de :
ptr=hserptr-8
mais attention au rollover à 128 sur un 20X2 ou 1024 sur un 28X2...

NB : pour votre prochaine commande, pensez à prendre les résonnateurs externes pour passer les X2 en EM64 ; je pense que ça pourra vous aider...
 

BESQUEUT

Senior Member
Ok ca avance bien, mais j'avoue ne pas avoir trop compris le fai d'enregistrer les valeurs , en tout cas ca aura eu le mérite de me faire réviser mon scratchpad , ça faisait longtemps .

Voici un test qui enregistre 16 trames dans les cratchpad d'un 20X2 , et qui les restitue VIA un sertxd, pour voir si des erreurs se glissent.

Plutot rassurant !
SUPER même !
La resynchro automatique après panne est très encourageante. J'aurais cru ça plus délicat. Tant mieux.
Ce programme est très bien pour regarder ce qui se passe en cas de problème, mais peut-être moins commode pour les tests de distance car il faut un PC ou un LCD, et c'est moins instantané.

De plus, il montre comment faire en hardware, ce qui sera nécessaire si vous poussez le baudrate de l'UART.

Il faudrait provoquer des erreurs avec le poussoir, pour voir ce qui est reçu dans ce cas.

En réel, ce sera plus difficile, voire impossible de détecter des trames erronnées. Il faudra peut-être un checksum.
Mais en principe, les tranceivers s'en occupent et normalement, ou bien vous ne recevez rien, ou bien c'est bon.
A tester donc.
 

dje8269

Senior Member
NB : pour votre prochaine commande, pensez à prendre les résonnateurs externes pour passer les X2 en EM64 ; je pense que ça pourra vous aider...
Je posséde des quartz , mais je sais pas lequel il faut pour un 64Mhz ?

Il faudrait provoquer des erreurs avec le poussoir, pour voir ce qui est reçu dans ce cas.
c'est fait

Quand j'appui sur le bouton je passe avec une pause50 ( 25ms) .

Code:
[color=Navy]#PICAXE [/color][color=Black]14M2[/color]

[color=Green]'####################################   Configuration   ####################################[/color]
[color=Blue]Symbol [/color][color=Purple]BP [/color][color=DarkCyan]= [/color][color=Purple]pinC.3[/color]
[color=Blue]Symbol led [/color][color=DarkCyan]= [/color][color=Blue]C.4
Symbol [/color][color=Purple]RTS [/color][color=DarkCyan]= [/color][color=Purple]pinB.2[/color]
[color=Blue]Symbol CTS [/color][color=DarkCyan]= [/color][color=Blue]B.5[/color]


[color=Green]'####################################   Initialisation   ####################################[/color]
[color=Blue]setfreq M8[/color]
[color=Purple]b0 [/color][color=DarkCyan]= [/color][color=Navy]0[/color]
[color=Purple]b1 [/color][color=DarkCyan]= [/color][color=Navy]1[/color]
[color=Blue]pause [/color][color=Navy]1000[/color]

[color=Green]'####################################   Programme Principal   ####################################[/color]

[color=Blue]do

if [/color][color=Purple]RTS [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Blue]then
      
            high led
            inc [/color][color=Purple]w0
            [/color][color=Blue]serout B.3[/color][color=Black],[/color][color=Blue]T9600_8[/color][color=Black], [/color][color=Blue]([/color][color=Purple]b0[/color][color=Black],[/color][color=Purple]b1[/color][color=Black],[/color][color=Red]"A"[/color][color=Black],[/color][color=Red]"B"[/color][color=Black],[/color][color=Red]"C"[/color][color=Black],[/color][color=Red]"D"[/color][color=Black],[/color][color=Red]"E"[/color][color=Black],[/color][color=Red]"F"[/color][color=Blue])
            low led
            
      if [/color][color=Purple]BP [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then
            pause [/color][color=Navy]60
            [/color][color=Blue]else
            pause [/color][color=Navy]100   [/color][color=Green]'Simulation du programme qui s'écoule
      [/color][color=Blue]end if

endif

loop[/color]
résultat sans appel , avec le décalage, je ne peux pas me caler sur une séquence propre . Mais même pas besoin tellement c'est flagrant .

Je démarre sans appuyer , puis après deux salves et demi environ j'ai appuyer , et j'ai relâcher sur les trois derniers trames .

Code:
192 1 65 66 67 68 69 70
2 1 65 66 67 68 69 70
3 1 65 66 67 68 69 70
4 1 65 66 67 68 69 70
5 1 65 66 67 68 69 70
6 1 65 66 67 68 69 70
7 1 65 66 67 68 69 70
8 1 65 66 67 68 69 70
9 1 65 66 67 68 69 70
10 1 65 66 67 68 69 70
11 1 65 66 67 68 69 70
12 1 65 66 67 68 69 70
13 1 65 66 67 68 69 70
14 1 65 66 67 68 69 70
15 1 65 66 67 68 69 70
16 1 65 66 67 68 69 70
----------------------------------------------
28 1 65 66 67 68 69 70
29 1 65 66 67 68 69 70
30 1 65 66 67 68 69 70
31 1 65 66 67 68 69 70
32 1 65 66 67 68 69 70
33 1 65 66 67 68 69 70
34 1 65 66 67 68 69 70
35 1 65 66 67 68 69 70
36 1 65 66 67 68 69 70
37 1 65 66 67 68 69 70
38 1 65 66 67 68 69 70
39 1 65 66 67 68 69 70
40 1 65 66 67 68 69 70
41 1 65 66 67 68 69 70
42 1 65 66 67 68 69 70
43 1 65 66 67 68 69 70
----------------------------------------------
55 1 65 66 67 68 69 70
56 1 65 66 67 68 69 70
57 1 65 66 67 68 69 70
58 1 65 66 67 68 69 70
59 1 65 66 67 68 69 70
60 1 65 66 67 68 69 70
61 1 65 66 67 68 69 70
62 1 65 66 67 68 69 70
63 1 65 66 67 68 69 70
70 67 68 69 70 68 69 70
70 68 1 65 66 67 68 69
70 70 66 67 68 69 70 70
69 70 69 70 67 68 69 70
70 68 69 70 70 66 67 68
69 70 70 70 67 68 69 70
70 68 69 70 66 67 68 69
----------------------------------------------
70 70 70 70 68 69 70 68
69 70 68 69 70 66 67 68
69 70 70 1 65 66 67 68
69 70 70 70 1 65 66 67
68 69 70 70 68 69 70 1
65 66 67 68 69 70 70 65
66 67 68 69 70 70 66 67
68 69 70 70 70 67 68 69
70 70 67 68 69 70 69 70
67 68 69 70 70 70 70 66
67 68 69 70 70 70 68 69
70 68 69 70 67 68 69 70
68 69 70 70 1 65 66 67
68 69 70 69 70 1 65 66
67 68 69 70 70 70 65 66
67 68 69 70 70 68 69 70
----------------------------------------------
70 1 65 66 67 68 69 70
70 69 70 1 65 66 67 68
69 70 70 70 68 69 70 65
66 67 68 69 70 70 68 69
70 69 70 1 65 66 67 68
69 70 70 70 1 65 66 67
68 69 70 70 70 69 70 69
70 1 65 66 67 68 69 70
70 69 70 1 65 66 67 68
69 70 70 70 70 190 1 65
66 67 68 69 70 70 67 68
69 70 69 70 67 68 69 70
70 70 68 69 70 66 67 68
69 70 68 69 70 65 66 67
68 69 70 70 70 69 70 68
69 70 70 65 66 67 68 69
----------------------------------------------
70 65 66 67 68 69 70 225
1 65 66 67 68 69 70 226
1 65 66 67 68 69 70 227
1 65 66 67 68 69 70 228
1 65 66 67 68 69 70 229
1 65 66 67 68 69 70 230
1 65 66 67 68 69 70 231
1 65 66 67 68 69 70 232
1 65 66 67 68 69 70 233
1 65 66 67 68 69 70 234
1 65 66 67 68 69 70 235
1 65 66 67 68 69 70 236
1 65 66 67 68 69 70 237
1 65 66 67 68 69 70 238
1 65 66 67 68 69 70 239
1 65 66 67 68 69 70 240
----------------------------------------------
252 1 65 66 67 68 69 70
253 1 65 66 67 68 69 70
254 1 65 66 67 68 69 70
255 1 65 66 67 68 69 70
0 2 65 66 67 68 69 70
1 2 65 66 67 68 69 70
2 2 65 66 67 68 69 70
3 2 65 66 67 68 69 70
4 2 65 66 67 68 69 70
5 2 65 66 67 68 69 70
6 2 65 66 67 68 69 70
7 2 65 66 67 68 69 70
8 2 65 66 67 68 69 70
9 2 65 66 67 68 69 70
10 2 65 66 67 68 69 70
11 2 65 66 67 68 69 70
----------------------------------------------
23 2 65 66 67 68 69 70
24 2 65 66 67 68 69 70
25 2 65 66 67 68 69 70
26 2 65 66 67 68 69 70
27 2 65 66 67 68 69 70
28 2 65 66 67 68 69 70
29 2 65 66 67 68 69 70
30 2 65 66 67 68 69 70
31 2 65 66 67 68 69 70
32 2 65 66 67 68 69 70
33 2 65 66 67 68 69 70
34 2 65 66 67 68 69 70
35 2 65 66 67 68 69 70
36 2 65 66 67 68 69 70
37 2 65 66 67 68 69 70
38 2 65 66 67 68 69 70
----------------------------------------------
50 2 65 66 67 68 69 70
51 2 65 66 67 68 69 70
52 2 65 66 67 68 69 70
53 2 65 66 67 68 69 70
54 2 65 66 67 68 69 70
55 2 65 66 67 68 69 70
56 2 65 66 67 68 69 70
57 2 65 66 67 68 69 70
58 2 65 66 67 68 69 70
59 2 65 66 67 68 69 70
60 2 65 66 67 68 69 70
61 2 65 66 67 68 69 70
62 2 65 66 67 68 69 70
63 2 65 66 67 68 69 70
64 2 65 66 67 68 69 70
65 2 65 66 67 68 69 70
----------------------------------------------
Mais en principe, les tranceivers s'en occupent et normalement, ou bien vous ne recevez rien, ou bien c'est bon.
A tester donc.
Le checksum , vérifie l’intégrité d'une trame non ? Je sais que le trasnceiver le fait , mais je connais pas .

En gros on devrairecevoir soit une bonne trame soit rien du tout ?
 

dje8269

Senior Member
Hier soir j'ai eu une idée , et je voudrais la partager avec vous .

Plutôt que de dédié une trame spéciale pour les commandes non prioritaires , j'ai pensé a ceci .

Étant donné que d'un point de vue de mes test , mais aussi de la DS , un trame ne peut avoir que 7 octet au minimum ( il me semble) . si tel est le cas, on pourrait alors envisager de transmettre a chaque trame , les commandes prioritaires , accompagnés de la moitié des commandes secondaires . la trame suivante , toujours nos commandes prioritaires suivant de la seconde moitié des options .

ainsi on aurait ceci ( P=prioritaire moteur et direction et S=secondaire) :

1 ere trame : P1,P2,S1,S2,S3,S4,S5,S6
2 iéme trame : P1,P2,S7,S8,S9,S10,S11,S12
3 iéme trame : P1,P2,S1,S2,S3,S4,S5,S6
etc ...

Avantage, les commandes secondaires plus souvent mise a jour , sans forcement gêner et plus souvent que 2 fois par seconde . dnas la theorie on pourrait même les diviser en trois ou quatre . etant doné qu'une trame est envoyer toutes les 50ms grosso modo , pour le moment .

Si c'est possible on pourrait envisager d'annuler l'envoi des ces commandes secondaires quand les conditions de transmission deviennent difficiles , pour libérer de la bande passante, bref pour essayer d’améliorer les choses quand ca va mal .

Voila c'etait mon idée du matin, j'attends avec impatience vos remarques positives ou négatives
 

dje8269

Senior Member
Tu as bien utilisé une adresse pro ?
Non mon adresse perso ?

En attendant voilà les liens pour le logiciel et la doc :
logiciel
doc
pas très sécurisé leur serveur
Mdrrr . un gros merci .

C'est donc nickel j'ai le logiciel . Le cordon est commandé et devrait arrivé en début de semaine prochaine .

Le top c'est qu'en voulant l'installer , il a vérifier la version , et m'a proposé de le télécharger la mise à jour ; j'ai donc accepté , et ca a focntionner.

J'ai donc toute dernière version du logiciel V3.3.4.0 . par contre ta doc est plus a jour que celle contenu dans la mise a jour ! a ni rien comprendre ! en ouvrant la mise à jour la doc est la V3.3 dans ton lien la V3.4

Comment as tu fais ce tour de force ?

Autre question bête mais qui ne tente rien n'a rien . le cordon picaxe ne serait-il pas compatible ?
 

GM39

Senior Member
Non mon adresse perso ?
Tu peux attendre encore longtemps...

Please use your business e-mail for acquiring the credentials. Applications from non-business email domains (public domain emails) cannot be accepted. Your registration will be proceeded within 24 hours.
 

dje8269

Senior Member
Please use your business e-mail for acquiring the credentials. Applications from non-business email domains (public domain emails) cannot be accepted. Your registration will be proceeded within 24 hours.
Effectivement je n'avais pas vu.

Alors un plus gros merci encore! car je pouvais toujours attendre .

Ben dis donc, la mise à jour du firmware va peut etre changer pas mal de chose !
 

dje8269

Senior Member
Me revoici,

je rencontre un petit soucis de compréhension lors de mes investigations .

Afin d'avancer mon idée de la nuit , j'ai créer un petit qui tantôt m'envoie une trame , tantôt une autre .Avec toutes les deux des variables en commun .
Ce ci dans le but de simuler , l'envoie a toutes les trames de commande prioritaires ( b2 et b3 dans l'exemple) . j'ai mis un 255 en début de trame , pour tester avec un qualifier, si l'envie nous en prends . et les 5 octets suivants sont des valeurs fixes , propres a chaque trames .

Âpres plusieurs essais et même en augmentant le temps de pause de l’émetteur , les défauts sont les mêmes . Donc je suppose que ca ne viens pas du timing mais bien du programme.

PS: quand j’envoie une trame , toujours la même, ça marche à la perfection .

Voici le programme émetteur :

Code:
[color=Navy]#PICAXE [/color][color=Black]14M2[/color]

[color=Green]'####################################   Configuration   ####################################[/color]
[color=Blue]Symbol [/color][color=Purple]BP [/color][color=DarkCyan]= [/color][color=Purple]pinC.3[/color]
[color=Blue]Symbol led [/color][color=DarkCyan]= [/color][color=Blue]C.4
Symbol [/color][color=Purple]RTS [/color][color=DarkCyan]= [/color][color=Purple]pinB.2[/color]
[color=Blue]Symbol CTS [/color][color=DarkCyan]= [/color][color=Blue]B.5[/color]


[color=Green]'####################################   Initialisation   ####################################[/color]
[color=Blue]setfreq M8[/color]
[color=Purple]b0 [/color][color=DarkCyan]= [/color][color=Navy]0[/color]
[color=Purple]b1 [/color][color=DarkCyan]= [/color][color=Navy]1[/color]
[color=Blue]pause [/color][color=Navy]1000[/color]

[color=Green]'####################################   Programme Principal   ####################################[/color]
[color=Blue]do

      if [/color][color=Purple]RTS [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Blue]then
            
            inc [/color][color=Purple]bit0
            [/color][color=Blue]high led
            inc [/color][color=Purple]w1
            
                  [/color][color=Blue]if [/color][color=Purple]bit0 [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Blue]tHen
                        serout B.3[/color][color=Black],[/color][color=Blue]T9600_8[/color][color=Black], [/color][color=Blue]([/color][color=Navy]255[/color][color=Black],[/color][color=Purple]b2[/color][color=Black],[/color][color=Purple]b3[/color][color=Black],[/color][color=Red]"A"[/color][color=Black],[/color][color=Red]"B"[/color][color=Black],[/color][color=Red]"C"[/color][color=Black],[/color][color=Red]"D"[/color][color=Black],[/color][color=Red]"E"[/color][color=Blue])
                  else
                        serout B.3[/color][color=Black],[/color][color=Blue]T9600_8[/color][color=Black], [/color][color=Blue]([/color][color=Navy]255[/color][color=Black],[/color][color=Purple]b2[/color][color=Black],[/color][color=Purple]b3[/color][color=Black],[/color][color=Red]"G"[/color][color=Black],[/color][color=Red]"H"[/color][color=Black],[/color][color=Red]"I"[/color][color=Black],[/color][color=Red]"J"[/color][color=Black],[/color][color=Red]"K"[/color][color=Blue])
                  endif
      
            low led
      endif 
      
      if [/color][color=Purple]BP [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then
            pause [/color][color=Navy]60
      [/color][color=Blue]else
            pause [/color][color=Navy]150   [/color][color=Green]'Simulation du programme qui s'?coule[/color]
[color=Blue]end if

loop[/color]
le programme récepteur avec un 20X2 et la commande hserin

Code:
[color=Navy]#PICAXE [/color][color=Black]20X2[/color]

[color=Green]'####################################   Configuration   ####################################[/color]
[color=Blue]Symbol [/color][color=Purple]BP [/color][color=DarkCyan]= [/color][color=Purple]pinC.6[/color]
[color=Blue]Symbol led [/color][color=DarkCyan]= [/color][color=Blue]C.4
Symbol [/color][color=Purple]RTS [/color][color=DarkCyan]= [/color][color=Purple]pinB.1[/color]
[color=Blue]Symbol CTS [/color][color=DarkCyan]= [/color][color=Blue]B.4[/color]
[color=Green]'####################################   Initialisation   ####################################[/color]
[color=Blue]setfreq M8
hsersetup B9600_8[/color][color=Black], [/color][color=Navy]%00001[/color]
[color=Blue]pause [/color][color=Navy]1000[/color]
[color=Green]'####################################   Programme Principal   ####################################[/color]

[color=Blue]do
      
hserin [/color][color=Navy]0[/color][color=Black],[/color][color=Navy]128[/color]

[color=Purple]ptr [/color][color=DarkCyan]= [/color][color=Navy]0[/color]

[color=Blue]for [/color][color=Purple]b10[/color][color=DarkCyan]=[/color][color=Navy]1 [/color][color=Blue]to [/color][color=Navy]16
        [/color][color=Blue]sertxd([/color][color=Black]#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Red]" "[/color][color=Black],#[/color][color=Purple]@ptrinc[/color][color=Black],[/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])
next [/color][color=Purple]b10[/color]

[color=Blue]sertxd ([/color][color=Red]"----------------------------------------------"[/color][color=Black],[/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])

loop[/color]
Et voici l'un des résultats troublants :
Code:
1 0 71 72 73 74 75 255
2 0 65 66 67 68 69 255
3 0 71 72 73 74 75 255
4 0 65 66 67 68 69 255
5 0 71 72 73 74 75 255
6 0 65 66 67 68 69 255
7 0 71 72 73 74 75 255
8 0 65 66 67 68 69 255
9 0 71 72 73 74 75 255
10 0 65 66 67 68 69 255
11 0 71 72 73 74 75 255
12 0 65 66 67 68 69 255
13 0 71 72 73 74 75 255
14 0 65 66 67 68 69 255
15 0 71 72 73 74 75 255
16 0 65 66 67 68 69 255
----------------------------------------------
25 0 71 72 73 74 75 255
26 0 65 66 67 68 69 255
27 0 71 72 73 74 75 255
28 0 65 66 67 68 69 255
29 0 71 72 73 74 75 255
30 0 65 66 67 68 69 255
31 0 71 72 73 74 75 255
32 0 65 66 67 68 69 255
33 0 71 72 73 74 75 255
34 0 65 66 67 68 69 255
35 0 71 72 73 74 75 255
36 0 65 66 67 68 69 255
37 0 71 72 73 74 75 255
38 0 65 66 67 68 69 255
39 0 71 72 73 74 75 255
40 0 65 66 67 68 69 255
----------------------------------------------
33 37 41 45 255 255 50 0
65 66 67 68 69 255 51 0
71 72 73 74 75 255 52 0
65 66 67 68 69 255 53 0
71 72 73 74 75 255 54 0
65 66 67 68 69 255 55 0
71 72 73 74 75 255 56 0
65 66 67 68 69 255 57 0
71 72 73 74 75 255 58 0
65 66 67 68 69 255 59 0
71 72 73 74 75 255 60 0
65 66 67 68 69 255 61 0
71 72 73 74 75 255 62 0
65 66 67 68 69 255 63 0
71 72 73 74 75 255 64 0
65 66 67 68 69 255 65 0
----------------------------------------------
255 74 0 65 66 67 68 69
255 75 0 71 72 73 74 75
255 76 0 65 66 67 68 69
255 77 0 71 72 73 74 75
255 78 0 65 66 67 68 69
255 79 0 71 72 73 74 75
255 80 0 65 66 67 68 69
255 81 0 71 72 73 74 75
255 82 0 65 66 67 68 69
255 83 0 71 72 73 74 75
255 84 0 65 66 67 68 69
255 85 0 71 72 73 74 75
255 86 0 65 66 67 68 69
255 87 0 71 72 73 74 75
255 88 0 65 66 67 68 69
255 89 0 71 72 73 74 75
----------------------------------------------
255 98 0 65 66 67 68 69
255 99 0 71 72 73 74 75
255 100 0 65 66 67 68 69
255 101 0 71 72 73 74 75
255 102 0 65 66 67 68 69
255 103 0 71 72 73 74 75
255 104 0 65 66 67 68 69
255 105 0 71 72 73 74 75
255 106 0 65 66 67 68 69
255 107 0 71 72 73 74 75
255 108 0 65 66 67 68 69
255 109 0 71 72 73 74 75
255 110 0 65 66 67 68 69
255 111 0 71 72 73 74 75
255 112 0 65 66 67 68 69
255 113 0 71 72 73 74 75
----------------------------------------------
255 122 0 65 66 67 68 69
255 123 0 71 72 73 74 75
255 124 0 65 66 67 68 69
255 125 0 71 72 73 74 75
255 126 0 65 66 67 68 69
255 127 0 71 72 73 74 75
255 128 0 65 66 67 68 69
255 129 0 71 72 73 74 75
255 130 0 65 66 67 68 69
255 131 0 71 72 73 74 75
255 132 0 65 66 67 68 69
255 133 0 71 72 73 74 75
255 134 0 65 66 67 68 69
255 135 0 71 72 73 74 75
255 136 0 65 66 67 68 69
255 137 0 71 72 73 74 75
----------------------------------------------
Dans les deux premières salves , la trame est décalé de 1 octet , le 255 se retrouve a la fin plutôt qu’en premier .
Dans la troisième salve , décalage plus prononcé
et les suivants tout rentre dans l'ordre !
 

PieM

Senior Member
Bon , ben je n'ai pas tout lu hein !
268 posts mais à priori il semblerait que les transceivers fonctionnent ?
Quoique:

Il faudra quand même m'expliquer comment se fait le partage de temps d'émission entre les deux. Comme on s'assoit sur le duty cycle (norme européenne hein) donc c'est le LBF intégré dans le transceiver qui va malgré tout faire son office.
LBF ça veut dire "Listen before talk" ou "ecouter avant de parler"
donc avant toute émission, un transceiver va écouter si la fréquence est libre, pendant un certain temps (temps de latence à ajouter!). si son copain (ou un voisin comme toi) est en train d'émettre, il attend. Et il peut donc attendre longtemps...
Le débit en RF est de 4800 bps; cela correspond donc à 436 bytes (très) théoriquement transmissibles chaque seconde quel que soit le sens, et ce sans collision d'émission !
Alors il me semble qu'avant de savoir s'il faut mettre 2 bytes ou 3.5 par trame , il serait urgent de connaître assez précisément le timing réel des µC en émission , donc les traitement qu'ils ont à faire, et quelles sont les fenêtres d'émission libres pour le copain.
Donc il faut savoir de façon précise ce qui est associé aux commandes prioritaires en acquisition d'info, en traitement, en commandes.
Donc chaque info doit faire l'objet d'une réflexion sous forme d'organigramme.
par exemple la commande moteur:
elle part d'une position de joystick:
elle arrive sous quelle forme au drivers moteur, et après quel traitement.
ou se fait le traitement? au départ , à l'arrivée?
donc quelle est l'info transmise par RF.

On sait aussi qu'en mode dégradé (backup) tes drivers doivent recevoir la même info:
à partir de quoi ?
enregistrer le gps tous les 4 cm avec un GPS qui n'est pas précis à moins de 3m?
Rien que ça c'est un sujet à part.

Vouloir tout traiter en même temps est a mon avis une erreur. Quand à savoir combien de pattes il faut au µC ....
Un problème compliqué est une somme de problèmes simples (enfin pas toujours...)
 

dje8269

Senior Member
Hello PieM,
268 posts mais à priori il semblerait que les transceivers fonctionnent ?
Oui la liaison fonctionne, même si je n'en ai pas encore compris toutes les subtilités.

Alors il me semble qu'avant de savoir s'il faut mettre 2 bytes ou 3.5 par trame , il serait urgent de connaître assez précisément le timing réel des µC en émission , donc les traitement qu'ils ont à faire, et quelles sont les fenêtres d'émission libres pour le copain.
Donc il faut savoir de façon précise ce qui est associé aux commandes prioritaires en acquisition d'info, en traitement, en commandes.
Donc chaque info doit faire l'objet d'une réflexion sous forme d'organigramme.
par exemple la commande moteur:
elle part d'une position de joystick:
elle arrive sous quelle forme au drivers moteur, et après quel traitement.
ou se fait le traitement? au départ , à l'arrivée?
donc quelle est l'info transmise par RF.
En fait tout ça , c'est la partie, du "pourquoi" j'ai ouvert l'autre post . Car je ne sais pas le dire, c'est pour ça que je fais appel à vous ! Je peux essayer de vous donner toutes les infos dont vous avez besoin, mais une telle réflexion en avance, n'est pas de mon niveau.

Moi Jérémy qu'est ce que je sais ? ( certes pas grand choses) . Que Je dois transmettre des infos d'un point A vers B et de B vers A . Je ne connais pas ces infos, car le projet dans sa globalité est énorme( pour vous dire je croyais que les moteurs se pilotaient en PWM bref! :eek: ). Il faudrait connaitre chaque fonctions pour savoir ce qu’elles doivent/peuvent transmettre, pour les collationner. Chaque fonction mérite presque un post à elle seule . Mais que va--il se passer une fois qu'on aura déterminer tout le sinfos , et qu'on va se rendre compte qu'il faudrait peut être savoir si le transceiver va pouvoir les transmettre ou non ?

Une fois le résultat obtenu, il faudra savoir ce que peux transmettre le transceiver ? certains diront qu'il font savoir ce que peux transmettre le transceiver et adapter les infos en fonction. ( moins cohérent a mon avis)

Voila ma vision , c'est le serpent qui se mord la queue ( pour moi tout du moins, je me doute que pour vous c'est clair) . Donc il faut prendre un point de départ à un moment ou à un autre . Les transceiver , j'ai l'avantage de les possédés. Alors commencé a les manipuler a connaitre leur performances etc , ne me parait pas loufoques, qu'il faille transmettre 2 bytes ou 16, au moins on aura une idée des capacités .

Par exemple: je ne sais pas qui doit traiter l'info. C'est à moi de poser la question lol.
D’après vous ou doit on traiter l'info ? Comment vous y prendriez-vous vous ?

Le proto reste ma seule expérience, et l'info était traiter sur le VHL . les valeurs enregistrer dans l'EEPROM pour le back -up était brutes , et lors de la restitution, venant simplement en remplacement des valeurs recues en RF, il avait donc un traitement a subir avant d’être envoyés au moteur .
En fait tu viens de faire penser à un truc, mais ça n'as pas ça place dans ce post mais sur l'autre .

A tu vu les organigrammes ICI à la fin du post
 

dje8269

Senior Member
Hi everybody

Ecran reçus, cordon de programmation reçus , et récupération de 28X2 ! de tester un peu mieux
 
Top