I'm using Arduino MKR GSM 1400. I know this board uses Atmel SAMD21 and SAMD21 support half duplex (USART with full-duplex and single-wire half-duplex configuration). My question is, How Can I configure one of the SERCOMs to use it as Half-Duplex (Use one pin for rx and tx)?

  • what problem do you try to solve?
    – Juraj
    Jan 24 '20 at 18:38
  • @Juraj So what is asf.atmel.com/docs/latest/… ? Jan 24 '20 at 19:17
  • @Juraj "When TX and RX are connected to the same pin, the USART will operate in half-duplex mode if both one transmitter and several receivers are enabled." Jan 24 '20 at 19:17
  • so try it. the Arduino wrapper classes don't have clock pin configuration so you can't configure USART only UART. so you must use registers or some other framework then Arduino
    – Juraj
    Jan 24 '20 at 19:33

Up to six Serial Communication Interfaces (SERCOM), each configurable to operate as either:

  • USART with full-duplex and single-wire half-duplex configuration
  • I2C up to 3.4 MHz
  • SPI
  • LIN slave

It is an error in the overview of the SAM D21 features in the datasheet. The SERCOM is half-duplex for I2C. USART can't be configured half-duplex.

see Application Note about SERCOM configuration

1 Introduction to Serial Communication Interfaces (USART, I2C, and SPI)

... The exchange of data can be half-duplex or fullduplex depending on the serial module specification. ...


... It is full-duplex in operation. ...

1.2 I2C

... It is half-duplex in communication. ...


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.