AVRprog
"Burning" Flash-EPROM and EEPROM images into the MCU
Description
This tool can be used to burn the image files created by the assembler
or compiler into the target MCU using some programming hardware.
AVRprog is based on a component model.
The 'frontend' contains the user interface, the 'backend' contains the
drivers for the programming hardware.
'Frontend' and 'backend' are communicating via the backend API.
It is further possible to split 'frontend' and 'backend' to different
machines using a client/server architecture with the 'netlayer'.
A complete package with all neccessary components is available as
a module for
AVRtoolbox.
Component model
There are three main components:
- Frontend:
Implements the user interface. This part can be a simple text
based command interpreter or a graphical window with buttons and
input fields.
The 'frontend' uses the backend API to communicate with the
'backend'.
- Backend:
The 'backend' is something like a driver manager. The programmer
drivers are part of the 'backend'.
The 'backend' is responsible for autodetection of the correct
programmer driver and presenting an uniform interface for all
drivers to the 'frontend', the backend API.
- Netlayer:
The 'netlayer' is not mandatory! It is an extension of the above
construction.
It uses a network connection between a client and a server machine
(Note: This can be a single machine using network loopback).
A daemon running on the server machine uses the 'backend
interface' to access the local 'backend'. On the client machine a
backend API is provided for the 'frontend'.
The 'netlayer' is therefore transparent for the 'frontend'.
Use components with matching backend API versions (unless you
know what you are doing)!
Functional layout
Without network support:
'frontend'
|
|-- 'backend'
|
|-- driver
|
|-- programmer
With network support:
'frontend'
|
|-- 'netlayer' client
.
. . . . . . . . . . . . . 'netlayer' server
(network connection) |
|-- 'backend'
|
|-- driver
|
|-- programmer
Available frontends
Get them from
download page.
- UNIX graphical frontend for X (requires TCL/TK 8.0 or higher)
(Man page)
Available backends
Get them from
download page.
- UNIX backend
Versions:
- Earlier versions
Do not use!
- V0.12
Fuse bit programming is not supported.
Backend API V0.3 is provided.
Enclosed drivers:
- Serial1 V0.9
For our selfmade
Serial1
programmer.
Use POSIX termios for port access.
- SerialSTK V0.5
For Atmel STK200/300 or compatible programmers like our
SerialSTK
clone.
The IRQ is not used, the OS driver for the IEEE-1284
port can be set to polling mode.
Note:
This driver currently requires GNU/Linux 2.2 or later.
Use ppdev kernel driver for port access.
Data polling is supported for Flash-EPROM and EEPROM.
- AVR910 V0.1
For serial and parallel programmers that use the
protocol of the serial one described in Atmel
Application Note AVR910.
More info: AVR910 programmers
Use POSIX termios for port access.
- Akizuki V0.2
For AE-AVR PRG programmer
from Akizuki Denshi.
Use POSIX termios for port access.
- STK500 V0.1
For STK500 evaluation board from Atmel.
Use POSIX termios for port access.
- AVR109 V0.0
For selfprogramming capable AVR devices with bootloader
using the protocol described in Atmel Application Note
AVR109.
More info: AVR910 programmers
Use POSIX termios for port access.
Supported devices.
- V0.13
Supports fusebit programming and oscillator calibration.
Backend API V0.4 is provided.
All drivers now use driver API V0.1.
Enclosed drivers:
- Serial1 V0.10
For our selfmade
Serial1
programmer.
Use POSIX termios for port access.
- SerialSTK V0.6
For Atmel STK200/300 or compatible programmers like our
SerialSTK
clone.
The IRQ is not used, the OS driver for the IEEE-1284
port can be set to polling mode.
Note:
This driver is only available for GNU/Linux and NetBSD.
For port access parport/ppdev is used on GNU/Linux and
ppbus/ppui on NetBSD.
Data polling is supported for Flash-EPROM and EEPROM.
- AVR910 V0.2
For serial and parallel programmers that use the
protocol of the serial one described in Atmel
Application Note AVR910.
More info: AVR910 programmers
Use POSIX termios for port access.
- Akizuki V0.3
For AE-AVR PRG programmer
from Akizuki Denshi.
Use POSIX termios for port access.
- STK500 V0.2
For STK500 evaluation board from Atmel.
Supports STK500 running V1.x firware.
Use POSIX termios for port access.
- AVR109 V0.1
For selfprogramming capable AVR devices with bootloader
using the protocol described in Atmel Application Note
AVR109.
More info: AVR910 programmers
Use POSIX termios for port access.
Supported devices.
- DOS backend
Versions:
- Earlier versions
Do not use!
- V0.1
Fuse bit programming is not supported.
Backend API V0.3 is provided.
Enclosed drivers:
- Serial1 V0.1
For our selfmade
Serial1
programmer.
Use FOSSIL for port access.
- AVR910 V0.0
For serial and parallel programmers that use the
protocol of the serial one described in Atmel
Application Note AVR910.
Use FOSSIL for port access.
Supported devices.
If you want/need support for other programmer and/or MCU types,
contact us.
Available netlayer parts
Get them from
download page.
Clients:
- UNIX netlayer client
Versions:
- Earlier versions
Do not use!
- V0.6
Backend API V0.3 is provided.
Network protocol V0.0 is used.
Servers:
- UNIX netlayer server
(Man page)
Versions:
- Earlier versions
Do not use!
- V0.8
Backend API V0.3 is provided.
Network protocol V0.0 is used.
- DOS netlayer server
Versions:
- Earlier versions
Do not use!
- V0.1
Backend API V0.3 is provided.
Network protocol V0.0 is used.
WATTCP is used for network access.
Changelog
Check the
AVRprog changelog
to get information which version of AVRprog provide
which features.
Man pages
AVRprog frontend man page
AVRprog daemon man page
Last update: 2006-04-01
Home
Contact