Communication

Table of contents

The RFzero is based on the SAMD21J18G micro controller that have six SERCOM interfaces available, each of which can be configured for one of the Serial UART, SPI or I2C protocols.

The SERCOM serial engine consists of a transmitter and receiver, baud-rate generator and address matching functionality. It can be configured to use the internal generic clock or an external clock, making operation in all sleep modes possible. (See datasheets on the Hardware page.)

The USB port is not part of these and can thus be used independently no matter how the SERCOMs are configured.

If you are just here to find the RFzero reference you may want to jump directly to the pinout tables or the configuration overview. For generic information and examples go to the Serial UART, I2C Wire or SPI pages.


I2C (Wire)

The I2C (Wire) is a two wire bus interface that allows multiple devices, named master(s) and slave(s), to use the same two wires to send and receive data to and from each others by including an address in the transmitted data. Typical communication speeds are either 100 kHz (default) or 400 kHz. The two wires are called Serial Data (SDA) and Serial Clock (SCL).

I2C signalRFzero Pin/PortArduino Zero or M0 pins
SDAD8/PA16SDA/PA22
SCLD9/PA17SCL/PA23

Serial

The serial universal synchronous and asynchronous receiver and transmitter (USART) is a two wire serial interface that allows only two devices to connect to each other. Typically the communication speed is from 1200 Baud to 115200 Baud but both lower and faster is also possible.

The two wires are called Transmit Data (TXD) and Received Data (RXD).

Serial signalRFzero pinRFzero MCU pinArduino Zero/M0 pins
TXA4PA6A4
RXA5PA7A5

SPI

The SPI is a four wire full duplex interface that allows multiple devices, named master and slave(s), to use the same four wires to send and receive data to and from the master or slave. The bus clock can vary from circuit to circuit.

The four wires are called Master Out Slave In (MOSI), Master In Slave Out (MISO), Serial ClocK (SCK) and Slave Select (SS). The SS is seldom used if there is only one slave connected to the master.

SPI signalPin/PortArduino Zero/M0 pinout
MISOD164 (SPI connector)
SSD17Not assigned
MOSID181 (SPI connector)
SCKD193 (SPI connector)

USB

The Universal Serial Bus (USB) is a two wire interface bus that allows many devices to communicate with each other. The communication speed is typically in the same range as the UART but can go up to 12 Mb/s.

The two wires are called Data+ (D+) and Data- (D-).

The USB interface is called SerialUSB and with D+ on D28/pin 33 and D- on D29/pin 34.