User Manual
Version 1.1
2011-07-15
deRFnode and deRFgateway
dresden elektronik
ingenieurtechnik gmbh
Enno-Heidebroek-Str. 12
12 7 Dr
n
rm  n
Tel.: +49 351 31 85 00
Fax: +49 351 3 18 50 10
wireless@dresden-elektronik.de
www. r
n- l k r nik.
Page 38 of 56
9. Programming
9.1.    Requirements (HW/SW)
Usually deRF-radio modules are shipped with a firmware not meeting your application re-
quirements. Exchanging the modules firmware requires:
(1) a firmware binary file,
(2) a suitable JTAG programming adapter,
(3) some programming software.
Each of them is described in the following chapters. Dependent on the radio module used -
either ARM-based (deRFarm7 series) or AVR-based (deRFmega128 series) - concrete rec-
ommendations will differ. Generally we suggest to use MS Windows" as your developing
platform, other operating systems are not supported yet.
The programming methods described below both base on using the JTAG interface. There
will be a third programming option using the USB interface in near future.
9.1.1. Source code and compiler toolchain
If you bought one of our deRF-development kits, the included CD-ROM contains ready-to-
use application-example firmware binary files. In any other case or if you like to build custom
firmware, source code files and a suitable compiler are required in addition. A good starting
point for developing wireless software are the Atmel IEEE 802.15.4 MAC Software Package
[1] or the Atmel bitcloud [2]. Again our Kit-CD already provides the platform adaptions nec-
essary to operate these protocol stacks with your target hardware.
As compiler toolchain, we suggest to use gcc. When working with an AVR MCU, the versions
needed are avr-gcc respective arm-none-eabi-gcc for ARM-based MCUs. Basically the
IAR" compiler may also be used but is not supported by dresden elektronik. Avr-gcc is in-
cluded within the winavr package [3], arm-none-eabi-gcc comes with the yagarto-compiler
package [4] and is extended by the yagarto tools [5]. Supported versions of both are availa-
ble on our Kit-CD. When downloading, explicitly pay attention to use the version stated since
newer releases may cause problems and are unsupported.
9.1.2. JTAG programming and adapter selection
For AVR-based programming, we suggest to use the Atmel AVR ISP mkII Programming
adapter. In case of an ARM-based MCU you may either use the Atmel AT91SAM-ICE JTAG
Emulator [6], Segger J-Link [7], Amontec JTAGkey [8] or OpenOCD USB Adapter [9].
If you do not have a fully compatible combination of radio module and deRFnode/gateway-
baseboard (refer to chapter 3), it may be required to upgrade the missing JTAG header and
for ARM on AVR-boards also the 4x100K pull-up resistor network.
9.1.3. JTAG programming software
The required JTAG programming software differs depending on the chosen JTAG program-
ming adapter. If you use winavr and a AVR ISP mkII, programming might be simply done by
avrdude, a command-line tool which already comes with win-avr. If you prefer a GUI, take
the free AVR-Studio from Atmel [10]. If you took SAM-ICE or the J-Link as programming
adapter, it is recommended to use the SAM-Prog which is part of the SAM-BA programming
software [11]. Amontecs and Olimex programming adapters may be accessed by Openocd
[13].