Aller au contenu

GO Print

MKS Gen L - Syncronisation par UART


Freelax79

Messages recommandés

Salut,

Je viens chercher un peu d'aide, je vais faire en sorte de fournir un maximum d'explications

Contexte:
Je cherche à obtenir la synchronisation en UART entre un arduino MEGA et une NANO , ainsi qu'entre la même MEGA et une MKS Gen L (mega2506). Le but étant à terme d'uploader du code sur la NANO et la MKS par le biais d'une autre carte. Pour le moment le process d'upload fonctionne parfaitement avec la NANO , pour ce qui est de la MKS , aucune syncro possible.

Liens sur lequel je me suis appuyé pour mon code:

https://www.ordinoscope.net/index.php/Modélisme/Imprimantes_3D/Hardware/MKS/GEN-L#AUX-1
https://github.com/makerbase-mks/Datasheet/blob/master/English datasheet/MKS Gen_L DataSheet.pdf
https://www.diericx.net/downloads/STK500v1.pdf
https://arduino.stackexchange.com/questions/61796/is-it-possible-to-upload-an-arduino-sketch-through-the-serial-port-rx-instead
https://github.com/spake/Arduino-Copier/
https://onstep.groups.io/g/main/wiki/2D-RAMPS14

Câblage:

topo.jpg.d1bfec28d79c9a6932cfa20a1bc7e99a.jpg

Code déjà uploadé sur la MKS par usb :https://pastebin.com/R7Zcg4JZ

Code de test de la MEGA : https://pastebin.com/5mSkTyy0
J'ai pour le moment volontairement réduit le code pour simplement checker la syncro. Il est redondant et non clean, le but étant juste de débugger plus simplement hors contexte.

Test : Debug obtenu:

Nano tentatives ............
Nano EstablishSync OK : 0x14 0x10
Mks tentatives ..
Mks EstablishSync NOK : 0x30 0x20

Ce qui me parait étrange c'est que j'ai l'impression de récupérer comme réponse ce que j'ai envoyé :  CMD_STK_GET_SYNC / SYNC_CRC_EOP soit 0x30 0x20. En ce qui concerne le pinout de la MKS , les pins du serial(usb) ne sont pas clair, sur la doc ils sont marqués en inversés, sur certains sites indiqués dans l'autre sens, voir même sur d'autres comme non utilisés.

Je vois bien que le reset se passe bien et qu'elle reboot mais la MKS me renvoi des choses étranges (si ce sont bien des données provenant de la MKS). J'ai testé avec une seconde MKS identique, même soucis. J'ai aussi chercher du coté du baud et du delay de mon code de test sans résultat.

J'ai donc testé et vérifié plusieurs choses:

- Inverser le RX et TX de la MKS:

Mks tentatives ..
Mks EstablishSync NOK : 0xfc 0x16

- Uploader en usb de façon normal (Serial)
- Tester sur les 3 UART dispo de la MKS : Serial0(usb) Serial1 Serial2
- Utiliser le câblage de la NANO
- Vérifier la présence du bootloader

Toujours le même soucis ...

Atmega chip detector
https://pastebin.com/9gZfCA6Z

Atmega fuse calculator
https://pastebin.com/xapNKmZx

Un bootloader est bien présent : atmega2560_bootloader_watchdog_bug_fixed. J'ai cherché à en savoir plus sur celui ci, surtout sur quel UART il écoute la demande de sync, je n'ai rien trouvé sur le net. Pour être sur j'ai injecté une nouvelle fois le bootloader en ISCP

Atmega chip programmer
https://pastebin.com/7LKRrMuH

Toujours le même soucis ...

Je pense avoir fait le tour me permettant d’éliminer un maximum de choses. Au final toujours rien pouvant affirmer d'une limitations matériel de la MKS ou d'une
erreur de ma part. Je penche sérieusement sur ma façon de reset et de pousser le bootloader à écouter ma demande de sync. Même si je ne pige pas pourquoi
tout fonctionne pour la NANO mais pas pour la MKS.

Merci d'avance a ceux qui pourront me montrer la lumière au bout du tunnel, et merci d'avoir lu.

topo.bmp

Modifié (le) par Freelax79
Lien vers le commentaire
Partager sur d’autres sites

Salut,

Met un GND en commun entre la MKS GEN L et la MEGA. Il faut être sur que la paire UART utilisée n'est pas utilisée par autre chose.

Modifié (le) par Tircown
Lien vers le commentaire
Partager sur d’autres sites

Salut et merci de ta réponse.

En faisant cette connexion supplémentaire, j'obtiens une réponse différente de la MKS:

Mks tentatives ..........................
Mks EstablishSync NOK : 0x0 0x16 

J'ai du mal à interpréter ses réponses, pour peu que s'en soit une 🙄 J'ai testé avec les 3 UART disponibles, seul UART0, celui de l'usb, réponds autre chose que :

0x00 0x00

J'ai vu sur le net que certains utilise un petit capacitor entre le RESET et le GND pour donner plus de temps de boot, testé sans succès. Je cherche actuellement un bootloader pour la MEGA qui permet le sync peu importe l'UART utilisé, mais je trouve rien.

J'ai quand même fait un test loop de baud pour être sur, aucun ne permet le sync:

https://pastebin.com/GfPHSTp2

Je sèche vraiment ... 🙁

Modifié (le) par Freelax79
Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...