M0 pro sercom

Bonjour , j'essaie actuellement d'ouvrir un nouveaux pour pour une utilisation d'un module HC-05 sur une M0 pro , après plusieurs essais je n'ais rien qui sorte de ma M0 vers mon HC-05 . J'ais disposition les ports 2 , 3 , et 5 les autres étant pris par mon montage .

j'ais essayer les modification des fichiers variant.c et cpp mais rien y fait , pas de communication entre la M0 et le module Bluetooth.

Je ne comprends pas , j'utilise cette syntaxe :

#include <wiring_private.h> // pinPeripheral() function
Uart BLUETOOTH_PORT (&sercom2, 5, 2, SERCOM_RX_PAD_1, UART_TX_PAD_0); //Disable SERCOM5 in \local\Arduino15\packages\arduino\hardware\samd\1.6.14\variants\arduino_mzero\variant.cpp (Serial + Sercom5)

void SERCOM2_Handler()
{
BLUETOOTH_PORT.IrqHandler();
}
et celle ci dans mon setup :

BLUETOOTH_PORT.begin(9600);
pinPeripheral(2, PIO_SERCOM);
pinPeripheral(5, PIO_SERCOM_ALT);

dans mon variant.cpp

+------------+------------------+--------+-----------------+------------------------------

  • | | Digital Low | | |
  • +------------+------------------+--------+-----------------+------------------------------
  • | 0 | 0 -> RX | PA11 | | EIC/EXTINT[11] ADC/AIN[19] PTC/X[3] *SERCOM0/PAD[3] SERCOM2/PAD[3] TCC1/WO[1] TCC0/WO[3]
  • | 1 | 1 <- TX | PA10 | | EIC/EXTINT[10] ADC/AIN[18] PTC/X[2] *SERCOM0/PAD[2] TCC1/WO[0] TCC0/WO[2]
  • | 2 | ~2 | PA08 | | EIC/NMI ADC/AIN[16] PTC/X[0] SERCOM0/PAD[0] SERCOM2/PAD[0] *TCC0/WO[0] TCC1/WO[2]
  • | 3 | ~3 | PA09 | | EIC/EXTINT[9] ADC/AIN[17] PTC/X[1] SERCOM0/PAD[1] SERCOM2/PAD[1] *TCC0/WO[1] TCC1/WO[3]
  • | 4 | ~4 | PA14 | | EIC/EXTINT[14] SERCOM2/PAD[2] SERCOM4/PAD[2] TC3/WO[0] *TCC0/WO[4]
  • | 5 | ~5 | PA15 | | EIC/EXTINT[15] SERCOM2/PAD[3] SERCOM4/PAD[3] TC3/WO[1] *TCC0/WO[5]
  • | 6 | ~6 | PA20 | | EIC/EXTINT[4] PTC/X[8] SERCOM5/PAD[2] SERCOM3/PAD[2] TC7/WO[0] *TCC0/WO[6]
  • | 7 | ~7 | PA21 | | EIC/EXTINT[5] PTC/X[9] SERCOM5/PAD[3] SERCOM3/PAD[3] TC7/WO[1] *TCC0/WO[7]
  • +------------+------------------+--------+-----------------+------------------------------

on voit que 2 et 5 peuvent etre utiliser en sercom2 ; alors pourquoi cela ne fonctionne pas ? je cherche encore , si quelqu'un à une idée , je suis preneur

J'ai déjà fait ça pour une STM32 blue pill, mais c'est loin.
Je pense avoir perdu mes modifs (certainement suite à une mise à jour du package STM32).
Cela risque de t'arriver si tu ne prends pas de précautions.

As-tu vu ceci : Adding More SERCOM Ports for SAMD Boards - SparkFun Learn

Oui , ça fait 10 fois que je le relis , et ya rien a faire :frowning:

Bonjour,
as-tu, ne serait-ce qu'à titre d'essai, pu faire fonctionner un des uart disponibles ?

le sercom5 est activer pour le gps , et le usbserial fonctionne aussi

ok,
pardonne-moi si je pose des questions bêtes, mais je ne connais pas l'atsam et c'est pas la 2cv du microcontrôleur ...
donc si j'ai bien compris, le tx sera en 2 (SERCOM2/PAD[0]) et le rx en 5 (SERCOM2/PAD[3])

n'y a-t-il pas une contradiction avec ceci : Uart BLUETOOTH_PORT (&sercom2, 5, 2, SERCOM_RX_PAD_1 ?
-> rx en pad3 ou en pad1, faut savoir ?

Merci pour l'info , entre temps , j'ais démonter le montage que j'avais , et je me suis rendus compte qu'il y avait un rxd et txd , affecté a Serial .J'arrive a envoyer mes données via mon HC-05 en passant par ce biais , sauf qu'il faut obligatoirement que le connecteur usb soit connecter au pc , cela ne fonctionne pas en autonome :frowning:

il y a 6 sercom, donc jusqu'à 6 uart (hardware serial) possibles
il n'est donc pas nécessaire de toucher à celui qui est dédié à la communication usb