RF220UF1

SNAPpy Built-Ins

getInfo

RF220 Series modules can return different module family values. Expected getInfo() return values:

getInfo(0) # returns 0 meaning "Synapse Wireless"
getInfo(3) # returns 27 meaning RF220UF1 (because it uses an SM220)

sleep

The RF220 Series includes a 32kHz crystal RTC, so for most efficient sleep() you should use sleep mode 1 or 2, depending on the sleep duration. See the ATMEL ATmega128RFA1 chip section for more information.

NV Parameters

NV64 - Vendor Specific

The Antenna Path Bit (0x0010) allows the RF220UF1 to specify which antenna path should be used:

Value

Antenna Used

0

Compact F antenna (internal)

1

U.FL antenna

Note

Changes to the Antenna Path Bit (0x0010) do not take effect until you reboot the module. The setting persists through reboots and is preserved during a factory default.

Port Mapping

IO Pins

Pin numbers below refer to the pin on the RF220 Series footprint. To reference the pins in your code, use the SNAPpy IO number from the table below:

RF220 Pin

SNAPpy IO

ATmega128RFA1

Description

1

N/A

GND

Power Supply

2

7

GPIO0 OC0A OC1C PCINT7 PB7

GPIO_0 or PWM or Interrupt

3

6

GPIO1 OC1B PCINT6 PB6

GPIO_1 or PWM or Interrupt

4

5

GPIO2 OC1A PCINT5 PB5

GPIO_2 or PWM or Interrupt

5

16

GPIO3 RXD0 PCINT8 PE0

GPIO_3 or UART0 Data In or Interrupt

6

17

GPIO4 TXD0 PE1

GPIO_4 or UART0 Data Out

7

20

GPIO5 OC3B INT4 PE4

GPIO_5 or UART0 CTS Output or PWM or Interrupt

8

21

GPIO6 OC3C INT5 PE5

GPIO_6 or UART0 RTS Input or PWM or Interrupt

9

10

GPIO7 RXD1 INT2 PD2

GPIO_7 or UART1 Data In or Interrupt

10

11

GPIO8 TXD1 INT3 PD3

GPIO_8 or UART1 Data Out or Interrupt

11

12

GPIO9 CTS1 ICP1 PD4

GPIO_9 or UART1 CTS Output or Input Capture

12

23

GPIO10 RTS1 ICP3 INT7 CLKO

GPIO_10 or UART1 RTS Input or Clock Output Buffer or Interrupt

13

24

GPIO11 ADC0 PF0

GPIO_11 or Analog0

14

25

GPIO12 ADC1 MOSI PF1

GPIO_12 or Analog1 or SPI MOSI

15

26

GPIO13 ADC2 DIG2 SCLK PF2

GPIO_13 or Analog2 or SPI CLK or Antenna Diversity Control

16

18

GPIO14 XCK0 AIN0 MISO PE2

GPIO_14 or SPI MISO or Analog Comparator or External Clock

17

28

GPIO15 ADC4 TCK PF4

GPIO_15 or Analog4 or JTAG Test Clock

18

29

GPIO16 ADC5 TMS PF5

GPIO_16 or Analog5 or JTAG Test Mode Select

19

30

GPIO17 ADC6 TDO SDA PF6

GPIO_17 or Analog6 or JTAG Test Data Out or I2C SDA

20

31

GPIO18 ADC7 TDI SCL PF7

GPIO_18 or Analog7 or JTAG Test Data In or I2C SCL

21

N/A

VCC

Power Supply

22

19

GPIO19 OC3A AIN1 PE3

GPIO_19 or Analog Comparator or PWM or Output Compare Match

23

N/A

RESET*

Module Reset, Active Low

24

N/A

GND

Power Supply

Note

The SPI and I2C locations are different on the RF220 Series than they are on the ATMEL ATmega128RFA1 chip.

Digital IO

The RF220 Series supports 20 digital IO:

SNAPpy IO

RF220 Series Pin

ATmega128RFA1

5

4

GPIO2

6

3

GPIO1

7

2

GPIO0

10

9

GPIO7

11

10

GPIO8

12

11

GPIO9

16

5

GPIO3

17

6

GPIO4

18

16

GPIO14

19

22

GPIO19

20

7

GPIO5

21

8

GPIO6

23

12

GPIO10

24

13

GPIO11

25

14

GPIO12

26

15

GPIO13

28

17

GPIO15

29

18

GPIO16

30

19

GPIO17

31

20

GPIO18

Wakeup Pins

Nine of the IO pins can be used to wake a sleeping module:

SNAPpy IO

RF220 Pin

ATmega128RFA1

5

4

GPIO2

6

3

GPIO1

7

2

GPIO0

10

9

GPIO7

11

10

GPIO8

16

5

GPIO3

20

7

GPIO5

21

8

GPIO6

23

12

GPIO10

Note

Setting the unit to wake from an edge-triggered signal using pins 7, 8, or 12 will work, but it will result in higher power consumption during sleep. If you must have an edge-triggered wake signal, it is recommended you use a different pin.

Analog Inputs

Seven of the IO pins can be used as ADC inputs:

readAdc() channel

SNAPpy IO

RF220 Pin

ATmega128RFA1

0

24

13

PF0 ADC0

1

25

14

PF1 ADC1

2

26

15

PF2 ADC2

4

28

17

PF4 ADC4

5

29

18

PF5 ADC5

6

30

19

PF6 ADC6

7

31

20

PF7 ADC7

Serial Port 0

Four of the IO pins can function as UART 0:

SNAPpy IO

RF220 Pin

ATmega128RFA1

16

5

UART0 Data In

17

6

UART0 Data Out

20

7

UART0 CTS Output

21

8

UART0 RTS Input

If you do not need RTS/CTS signals, then pins 7 and 8 are available for other usage.

Serial Port 1

Four of the IO pins can function as UART 1:

SNAPpy IO

RF220 Pin

ATmega128RFA1

10

9

UART1 Data In

11

10

UART1 Data Out

12

11

UART1 CTS Output

23

12

UART1 RTS Input

If you do not need RTS/CTS signals, then pins 11 and 12 are available for other usage.

Pulse Width Modulation

Six of the IO pins can optionally be used as Pulse Width Modulation (PWM) outputs:

SNAPpy IO

RF220 Pin

ATmega128RFA1

5

4

PWM

6

3

PWM

7

2

PWM

19

22

PWM

20

7

PWM

21

8

PWM

SPI

Three of the IO pins can optionally function as a SPI bus:

SNAPpy IO

RF220 Pin

ATmega128RFA1

18

16

MISO

25

14

MOSI

26

15

SCLK

These are not the hardware SPI pins. SNAPpy SPI is done via software emulation.

You will also need one “SPI Chip Select” pin per external SPI device. Any available IO pin can be used for this purpose.

I2C

Two of the IO pins can optionally function as an I2C bus:

SNAPpy IO

RF220 Pin

ATmega128RFA1

31

20

SCL

30

19

SDA

These are not the hardware I2C pins. SNAPpy I2C is done via software emulation.

Starting with SNAP 2.5, you can also call i2cInit() with three parameters:

i2cInit(enablePullups, SCL_pin, SDA_pin)

The second and third parameters allow you to “move” the I2C pins to another pair of IO pins on the chip.