Reformat spacing/comments in src/doc/avrdude.texi

This commit is contained in:
Stefan Rueger
2024-08-18 01:54:11 +01:00
parent 4dc273d990
commit 16378014d8

View File

@@ -103,7 +103,7 @@ Copyright @copyright{} Hans Eirik Bull, Brian S. Dean, Stefan R@"uger and J@"org
@end ifinfo
@menu
* Introduction::
* Introduction::
* Command Line Options::
* Terminal Mode Operation::
* Configuration Files::
@@ -162,14 +162,14 @@ attached to a physical serial port. Connecting to a serial port
emulated on top of USB is likely to not work at all, or to work
abysmally slow.
If you happen to have a Linux system with at least 4 hardware GPIOs
If you happen to have a Linux system with at least 4 hardware GPIOs
available (like almost all embedded Linux boards) you can do without any
additional hardware - just connect them to the SDO, SDI, RESET and SCK
pins of the AVR's SPI interface and use the linuxgpio programmer
type. Older boards might use the labels MOSI for SDO and MISO for SDI. It bitbangs
the lines using the Linux sysfs GPIO interface. Of course, care should
be taken about voltage level compatibility. Also, although not strictly
required, it is strongly advisable to protect the GPIO pins from
be taken about voltage level compatibility. Also, although not strictly
required, it is strongly advisable to protect the GPIO pins from
overcurrent situations in some way. The simplest would be to just put
some resistors in series or better yet use a 3-state buffer driver like
the 74HC244. Have a look at
@@ -223,7 +223,7 @@ The STK500, JTAG ICE, avr910, and avr109/butterfly use the serial port to commun
The STK600, JTAG ICE mkII/3, AVRISP mkII, USBasp, avrftdi (and derivatives), and USBtinyISP
programmers communicate through the USB, using @code{libusb} as a
platform abstraction layer.
The avrftdi adds support for the FT2232C/D, FT2232H, and FT4232H devices. These all use
The avrftdi adds support for the FT2232C/D, FT2232H, and FT4232H devices. These all use
the MPSSE mode, which has a specific pin mapping. Bit 0 (the lsb of the byte in the config
file) is SCK. Bit 1 is SDO, and Bit 2 is SDI. Bit 3 usually reset. The 2232C/D parts
are only supported on interface A, but the H parts can be either A or B (specified by the
@@ -327,12 +327,12 @@ The Curiosity Nano board is supported in UPDI mode. It is dubbed ``PICkit on
Board'', thus the name @code{pkobn_updi}.
The MPLAB(R) PICkit 5 is currently only supported in UPDI mode.
SerialUPDI programmer implementation is based on Microchip's
@emph{pymcuprog} (@url{https://github.com/microchip-pic-avr-tools/pymcuprog})
SerialUPDI programmer implementation is based on Microchip's
@emph{pymcuprog} (@url{https://github.com/microchip-pic-avr-tools/pymcuprog})
utility, but it also contains some performance improvements included in
Spence Konde's @emph{DxCore} Arduino core (@url{https://github.com/SpenceKonde/DxCore}).
In a nutshell, this programmer consists of simple USB->UART adapter, diode
and couple of resistors. It uses serial connection to provide UPDI interface.
In a nutshell, this programmer consists of simple USB->UART adapter, diode
and couple of resistors. It uses serial connection to provide UPDI interface.
@xref{SerialUPDI Programmer} for more details and known issues.
The jtag2updi programmer is supported,
@@ -354,7 +354,7 @@ See the section on @emph{extended parameters}
below for Teensy specific options.
@menu
* History::
* History::
@end menu
@c
@@ -563,8 +563,8 @@ for the method of searching on Windows.
If @var{config-file} is written as @var{+filename}
then this file is read after the system wide and user configuration
files. This can be used to add entries to the configuration
without patching your system wide configuration file. It can be used
several times, the files are read in same order as given on the command
without patching your system wide configuration file. It can be used
several times, the files are read in same order as given on the command
line.
@item -N
@@ -1437,8 +1437,8 @@ is not verified but used directly within the
C programming language.
@item @samp{no_blockmode}
Disables the default checking for block transfer capability.
Use
@samp{no_blockmode} only if your @samp{AVR910}
Use
@samp{no_blockmode} only if your @samp{AVR910}
programmer creates errors during initial sequence.
@item @samp{help}
Show help menu and exit.
@@ -1636,16 +1636,16 @@ The only advantage of the ``raw-wire'' mode is that different SPI frequencies
are available. Paged writing is not implemented in this mode.
@item @samp{pullups}
Enable the Bus Pirate's built-in pull-up resistors. These resistors are
useful when working with different voltage levels. VPU pin of the Bus Pirate
must be connected to an external voltage.
For example: connect VPU pin to the +5V pin or an external power supply.
Enable the Bus Pirate's built-in pull-up resistors. These resistors are
useful when working with different voltage levels. VPU pin of the Bus Pirate
must be connected to an external voltage.
For example: connect VPU pin to the +5V pin or an external power supply.
@item @samp{hiz}
Enable the Bus Pirate's HiZ mode on SPI, allowing it to work as an
open-collector and interface with external pull-up circuits.
If the external target circuit does not have pull-ups, the Bus Pirate
will not be able to send data.
Enable the Bus Pirate's HiZ mode on SPI, allowing it to work as an
open-collector and interface with external pull-up circuits.
If the external target circuit does not have pull-ups, the Bus Pirate
will not be able to send data.
@item @samp{ascii}
Attempt to use ASCII mode even when the firmware supports BinMode (binary
@@ -1667,22 +1667,22 @@ significant write speed increase. If use of this mode is not desirable for some
reason, this option disables it.
@item @samp{nopagedread}
Newer firmware versions support in binary mode SPI command some AVR Extended
Newer firmware versions support in binary mode SPI command some AVR Extended
Commands. Using the ``Bulk Memory Read from Flash'' results in a
significant read speed increase. If use of this mode is not desirable for some
reason, this option disables it.
@item @samp{cpufreq=@var{125..4000}}
This sets the @emph{AUX} pin to output a frequency of @var{n} kHz. Connecting
the @emph{AUX} pin to the XTAL1 pin of your MCU, you can provide it a clock,
the @emph{AUX} pin to the XTAL1 pin of your MCU, you can provide it a clock,
for example when it needs an external clock because of wrong fuses settings.
Make sure the CPU frequency is at least four times the SPI frequency.
Make sure the CPU frequency is at least four times the SPI frequency.
@item @samp{serial_recv_timeout=@var{1...}}
This sets the serial receive timeout to the given value.
The timeout happens every time avrdude waits for the BusPirate prompt.
Especially in ascii mode this happens very often, so setting a smaller value
can speed up programming a lot.
This sets the serial receive timeout to the given value.
The timeout happens every time avrdude waits for the BusPirate prompt.
Especially in ascii mode this happens very often, so setting a smaller value
can speed up programming a lot.
The default value is 100 ms. Using 10 ms might work in most cases.
@item @samp{help}
@@ -2346,8 +2346,8 @@ Terminal mode also supports a command history so that previously entered
commands can be recalled and edited.
@menu
* Terminal Mode Commands::
* Terminal Mode Examples::
* Terminal Mode Commands::
* Terminal Mode Examples::
@end menu
@node Terminal Mode Commands, Terminal Mode Examples, Terminal Mode Operation, Terminal Mode Operation
@@ -3438,11 +3438,11 @@ this file is the @code{avrdude.rc} file located in the same directory as
the executable.
@menu
* AVRDUDE Defaults::
* Programmer Definitions::
* AVRDUDE Defaults::
* Programmer Definitions::
* Serial Adapter Definitions::
* Part Definitions::
* Other Notes::
* Part Definitions::
* Other Notes::
@end menu
@c
@@ -3549,7 +3549,7 @@ programmer
@end smallexample
@noindent
If a parent is specified, all settings of it (except its ids) are used for the new
If a parent is specified, all settings of it (except its ids) are used for the new
programmer. These values can be changed by new setting them for the new programmer.
@noindent
@@ -4029,7 +4029,7 @@ and socket card:
@item @code{STK600-RC100M-11} @tab @code{STK600-TQFP100} @tab ATmega640 ATmega1280 ATmega2560
@item @code{} @tab @code{STK600-ATMEGA2560} @tab ATmega2560
@item @code{STK600-RC100M-18} @tab @code{STK600-TQFP100} @tab ATmega3250 ATmega3250P ATmega3290 ATmega3290P ATmega6450 ATmega6490
@item @code{STK600-RC032U-20} @tab @code{STK600-TQFP32} @tab AT90USB82 AT90USB162 ATmega8U2 ATmega16U2 ATmega32U2
@item @code{STK600-RC032U-20} @tab @code{STK600-TQFP32} @tab AT90USB82 AT90USB162 ATmega8U2 ATmega16U2 ATmega32U2
@item @code{STK600-RC044U-25} @tab @code{STK600-TQFP44} @tab ATmega16U4 ATmega32U4
@item @code{STK600-RC064U-17} @tab @code{STK600-TQFP64} @tab ATmega32U6 AT90USB646 AT90USB1286 AT90USB647 AT90USB1287
@item @code{STK600-RCPWM-22} @tab @code{STK600-TQFP32} @tab ATmega32C1 ATmega64C1 ATmega16M1 ATmega32M1 ATmega64M1
@@ -4124,7 +4124,7 @@ versions of the bootloader.
SerialUPDI programmer can be used for programming UPDI-only devices
using very simple serial connection.
You can read more about the details here
You can read more about the details here
@url{https://github.com/SpenceKonde/AVR-Guidance/blob/master/UPDI/jtag2updi.md}
SerialUPDI programmer has been tested using FT232RL USB->UART interface
@@ -4147,23 +4147,23 @@ There are several limitations in current SerialUPDI/AVRDUDE integration,
listed below.
Currently available devices support only UPDI NVM programming model 0, 2
3 and 5, but there is also experimental implementation of model 4 - it
3 and 5, but there is also experimental implementation of model 4 - it
has been tested only on a single device, so issues with other devices are
expected. Full NVM v4 mode support will be provided once the hardware is
widely available.
One of the core AVRDUDE features is verification of the connection by
reading device signature prior to any operation, but this operation
is not possible on UPDI locked devices. Therefore, to be able to
is not possible on UPDI locked devices. Therefore, to be able to
connect to such a device, you have to provide @option{-F} to override
this check.
Please note: using @option{-F} during write operation to locked device
Please note: using @option{-F} during write operation to locked device
will force chip erase. Use carefully.
Another issue you might notice is slow performance of EEPROM writing
using SerialUPDI for AVR Dx devices. This can be addressed by changing
@emph{avrdude.conf} section for this device - changing EEPROM page
@emph{avrdude.conf} section for this device - changing EEPROM page
size to 0x20 (instead of default 1), like so:
@example
@@ -4266,11 +4266,11 @@ Other combinations should not show after exit.
@cindex Unix
@menu
* Unix Installation::
* Unix Configuration Files::
* Unix Port Names::
* Unix Installation::
* Unix Configuration Files::
* Unix Port Names::
* Unix USB Permissions::
* Unix Documentation::
* Unix Documentation::
@end menu
@c
@@ -4301,8 +4301,8 @@ is searched for a file named @code{.avrduderc}, and if found, is used to
augment the system default configuration file.
@menu
* FreeBSD Configuration Files::
* Linux Configuration Files::
* FreeBSD Configuration Files::
* Linux Configuration Files::
@end menu
@c
@@ -4338,7 +4338,7 @@ configuration file will be always be @code{/etc/avrdude.conf}.
@noindent
The parallel and serial port device file names are system specific.
MacOS has no default serial or parallel port names, but available
MacOS has no default serial or parallel port names, but available
ports can be found under @code{/dev/cu.*}.
The following table lists the default names for a given system.
@@ -4534,9 +4534,9 @@ such as @option{--prefix}.
@cindex Windows
@menu
* Windows Installation::
* Windows Configuration Files::
* Windows Port Names::
* Windows Installation::
* Windows Configuration Files::
* Windows Port Names::
@c * Documentation::
@end menu
@@ -4559,7 +4559,7 @@ for the latest installation tips.
@cindex Windows configuration files
@menu
* Configuration file names::
* Configuration file names::
* Windows Configuration File Location::
@end menu
@@ -4581,7 +4581,7 @@ AVRDUDE on Windows looks for a system configuration file name of
@node Windows Configuration File Location, , Configuration file names, Windows Configuration Files
@subsubsection Windows Configuration File Location
@cindex Windows configuration file location
@noindent
AVRDUDE on Windows has a different way of searching for the system and
user configuration files. Below is the search method for locating the
@@ -4624,8 +4624,8 @@ The directories that are listed in the PATH environment variable.
@cindex Windows port names
@menu
* Serial Ports::
* Parallel Ports::
* Serial Ports::
* Parallel Ports::
@end menu
@c
@@ -4634,11 +4634,11 @@ The directories that are listed in the PATH environment variable.
@node Serial Ports, Parallel Ports, Windows Port Names, Windows Port Names
@subsubsection Windows Serial Ports
@cindex Windows serial ports
@noindent
When you select a serial port (i.e. when using an STK500) use the
Windows serial port device names such as: com1, com2, etc.
@c
@c Node
@c
@@ -4885,7 +4885,7 @@ Solution: Use the following pin mapping:
@item
Problem: I want to use my AVR Dragon to program an
Xmega device through PDI.
Xmega device through PDI.
Solution: Use the 6 pin ISP header on the Dragon and the following pin mapping:
@@ -4894,7 +4894,7 @@ Solution: Use the 6 pin ISP header on the Dragon and the following pin mapping:
@item @strong{ISP Header} @tab @strong{pins}
@item 1 (SDI) @tab PDI_DATA
@item 2 (VCC) @tab VCC
@item 3 (SCK) @tab
@item 3 (SCK) @tab
@item 4 (SDO) @tab
@item 5 (RESET) @tab PDI_CLK / RST
@item 6 (GND) @tab GND
@@ -4918,26 +4918,26 @@ Solution: Use the following pin mapping:
@end multitable
@item
Problem: I want to program an ATtiny4/5/9/10 device using a serial/parallel
Problem: I want to program an ATtiny4/5/9/10 device using a serial/parallel
bitbang programmer. How to connect the pins?
Solution: Since TPI has only 1 pin for bi-directional data transfer, both
Solution: Since TPI has only 1 pin for bi-directional data transfer, both
@var{SDI} and @var{SDO} pins should be connected to the @var{TPIDATA} pin
on the ATtiny device.
However, a 1K resistor should be placed between the @var{SDO} and @var{TPIDATA}.
The @var{SDI} pin connects to @var{TPIDATA} directly.
The @var{SCK} pin is connected to @var{TPICLK}.
In addition, the @var{Vcc}, @var{/RESET} and @var{GND} pins should
In addition, the @var{Vcc}, @var{/RESET} and @var{GND} pins should
be connected to their respective ports on the ATtiny device.
@item
Problem: How can I use a FTDI FT232R USB-to-Serial device for bitbang programming?
Solution: When connecting the FT232 directly to the pins of the target Atmel device,
the polarity of the pins defined in the @code{programmer} definition should be
inverted by prefixing a tilde. For example, the @var{dasa} programmer would
look like this when connected via a FT232R device (notice the tildes in
Solution: When connecting the FT232 directly to the pins of the target Atmel device,
the polarity of the pins defined in the @code{programmer} definition should be
inverted by prefixing a tilde. For example, the @var{dasa} programmer would
look like this when connected via a FT232R device (notice the tildes in
front of pins 7, 4, 3 and 8):
@example
@@ -4952,7 +4952,7 @@ programmer
;
@end example
Note that this uses the FT232 device as a normal serial port, not using the
Note that this uses the FT232 device as a normal serial port, not using the
FTDI drivers in the special bitbang mode.
@item