To preapre the firmware image and flash it onto the device some
different steps are needed as the bootloader uses Atmels DFU variant.
Document the use of dfu-programmer to get the firmware onto the device.
The Busware HUL v1.1 dongle is a product very similar
to the rzusb dongle but with the at86rf212 instead of
the at86rf230 transceiver.
Some code refactoring has been made in order to better
support multiple hardware targets. This includes:
The reset_rf functions are now in the board specific files.
The led functions are now in the board specific files.
The register read/write functions are moved from mac.c to the generic
board.c file as they are used by functions like reset_rf that are
not within the mac.c file. Also the subreg_read and subreg_write
functions were introduced for convenience.
The function to change state is now also in board.c.
The hardware types are moved into the atusb.h file (which is always
synchrornized with the linux atusb driver) because they are now used
by the driver to identify and configure the hardware.
Within the makefile a new target name is specified called: hulusb
Signed-off-by: Josef Filzmaier <j.filzmaier@gmx.at>
This flag can be used to enable debugging over uart. Currently only
available for boards with the at90usb1287 chip.
Signed-off-by: Josef Filzmaier <j.filzmaier@gmx.at>
So far we do not need this in the firmware or in the driver but this might
become handy later on.
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
With this switch we have RX as well as TX extended operation mode for the
transceiver enabled. Tested and verified for atusb as well as rzusb.
The biggest change coming with this is that the hardware no handles automatic
retransmit of frames if an ACK was requested but not received. The needed
changes to the atusb kernel driver are also done already and will be submitted
once we release version 0.3 with this change included.
This check is more harm than good. For example in promiscuous mode we might want
to get frames with invalid CRC. The kernel subsystem is in a way better
situation to understand what the user want thus we deliver all packets and leave
the decision to him.
This patch adds support for the rzusbstick for the atusb firmware.
More detailed information about this usb stick:
http://www.atmel.com/tools/rzusbstick.aspx
Original I have the rzraven kit:
http://www.atmel.com/tools/rzraven.aspx
Which comes with a special cable and avr dragon programmer. You need
some programmer and wires to the programmers pins. To lookup how to
connect the programmer to the rzusbstick pinout, see:
http://www.atmel.com/Images/doc8117.pdf
page 22 (schematics of the rzusbstick).
Difference between atusb and rzusbstick(rzusb) is mainly the at86rf231
vs at86rf230 one. The rzusb contains the at86rf230 which is a little bit
hard to deal with it (and has a huge errata inside the datasheet).
Nevertheless with small schanges the atusb firmware can run now on the
rzusb. The rzusb contains also a bigger mcu, so we can maybe cache more
pdus for receive handling.
To compile the rzusb firmware call:
make NAME=rzusb
this will generate the rzusb.bin
then call the programmer (in my case avrdude):
avrdude -P usb -c dragon_jtag -p usb1287 -U flash:w:rzusb.bin
NOTE: currently there is no chance (I suppose) to ensure that the atusb
receive the correct firmware, so don't try to flash the atusb with the
rzusb firmware! Also the vendor and product id is the same.
This currently a RFC, it's a quick hack and I think we should update
more the documentation to support the rzusb.
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Cc: Stefan Schmidt <stefan@osg.samsung.com>
Cc: Werner Almesberger <werner@almesberger.net>
The kernel driver will now ask for ATUSB_EUI64_READ during init and sets this
extended address if available. Use the atusb-eui64 utility from the tools folder
to read or set the permanent address.
After a new address is set the device will reset to make sure we are in a sane
state after the change.
With version 0.2 we made the first public release in binary form of the
firmware. This comes together with the merge of the ATUSB driver to the
mainline linux kernel.
DFU files need to have a valid DFU suffix which provides information about the
USB vendor and product ID it should be used for as well as same basic CRC file
integrity checking. The dfu-suffix tool can add this and got added to dfu-utils
in 0.7.
With the Makefile changes we take the original atusb-bin file, make a copy and
add the DFU suffix it before flashing.
This decreases the retrieval time for a frame of 102 bytes from
660 us to 384 us, corresponding to a speed change from about
1.26 Mbps to 2.17 Mbps (102 bytes plus 2 bytes overhead).
queued_rx held a frame in the transceiver's receive buffer until we could
transfer it. This may cause frame loss if a new reception begins.
We now retrieve frames from the transceiver immediately and buffer them
in the MCU.