Difference between revisions of "Dresden Elektronik Radio Modules"

From ATI public wiki
Jump to: navigation, search
Line 1: Line 1:
=Hardware=
+
The purpose of this wiki is to provide documentation about Dresden Elektronik 6LoWPAN radio / MCU modules and all hardware and software solutions related to them, including the MAC / 6LoWPAN stack. By providing explanations, tutorials, and proven solutions to some of the more common problems that one may encounter while working with these modules, hopefully the wiki is able to speed up the development process as the reader do not have to repeat other people's mistakes.
The hardware used Dresden Elektronik radio communication platform described on this page consists of three types of components:
+
* Radio/microcontroller modules
+
* Development boards (can also be replaced with a custom board)
+
* Sniffer (for analyzing communication between the nodes)
+
  
==Radio/Microcontroller Modules==
+
<br>
The Dresden Elektronik radio/MCU modules are small modules consisting of a AVR or ARM based microcontroller with integrated radio.
+
List of all available modules can be seen [https://www.dresden-elektronik.de/funktechnik/products/radio-modules/overview/?L=1 here].
+
  
As of July 2015, three types of Dresden Elektronik Radio/microcontroller modules were available in the institute:
+
----
* deRFmega128
+
* deRFmega256
+
* deRFarm
+
  
{| class="wikitable" style="margin: left;"
+
{|  
|  
+
|style="vertical-align:top;"|
| '''deRFmega128'''
+
* [[Description of the Hardware]]
| '''deRFmega256'''
+
* [[Setting up Development Environment]]
| '''deRFarm'''
+
* [[Using the MAC / 6LoWPAN stack]]
|-
+
|style="vertical-align:top;"|
| '''Chip'''
+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
| ATmega128RFA1
+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
| ATmega256RFR2
+
&nbsp;&nbsp;
| AT91SAM7X512
+
 
|-
+
|style="vertical-align:top;"|
| '''Datasheet'''
+
* [[GNU/Linux related material]]
| [http://www.atmel.com/Images/Atmel-8266-MCU_Wireless-ATmega128RFA1_Datasheet.pdf Link]
+
* [[Known problems/bugs and Workarounds]]
| [http://www.atmel.com/Images/Atmel-8393-MCU_Wireless-ATmega256RFR2-ATmega128RFR2-ATmega64RFR2_Datasheet.pdf Link]
+
| [http://www.atmel.com/Images/doc6120.pdf Link]
+
|-
+
| '''Platform'''
+
| AVR
+
| AVR
+
| ARM
+
|-
+
| '''MCU bit width'''
+
| 8-bit
+
| 8-bit
+
| 32-bit
+
|-
+
| '''Flash size'''
+
| 128 kb
+
| 256 kb
+
| 512 kb
+
|-
+
| '''SRAM size'''
+
| 16 kb
+
| 32 kb
+
| 128 kb
+
|-
+
| '''Operating frequency'''
+
| 16 MHz
+
| 16 MHz
+
| 48 MHz
+
|-
+
| '''Voltage range'''
+
| 1.8 - 3.6 V
+
| 1.8 - 3.6 V
+
| 1.8 - 3.6 V
+
|-
+
| '''Radio transceiver'''
+
| Integrated
+
| Integrated
+
| AT86RF231
+
|-
+
| '''Radio frequency'''
+
| 2.4 GHz
+
| 2.4 GHz
+
| 2.4 GHz
+
|-
+
| '''Interfaces'''
+
| JTAG, UART, I2C, ADC, SPI, GPIO
+
| JTAG, UART, I2C, ADC, SPI, GPIO
+
| JTAG, DBGU, I2C, SPI, UART, USB, RMII, GPIO, ADC
+
|-
+
| '''Power consumption (TX)'''
+
| 18 mA
+
| 18 mA
+
| 45 mA
+
|-
+
| '''Power consumption (RX)'''
+
| 16 mA
+
| 16 mA
+
| 45 mA
+
|-
+
| '''Power consumption (Sleep)'''
+
| < 1 µA
+
| < 1 µA
+
| < 250 µA
+
 
|}
 
|}
  
The 2.4 GHz transceivers that are used in all modules supports the [https://en.wikipedia.org/wiki/IEEE_802.15.4 IEEE 802.15.4 MAC standard].
 
This standard has support for additional network layers like [https://en.wikipedia.org/wiki/6LoWPAN 6LoWPAN] and [https://en.wikipedia.org/wiki/ZigBee ZigBee].
 
However, it should be noted, that although the ZigBee protocol is theoretically supported by the hardware, it is not supported the Dresden Elektronik's communication stack and thus 6LoWPAN should be used.
 
 
==Development Boards==
 
Two different development boards are available for the platform:
 
* '''deRFnode:''' Used for network nodes, supports both AVR and ARM based microcontrollers
 
* '''deRFgateway:''' Used for network gateways between IEEE 802.15.4/6LoWPAN and Ethernet networks. In addition to deRFnode functionality, it includes also an Ethernet connector. Supports only ARM based microcontrollers
 
 
The boards have following features:
 
* '''Measures:''' 70 x 68 x 33 mm
 
* '''Power options:''' 5V DC / USB / 3 x AA batteries
 
* '''Sensors:''' Temperature / light / acceleration
 
* '''I/O:''' 2 Buttons and 3 LEDs
 
* '''On-board storage:''' 4Mbit flash for firmware updates / user data
 
* '''Programming interfaces:''' Standard JTAG connectors
 
* '''Communication interfaces:''' I2C, SPI, GPIO, ADC, debug interface and UART
 
* '''GPIO:''' 46-pin, almost all chip functions available, including the ones used on the development board
 
* '''Networking:''' Ethernet (deRFgateway ONLY)
 
  
A more detailed description of the development boards (including pinouts for different headers) can be found in [https://www.dresden-elektronik.de/funktechnik/products/boards-and-kits/development-boards/derfgateway/description/?L=1&eID=dam_frontend_push&docID=693 deRFnode and deRFgateway user manual]
 
  
 
=Setting up Working Environment=
 
=Setting up Working Environment=

Revision as of 19:36, 8 July 2015

The purpose of this wiki is to provide documentation about Dresden Elektronik 6LoWPAN radio / MCU modules and all hardware and software solutions related to them, including the MAC / 6LoWPAN stack. By providing explanations, tutorials, and proven solutions to some of the more common problems that one may encounter while working with these modules, hopefully the wiki is able to speed up the development process as the reader do not have to repeat other people's mistakes.



                        


Setting up Working Environment

Dresden Elektronik radio modules are designed to work with a special software stack developed by Dresden Elektronik and Atmel. In order to use this stack, the working environment and the toolchain need to be configured properly.

This section tries to provide some information on how to set up the environment in order to work with the modules.

Setting up Toolchain

In order to work with the modules, two toolchains are needed - one for compiling and flashing AVR modules and one for ARM modules.

AVR

The AVR toolchain consists of following components:

  • avr-binutils: linker, assembler, etc for the AVR platform
  • avr-gcc: the GNU C cross-compiler for the AVR platform
  • avr-libc: C libraries and header files for the AVR platform
  • avrdude: for uploading the code to the chip

Microsoft Windows

In Windows installing of the AVR toolchain is quite easy. All that is needed is to download and install WinAVR (or Atmel Studio).

Note: Atmel stopped developing WinAVR as a separate entity in 2010 and it is now distributed as a component of the Atmel Studio package. Although the last (2010) seperate version is still available for download, it does not support the newer ATmega256RFR2 controller. For users who do not want to download and install the entire Atmel Studio package, a newer, seperate WinAVR, extracted from the Atmel Studio package is available here.


Setting up IDE

The recommended IDE for usage with the Dresden Elektronik software stack is Eclipse for C/C++ Developers. It can be downloaded for free from here.

After installing Eclipse, a new project containing the Dresden Elektronik communication stack can be created by following the next steps:

  1. File -> New -> Makefile Project with Existing Code
  2. For Existing Code Location, select the path to the toplevel folder of the stack, leave other settings to default and click Finish.