mirror of
https://github.com/avrdudes/avrdude.git
synced 2026-09-29 12:28:41 +03:00
Reformat spacing/comments in src/doc/avrdude.texi
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user