Depuis que j'ai repris l'exemple de communication USB, développé par Martin en 2013, entre le logiciel Jedicut et les électroniques, il y a un problème de communication pour les équipements travaillant à une vitesse supérieur à 1KHz (steps envoyé aux drivers).
Un jour par mégarde (heureuse), j'ai branché mon électronique sur un Hub USB et le problème de communication était réglé. Dans les lectures sur internet je n'ai pas trouvé d'explications.
Martin avait développé une passerelle USB pour commander les équipements dotés de moteurs de 50pas/tour, ou des vis de plus grand pas, Je comprends pourquoi il avait limité la valeur de division du timer à 63 dans son sketch car le problème survient pour des valeurs inférieures. (63 : valeur du coefficient de vitesse que l'on indique dans la vue de config machine dans Jedicut). C'est le paramètre "F" transféré par la "dll".
C'est pour cela que je demande dans mes notices d'utiliser un hub USB lorsque l'on a besoin d'utiliser le paramètre "F" inférieur à 63.
Aujourd'hui, je suis équipé d'un oscilloscope autonome ce qui est beaucoup plus pratique qu'un oscilloscope logiciel sur PC. Je me suis donc mis à la recherche d'une anomalie éventuelle.
Voici ce que j'ai relevé sans Hub USB
Voie jaune --> debug4 -->interruption timer "F" = 63 Sans hub USB
Voie bleue -->debug3 --> interruption Usart.
La fréquence des interruptions du timer est bonne:
62500/(63+1) = 976.56 Hz
Ce qui est frappant, ce sont les salves de 4 données seulement sur l'Usart. Elles semblent synchronisées sur le timer.
====================================================
Voici ce que j'ai relevé avec le Hub USB
Voie jaune --> debug4 --> interruption timer "F" = 63 Sans hub USB
Voie bleue --> debug3 --> interruption Usart.
Lorsque l'on met le hub, nous obtenons les données les unes à la suite des autres. Nous remarquons sur les interruptions du timer, une impulsion est décalée par rapport à la ligne du curseur de droite. Ceci est dû à une interruption de l'Usart qui est en cours.
======================================================
Beaucoup plus de précision dans ce document : Conclusion :
Le sketch semble fonctionner correctement, la découpe est possible USB à 250000 bauds. Il n'y a aucun signal émanent du sketch qui pourrait provoquer ce défaut de salves de 4 données à la fréquence de 1kHz.
Je ne suis pas spécialiste des liaisons USB et de création de plugin "xxx.dll". Si des spécialistes lisent ces lignes je les remercie de bien vouloir nous donner des informations ou des solutions à ce problème rencontré.
Bonne lecture à tous.
Alain