363 lines
16 KiB
ReStructuredText
363 lines
16 KiB
ReStructuredText
.. _atmel_at86rf2xx_transceivers:
|
|
|
|
Atmel AT86RF2XX Transceivers
|
|
############################
|
|
|
|
Overview
|
|
********
|
|
|
|
The Atmel AT86RF2xx is a high performance radio transceiver targeted for IEEE
|
|
802.15.4, ZigBee, RF4CE, 6LoWPAN, and ISM applications. The AT86RF2xx is a
|
|
true SPI-to-antenna solution and can be operated by any external
|
|
microcontroller.
|
|
|
|
The current IEEE 802.15.4 AT86RF2xx Zephyr driver currently works with any
|
|
2.4 Ghz transceiver, except AT86RF230. The RF2xx driver allows use of
|
|
:ref:`ieee802154_interface` and :ref:`thread_protocol_interface` network
|
|
stacks.
|
|
|
|
This is a generic shield focused not only on Atmel Development Boards Kits.
|
|
There are compatible designations for `AT AVR-RZ600`_ and `AT REB233-XPRO`_.
|
|
This means, any Atmel board with 10-pin Xplained or 20-pin Xplained Pro
|
|
extension headers can be used. You can check
|
|
`Atmel Xplained Pro Hardware Development Kit User Guide`_ for more information.
|
|
Besides that, Arduino and MikroBus standard headers are available to complement
|
|
the shield module configurations. For any other project that doesn't fit on
|
|
the current available variations an overlay can be created. However, the
|
|
overlay is the last resource and is recommended use standard header always
|
|
possible.
|
|
|
|
RZ600 Module
|
|
============
|
|
|
|
The RZ600 Development Kit needs Atmel Xplained or Xplained-Pro header
|
|
connector. The modules from this kit are available without any transceiver
|
|
advanced features. For Xplained headers the `atmel_rf2xx_xplained`_ must be
|
|
selected. For Xplained-Pro header the `atmel_rf2xx_legacy`_ must be enabled.
|
|
|
|
.. image:: ./ATAVRRZ600.jpg
|
|
:width: 350px
|
|
:align: center
|
|
:alt: AVR-RZ600
|
|
|
|
Pins Assignment of the RZ600 Module
|
|
===================================
|
|
|
|
+---------+--------+-------------------------------------+
|
|
| Pin | Name | Function |
|
|
+=========+========+=====================================+
|
|
| 1 | RST | GPIO - Reset |
|
|
+---------+--------+-------------------------------------+
|
|
| 2 | MISC | DNU - Do Not Use |
|
|
+---------+--------+-------------------------------------+
|
|
| 3 | IRQ | GPIO - Interrupt |
|
|
+---------+--------+-------------------------------------+
|
|
| 4 | SLP_TR | GPIO - Multi purpose control signal |
|
|
+---------+--------+-------------------------------------+
|
|
| 5 | CS | SPI Chip Select |
|
|
+---------+--------+-------------------------------------+
|
|
| 6 | MOSI | SPI Master Out / Slave In |
|
|
+---------+--------+-------------------------------------+
|
|
| 7 | MISO | SPI Master In / Slave Out |
|
|
+---------+--------+-------------------------------------+
|
|
| 8 | SCLK | SPI Clock |
|
|
+---------+--------+-------------------------------------+
|
|
| 9 | GND | |
|
|
+---------+--------+-------------------------------------+
|
|
| 10 | VDD | POWER +3.3V |
|
|
+---------+--------+-------------------------------------+
|
|
|
|
REB233-XPRO Module
|
|
==================
|
|
|
|
The REB233-XPRO development kit uses Atmel Xplained Pro header. It is enabled
|
|
selecting `atmel_rf2xx_xpro`_ option.
|
|
|
|
.. image:: ./atreb233-xpro-top.jpg
|
|
:width: 300px
|
|
:align: center
|
|
:alt: REB233-XPRO Top
|
|
|
|
Pins Assignment of the REB233-XPRO Module
|
|
=========================================
|
|
|
|
+---------+--------+-------------------------------------+
|
|
| Pin | Name | Function |
|
|
+=========+========+=====================================+
|
|
| 1 | ID | DNU - Do Not Use |
|
|
+---------+--------+-------------------------------------+
|
|
| 2 | GND | |
|
|
+---------+--------+-------------------------------------+
|
|
| 3 | DIG1 | DNU - Do Not Use |
|
|
+---------+--------+-------------------------------------+
|
|
| 4 | DIG3 | DNU - Do Not Use |
|
|
+---------+--------+-------------------------------------+
|
|
| 5 | DIG2 | GPIO - RX Frame Time Stamping |
|
|
+---------+--------+-------------------------------------+
|
|
| 6 | CLKM | DNU - Do Not Use |
|
|
+---------+--------+-------------------------------------+
|
|
| 7 | RST | GPIO - Reset |
|
|
+---------+--------+-------------------------------------+
|
|
| 8 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| 9 | IRQ | GPIO - Interrupt |
|
|
+---------+--------+-------------------------------------+
|
|
| 10 | SLP_TR | GPIO - Multi purpose control signal |
|
|
+---------+--------+-------------------------------------+
|
|
| 11 | SDA | EEPROM - AT24MAC602 |
|
|
+---------+--------+-------------------------------------+
|
|
| 12 | SCL | EEPROM - AT24MAC602 |
|
|
+---------+--------+-------------------------------------+
|
|
| 13 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| 14 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| 15 | CS | SPI Chip Select |
|
|
+---------+--------+-------------------------------------+
|
|
| 16 | MOSI | SPI Master Out / Slave In |
|
|
+---------+--------+-------------------------------------+
|
|
| 17 | MISO | SPI Master In / Slave Out |
|
|
+---------+--------+-------------------------------------+
|
|
| 18 | SCLK | SPI Clock |
|
|
+---------+--------+-------------------------------------+
|
|
| 19 | GND | |
|
|
+---------+--------+-------------------------------------+
|
|
| 20 | VDD | POWER +3.3V |
|
|
+---------+--------+-------------------------------------+
|
|
|
|
.. note:: DIG2 is not current implemented on RF2xx driver.
|
|
|
|
Arduino Shields
|
|
===============
|
|
|
|
Arduino Uno R3 header is available without advanced features. It is enabled
|
|
selecting `atmel_rf2xx_arduino`_ variant option.
|
|
|
|
Pins Assignment of the Arduino Shield Modules
|
|
=============================================
|
|
|
|
+---------+--------+-------------------------------------+
|
|
| Pin | Name | Function |
|
|
+=========+========+=====================================+
|
|
| D0 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| D1 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| D2 | IRQ | GPIO - Interrupt |
|
|
+---------+--------+-------------------------------------+
|
|
| D3 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| D4 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| D5 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| D6 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| D7 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| D8 | RST | GPIO - Reset |
|
|
+---------+--------+-------------------------------------+
|
|
| D9 | SLP_TR | GPIO - Multi purpose control signal |
|
|
+---------+--------+-------------------------------------+
|
|
| D10 | CS | SPI Chip Select |
|
|
+---------+--------+-------------------------------------+
|
|
| D11 | MOSI | SPI Master Out / Slave In |
|
|
+---------+--------+-------------------------------------+
|
|
| D12 | MISO | SPI Master In / Slave Out |
|
|
+---------+--------+-------------------------------------+
|
|
| D13 | SCLK | SPI Clock |
|
|
+---------+--------+-------------------------------------+
|
|
| D14 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| D15 | | |
|
|
+---------+--------+-------------------------------------+
|
|
| | GND | |
|
|
+---------+--------+-------------------------------------+
|
|
| | VDD | POWER +3.3V |
|
|
+---------+--------+-------------------------------------+
|
|
| | VCC | POWER +5.0V |
|
|
+---------+--------+-------------------------------------+
|
|
|
|
MikroBus Shields
|
|
================
|
|
|
|
MikroBus header is available available without advanced features. It is
|
|
enabled selecting `atmel_rf2xx_mikrobus`_ variant option.
|
|
|
|
Pins Assignment of the MikroBus Shield Modules
|
|
==============================================
|
|
|
|
+---------+--------+-------------------------------------+
|
|
| Pin | Name | Function |
|
|
+=========+========+=====================================+
|
|
| AN | RST | GPIO - Reset |
|
|
+---------+--------+-------------------------------------+
|
|
| RST | | |
|
|
+---------+--------+-------------------------------------+
|
|
| CS | CS | SPI Chip Select |
|
|
+---------+--------+-------------------------------------+
|
|
| SCK | SCLK | SPI Clock |
|
|
+---------+--------+-------------------------------------+
|
|
| MISO | MISO | SPI Master In / Slave Out |
|
|
+---------+--------+-------------------------------------+
|
|
| MOSI | MOSI | SPI Master Out / Slave In |
|
|
+---------+--------+-------------------------------------+
|
|
| VCC-3.3 | VDD | POWER +3.3V |
|
|
+---------+--------+-------------------------------------+
|
|
| GND | GND | |
|
|
+---------+--------+-------------------------------------+
|
|
| GND | GND | |
|
|
+---------+--------+-------------------------------------+
|
|
| VCC-5.0 | VCC | POWER +5.0V |
|
|
+---------+--------+-------------------------------------+
|
|
| SDA | | |
|
|
+---------+--------+-------------------------------------+
|
|
| SCL | | |
|
|
+---------+--------+-------------------------------------+
|
|
| TX | | |
|
|
+---------+--------+-------------------------------------+
|
|
| RX | | |
|
|
+---------+--------+-------------------------------------+
|
|
| INT | IRQ | GPIO - Interrupt |
|
|
+---------+--------+-------------------------------------+
|
|
| PWM | SLP_TR | GPIO - Multi purpose control signal |
|
|
+---------+--------+-------------------------------------+
|
|
|
|
Supported variations
|
|
====================
|
|
|
|
The below table suggests shield variation accordingly with end user
|
|
application. When a standard connector (arduino, mikrobus, xplained,
|
|
xplained-pro) is available on board, user should select the matching shield
|
|
configuration. When atmel_rf2xx shield is used with a board that doesn't
|
|
feature a standard connector, a dedicated <board>.overlay file should be
|
|
provided. The remaining configurations should be used based on the board
|
|
standard headers available.
|
|
|
|
+-----------------------------+------------------------------+-----------+
|
|
| Connector Standard | Shield Designation | Variation |
|
|
+=============================+==============================+===========+
|
|
| Without standard (overlay) | `atmel_rf2xx`_ | 1 |
|
|
+-----------------------------+------------------------------+-----------+
|
|
| Atmel Xplained header | `atmel_rf2xx_xplained`_ | 2 |
|
|
+-----------------------------+------------------------------+-----------+
|
|
| Atmel Xplained Pro header | `atmel_rf2xx_xpro`_ | 3 |
|
|
+-----------------------------+------------------------------+-----------+
|
|
| Atmel Xplained Pro header | `atmel_rf2xx_legacy`_ | 4 |
|
|
+-----------------------------+------------------------------+-----------+
|
|
| Arduino | `atmel_rf2xx_arduino`_ | 5 |
|
|
+-----------------------------+------------------------------+-----------+
|
|
| MikroBus | `atmel_rf2xx_mikrobus`_ | 6 |
|
|
+-----------------------------+------------------------------+-----------+
|
|
|
|
Requirements
|
|
************
|
|
|
|
This shield requires a board which provides a configuration that allows an
|
|
SPI interface, an interrupt signal and two GPIO. (see :ref:`shields` for more
|
|
details).
|
|
|
|
.. note::
|
|
Boards that already have a network interface: Check network
|
|
documentation to understand how properly configure both interfaces.
|
|
To keep simple, make sure IEEE 802.15.4 is the only interface enabled
|
|
at Networking -> Link Layer Options. This will avoid problems running
|
|
Zephyr samples.
|
|
|
|
Tested Boards
|
|
=============
|
|
|
|
+-----------------------------+------------------------------+-----------+
|
|
| Board | Disabled Interface | Variation |
|
|
+=============================+==============================+===========+
|
|
| ATMEL sam4s_xplained | | 2 |
|
|
+-----------------------------+------------------------------+-----------+
|
|
| ATMEL sam4e_xpro | Ethernet | 3 , 4 |
|
|
+-----------------------------+------------------------------+-----------+
|
|
| ATMEL sam_v71_xult | Ethernet | 3 , 4 , 5 |
|
|
+-----------------------------+------------------------------+-----------+
|
|
|
|
Sample usage
|
|
************
|
|
|
|
You can try use IEEE 802.15.4 and/or OpenThread with the Zephyr Echo server
|
|
and Echo client samples, which provide out-of-the-box configuration for
|
|
both IEEE 802.15.4 and OpenThread. To enable IEEE 802.15.4 support in the
|
|
samples, build them with ``overlay-802154.conf`` overlay config file. Same
|
|
way, to enable OpenThread support, build them with ``overlay-ot.conf`` overlay
|
|
config file. See :ref:`sockets-echo-server-sample` and
|
|
:ref:`sockets-echo-client-sample` for details.
|
|
|
|
Build and Programming
|
|
*********************
|
|
|
|
Set ``-DSHIELD=<shield designator>`` when you invoke ``west build``.
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/net/sockets/echo_server
|
|
:host-os: unix
|
|
:board: sam4s_xplained
|
|
:gen-args: -DOVERLAY_CONFIG=overlay-802154.conf
|
|
:shield: atmel_rf2xx_xplained
|
|
:goals: build flash
|
|
:compact:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/net/sockets/echo_server
|
|
:host-os: unix
|
|
:board: [sam4e_xpro | sam_v71_xult]
|
|
:gen-args: -DOVERLAY_CONFIG=overlay-802154.conf
|
|
:shield: [atmel_rf2xx_xpro | atmel_rf2xx_legacy]
|
|
:goals: build flash
|
|
:compact:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/net/sockets/echo_server
|
|
:host-os: unix
|
|
:board: [sam_v71_xult | frdm_k64f | nucleo_f767zi]
|
|
:gen-args: -DOVERLAY_CONFIG=overlay-802154.conf
|
|
:shield: atmel_rf2xx_arduino
|
|
:goals: build flash
|
|
:compact:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/net/sockets/echo_server
|
|
:host-os: unix
|
|
:board: lpcxpresso55s69_ns
|
|
:gen-args: -DOVERLAY_CONFIG=overlay-802154.conf
|
|
:shield: atmel_rf2xx_microbus
|
|
:goals: build flash
|
|
:compact:
|
|
|
|
References
|
|
**********
|
|
|
|
.. target-notes::
|
|
|
|
.. _AT AVR-RZ600:
|
|
https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/ATAVRRZ600
|
|
|
|
.. _AT REB233-XPRO:
|
|
https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/ATREB233-XPRO
|
|
|
|
.. _Atmel Xplained Pro Hardware Development Kit User Guide:
|
|
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42091-Atmel-Xplained-Pro-Hardware-Development-Kit_User%20Guide.pdf
|
|
|
|
.. _atmel_rf2xx:
|
|
https://github.com/zephyrproject-rtos/zephyr/blob/master/boards/shields/atmel_rf2xx/atmel_rf2xx.overlay
|
|
|
|
.. _atmel_rf2xx_xplained:
|
|
https://github.com/zephyrproject-rtos/zephyr/blob/master/boards/shields/atmel_rf2xx/atmel_rf2xx_xplained.overlay
|
|
|
|
.. _atmel_rf2xx_xpro:
|
|
https://github.com/zephyrproject-rtos/zephyr/blob/master/boards/shields/atmel_rf2xx/atmel_rf2xx_xpro.overlay
|
|
|
|
.. _atmel_rf2xx_legacy:
|
|
https://github.com/zephyrproject-rtos/zephyr/blob/master/boards/shields/atmel_rf2xx/atmel_rf2xx_legacy.overlay
|
|
|
|
.. _atmel_rf2xx_arduino:
|
|
https://github.com/zephyrproject-rtos/zephyr/blob/master/boards/shields/atmel_rf2xx/atmel_rf2xx_arduino.overlay
|
|
|
|
.. _atmel_rf2xx_mikrobus:
|
|
https://github.com/zephyrproject-rtos/zephyr/blob/master/boards/shields/atmel_rf2xx/atmel_rf2xx_mikrobus.overlay
|