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:
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