patch #8719: Support Over-the-Air bootloading with XBeeBoot
Submitted by David Sainty: * xbee.c: New programmer * xbee.h: (Dito.) * pgm_type.c: Add xbee.h * avrdude.conf.in (xbee): New programmer * Makefile.am (libavrdude_a_SOURCES): add xbee.c, xbee.h * avrdude.1: document the new programmer * doc/avrdude.texi: (Dito.) git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1477 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
parent
9a15fcb25f
commit
8004e38403
1
AUTHORS
1
AUTHORS
|
@ -25,6 +25,7 @@ Contributors:
|
||||||
Jim Paris <jim@jtan.com>
|
Jim Paris <jim@jtan.com>
|
||||||
Jan Egil Ruud <janegil.ruud@microchip.com>
|
Jan Egil Ruud <janegil.ruud@microchip.com>
|
||||||
David Mosberger-Tang
|
David Mosberger-Tang
|
||||||
|
David Sainty
|
||||||
|
|
||||||
For minor contributions, please see the ChangeLog files.
|
For minor contributions, please see the ChangeLog files.
|
||||||
|
|
||||||
|
|
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
||||||
|
2021-11-22 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
|
||||||
|
|
||||||
|
Submitted by David Sainty:
|
||||||
|
patch #8719: Support Over-the-Air bootloading with XBeeBoot
|
||||||
|
* xbee.c: New programmer
|
||||||
|
* xbee.h: (Dito.)
|
||||||
|
* pgm_type.c: Add xbee.h
|
||||||
|
* avrdude.conf.in (xbee): New programmer
|
||||||
|
* Makefile.am (libavrdude_a_SOURCES): add xbee.c, xbee.h
|
||||||
|
* avrdude.1: document the new programmer
|
||||||
|
* doc/avrdude.texi: (Dito.)
|
||||||
|
|
||||||
2021-11-14 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
|
2021-11-14 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
|
||||||
|
|
||||||
Submitted by Ivan Frederiks:
|
Submitted by Ivan Frederiks:
|
||||||
|
|
|
@ -190,7 +190,9 @@ libavrdude_a_SOURCES = \
|
||||||
usbtiny.c \
|
usbtiny.c \
|
||||||
update.c \
|
update.c \
|
||||||
wiring.h \
|
wiring.h \
|
||||||
wiring.c
|
wiring.c \
|
||||||
|
xbee.h \
|
||||||
|
xbee.c
|
||||||
libavrdude_la_SOURCES = $(libavrdude_a_SOURCES)
|
libavrdude_la_SOURCES = $(libavrdude_a_SOURCES)
|
||||||
libavrdude_la_LDFLAGS = -version-info 1:0
|
libavrdude_la_LDFLAGS = -version-info 1:0
|
||||||
|
|
||||||
|
|
2
NEWS
2
NEWS
|
@ -47,6 +47,7 @@ Current:
|
||||||
- linuxspi (direct SPI bus e.g. on Raspberry Pi devices)
|
- linuxspi (direct SPI bus e.g. on Raspberry Pi devices)
|
||||||
- PICkit4, Snap, PKoB
|
- PICkit4, Snap, PKoB
|
||||||
- iseavrprog
|
- iseavrprog
|
||||||
|
- XBeeBoot
|
||||||
|
|
||||||
* Bugfixes:
|
* Bugfixes:
|
||||||
bug #47550: Linux GPIO broken
|
bug #47550: Linux GPIO broken
|
||||||
|
@ -110,6 +111,7 @@ Current:
|
||||||
patch #9079: Fix ftdi_syncbb teardown (supersedes #9893)
|
patch #9079: Fix ftdi_syncbb teardown (supersedes #9893)
|
||||||
patch #9122: Fixed MISO sampling in ftdi_syncbb
|
patch #9122: Fixed MISO sampling in ftdi_syncbb
|
||||||
patch #9123: ftdi_syncbb: use FT245R_CYCLES in ft245r_set_bitclock()
|
patch #9123: ftdi_syncbb: use FT245R_CYCLES in ft245r_set_bitclock()
|
||||||
|
patch #8719: Support Over-the-Air bootloading with XBeeBoot
|
||||||
|
|
||||||
* Internals:
|
* Internals:
|
||||||
- New avrdude.conf keyword "family_id", used to verify SIB attributes
|
- New avrdude.conf keyword "family_id", used to verify SIB attributes
|
||||||
|
|
35
avrdude.1
35
avrdude.1
|
@ -18,7 +18,7 @@
|
||||||
.\"
|
.\"
|
||||||
.\" $Id$
|
.\" $Id$
|
||||||
.\"
|
.\"
|
||||||
.Dd DATE September 19, 2020
|
.Dd DATE November 22, 2021
|
||||||
.Os
|
.Os
|
||||||
.Dt AVRDUDE 1
|
.Dt AVRDUDE 1
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -531,6 +531,22 @@ location in the USB hierarchy. See the the respective
|
||||||
.Em Troubleshooting
|
.Em Troubleshooting
|
||||||
entry in the detailed documentation for examples.
|
entry in the detailed documentation for examples.
|
||||||
.Pp
|
.Pp
|
||||||
|
For the XBee programmer the target MCU is to be programmed wirelessly over a
|
||||||
|
ZigBee mesh using the XBeeBoot bootloader. The ZigBee 64-bit address for the
|
||||||
|
target MCU's own XBee device must be supplied as a 16-character hexadecimal
|
||||||
|
value as a
|
||||||
|
.Ar port
|
||||||
|
prefix, followed by the
|
||||||
|
.Ql @
|
||||||
|
character, and the serial device to connect to a second directly contactable
|
||||||
|
XBee device associated with the same mesh (with a default baud rate of 9600).
|
||||||
|
This may look similar to:
|
||||||
|
.Pa 0013a20000000001@/dev/tty.serial .
|
||||||
|
.Pp
|
||||||
|
For diagnostic purposes, if the target MCU with an XBeeBoot bootloader is
|
||||||
|
connected directly to the serial port, the 64-bit address field can be
|
||||||
|
omitted. In this mode the default baud rate will be 19200.
|
||||||
|
.Pp
|
||||||
For programmers that attach to a serial port using some kind of
|
For programmers that attach to a serial port using some kind of
|
||||||
higher level protocol (as opposed to bit-bang style programmers),
|
higher level protocol (as opposed to bit-bang style programmers),
|
||||||
.Ar port
|
.Ar port
|
||||||
|
@ -1100,6 +1116,23 @@ Programmer will erase configuration section with option
|
||||||
(chip erase), rather than entire chip.
|
(chip erase), rather than entire chip.
|
||||||
Only applicable to TPI devices (ATtiny 4/5/9/10/20/40).
|
Only applicable to TPI devices (ATtiny 4/5/9/10/20/40).
|
||||||
.El
|
.El
|
||||||
|
.It Ar xbee
|
||||||
|
Extended parameters:
|
||||||
|
.Bl -tag -offset indent -width indent
|
||||||
|
.It Ar xbeeresetpin=<1..7>
|
||||||
|
Select the XBee pin DIO<1..7> that is connected to the MCU's
|
||||||
|
.Ql /RESET
|
||||||
|
line. The programmer needs to know which DIO pin to use to reset into the
|
||||||
|
bootloader. The default (3) is the DIO3 pin (XBee pin 17), but some
|
||||||
|
commercial products use a different XBee pin.
|
||||||
|
.Pp
|
||||||
|
The remaining two necessary XBee-to-MCU connections are not selectable - the
|
||||||
|
XBee DOUT pin (pin 2) must be connected to the MCU's
|
||||||
|
.Ql RXD
|
||||||
|
line, and the XBee DIN pin (pin 3) must be connected to the MCU's
|
||||||
|
.Ql TXD
|
||||||
|
line.
|
||||||
|
.El
|
||||||
.El
|
.El
|
||||||
.Sh FILES
|
.Sh FILES
|
||||||
.Bl -tag -offset indent -width /dev/ppi0XXX
|
.Bl -tag -offset indent -width /dev/ppi0XXX
|
||||||
|
|
|
@ -363,6 +363,14 @@ programmer
|
||||||
type = "arduino";
|
type = "arduino";
|
||||||
connection_type = serial;
|
connection_type = serial;
|
||||||
;
|
;
|
||||||
|
|
||||||
|
programmer
|
||||||
|
id = "xbee";
|
||||||
|
desc = "XBee Series 2 Over-The-Air (XBeeBoot)";
|
||||||
|
type = "xbee";
|
||||||
|
connection_type = serial;
|
||||||
|
;
|
||||||
|
|
||||||
# this will interface with the chips on these programmers:
|
# this will interface with the chips on these programmers:
|
||||||
#
|
#
|
||||||
# http://real.kiev.ua/old/avreal/en/adapters
|
# http://real.kiev.ua/old/avreal/en/adapters
|
||||||
|
|
|
@ -30,7 +30,7 @@ For avrdude version @value{VERSION}, @value{UPDATED}.
|
||||||
|
|
||||||
Copyright @copyright{} 2003, 2005 Brian Dean
|
Copyright @copyright{} 2003, 2005 Brian Dean
|
||||||
|
|
||||||
Copyright @copyright{} 2006 - 2016 J@"org Wunsch
|
Copyright @copyright{} 2006 - 2021 J@"org Wunsch
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of
|
Permission is granted to make and distribute verbatim copies of
|
||||||
this manual provided the copyright notice and this permission notice
|
this manual provided the copyright notice and this permission notice
|
||||||
|
@ -584,7 +584,22 @@ and Mac OS but not on Windows. For more information about AVR-Doper see
|
||||||
For the USBtinyISP, which is a simplistic device not implementing
|
For the USBtinyISP, which is a simplistic device not implementing
|
||||||
serial numbers, multiple devices can be distinguished by their
|
serial numbers, multiple devices can be distinguished by their
|
||||||
location in the USB hierarchy.
|
location in the USB hierarchy.
|
||||||
@xref{Troubleshooting}, for examples.
|
See the respective
|
||||||
|
@xref{Troubleshooting} entry for examples.
|
||||||
|
|
||||||
|
For the XBee programmer the target MCU is to be programmed wirelessly
|
||||||
|
over a ZigBee mesh using the XBeeBoot bootloader. The ZigBee 64-bit
|
||||||
|
address for the target MCU's own XBee device must be supplied as a
|
||||||
|
16-character hexadecimal value as a port prefix, followed by the
|
||||||
|
@code{@@} character, and the serial device to connect to a second
|
||||||
|
directly contactable XBee device associated with the same mesh (with
|
||||||
|
a default baud rate of 9600). This may look similar to:
|
||||||
|
@code{0013a20000000001@/dev/tty.serial}.
|
||||||
|
|
||||||
|
For diagnostic purposes, if the target MCU with an XBeeBoot
|
||||||
|
bootloader is connected directly to the serial port, the
|
||||||
|
64-bit address field can be omitted. In this mode the
|
||||||
|
default baud rate will be 19200.
|
||||||
|
|
||||||
For programmers that attach to a serial port using some kind of
|
For programmers that attach to a serial port using some kind of
|
||||||
higher level protocol (as opposed to bit-bang style programmers),
|
higher level protocol (as opposed to bit-bang style programmers),
|
||||||
|
@ -959,6 +974,22 @@ rather than entire chip.
|
||||||
Only applicable to TPI devices (ATtiny 4/5/9/10/20/40).
|
Only applicable to TPI devices (ATtiny 4/5/9/10/20/40).
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@item xbee
|
||||||
|
Extended parameters:
|
||||||
|
@table @code
|
||||||
|
@item @samp{xbeeresetpin=@var{1..7}}
|
||||||
|
Select the XBee pin @code{DIO<1..7>} that is connected to the MCU's
|
||||||
|
‘/RESET’ line. The programmer needs to know which DIO pin to use to
|
||||||
|
reset into the bootloader. The default (3) is the @code{DIO3} pin
|
||||||
|
(XBee pin 17), but some commercial products use a different XBee
|
||||||
|
pin.
|
||||||
|
|
||||||
|
The remaining two necessary XBee-to-MCU connections are not selectable
|
||||||
|
- the XBee @code{DOUT} pin (pin 2) must be connected to the MCU's
|
||||||
|
‘RXD’ line, and the XBee @code{DIN} pin (pin 3) must be connected to
|
||||||
|
the MCU's ‘TXD’ line.
|
||||||
|
@end table
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@page
|
@page
|
||||||
|
|
|
@ -51,6 +51,7 @@
|
||||||
#include "usbasp.h"
|
#include "usbasp.h"
|
||||||
#include "usbtiny.h"
|
#include "usbtiny.h"
|
||||||
#include "wiring.h"
|
#include "wiring.h"
|
||||||
|
#include "xbee.h"
|
||||||
|
|
||||||
|
|
||||||
const PROGRAMMER_TYPE programmers_types[] = {
|
const PROGRAMMER_TYPE programmers_types[] = {
|
||||||
|
@ -97,6 +98,7 @@ const PROGRAMMER_TYPE programmers_types[] = {
|
||||||
{"usbasp", usbasp_initpgm, usbasp_desc},
|
{"usbasp", usbasp_initpgm, usbasp_desc},
|
||||||
{"usbtiny", usbtiny_initpgm, usbtiny_desc},
|
{"usbtiny", usbtiny_initpgm, usbtiny_desc},
|
||||||
{"wiring", wiring_initpgm, wiring_desc},
|
{"wiring", wiring_initpgm, wiring_desc},
|
||||||
|
{"xbee", xbee_initpgm, xbee_desc},
|
||||||
};
|
};
|
||||||
|
|
||||||
const PROGRAMMER_TYPE * locate_programmer_type(const char * id)
|
const PROGRAMMER_TYPE * locate_programmer_type(const char * id)
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* avrdude - A Downloader/Uploader for AVR device programmers
|
||||||
|
* Copyright (C) 2015-2020 David Sainty
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
#ifndef xbee_h__
|
||||||
|
#define xbee_h__
|
||||||
|
|
||||||
|
extern const char xbee_desc[];
|
||||||
|
void xbee_initpgm (PROGRAMMER * pgm);
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue