---
name: "uisp"
section: "1"
platform: "linux"
package: "uisp"
version: "20050207-4.5+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/uisp"
---

# uisp(1)

Micro In-System Programmer for Atmel's AVR MCUs

## NAME

uisp - Micro In-System Programmer for Atmel's AVR MCUs

## SYNOPSIS

**uisp** \[*OPTION*\].. *-dprog=TYPE* *-dpart=AT90XXX* *--FUNCTION*.. \[*if=SOURCE*\] \[*of=DEST*\]

## DESCRIPTION

-

  ### Programming Methods:

- **-dprog**=\<method\>

  - avr910

    Standard Atmel Serial Programmer/Atmel Low Cost Programmer

  - pavr

    http://www.avr1.org/pavr/pavr.html

  - stk500

    Atmel STK500

  - dapa

    Direct AVR Parallel Access

  - stk200

    Parallel Starter Kit STK200, STK300

  - abb

    Altera ByteBlasterMV Parallel Port Download Cable

  - atdh

    Atmel-ISP Download Cable (P/N ATDH1150VPC)

  - avrisp

    Atmel AVR ISP (?)

  - bsd

    http://www.bsdhome.com/avrdude/ (parallel)

  - fbprg

    http://ln.com.ua/~real/avreal/adapters.html (parallel)

  - dt006

    http://www.dontronics.com/dt006.html (parallel)

  - maxi

    Investment Technologies Maxi (parallel)

  - dm04

    Datamekatronik 2004 (parallel)

  - dasa

    serial (RESET=RTS SCK=DTR MOSI=TXD MISO=CTS)

  - dasa2

    serial (RESET=!TXD SCK=RTS MOSI=DTR MISO=CTS)

  - dasa3

    serial (RESET=!DTR SCK=RTS MOSI=TXD MISO=CTS)

### Target Device Selection:

- **-dpart**=part

  Set target abbreviated name or number. For some programmers, if **-dpart** is not given programmer's supported devices are listed. Set **-dpart**=*auto* for auto-select. Auto-select does not work with all programmers, so it is recommended to always specify a target device explicitly.

### Parallel Device Settings:

- **-dlpt**=address\|device name

  specify device name (Linux ppdev, FreeBSD ppi, serial) or direct I/O parallel port address (0x378, 0x278, 0x3BC)

- **-dno-poll**

  Program without data polling (a little slower)

- **-dno-retry**

  Disable retries of program enable command

- **-dvoltage**=value

  Set timing specs according to the power supply voltage in \[V\] (default 3.0)

- **-dt\_sck**=time

  Set minimum SCK high/low time in micro-seconds (default 5)

- **-dt\_wd\_flash**=time

  Set FLASH maximum write delay time in micro-seconds

- **-dt\_wd\_eeprom**=time

  Set EEPROM maximum write delay time in micro-seconds

- **-dt\_reset**=time

  Set reset inactive (high) time in micro-seconds

- **-dinvert**=\[sck\[,mosi\[,miso\[,reset\]\]\]\]\]

  Invert specified lines Use **-v**=*3* option to see current settings.

- **-d89**

  Allow parallel programming of AT89S51 and AT89S52 devices.

### Atmel Low Cost Programmer Serial Device Settings:

- **-dserial**=device name

  Set serial interface as /dev/ttyS\* (default /dev/avr)

- **-dspeed**=1200\|2400\|4800\|9600\|19200\|38400\|57600\|115200

  Set speed of the serial interface (default 19200)

### Stk500 specific options:

- **-dhiv**

  Use Hi-V programming instead of SPI (default is SPI).

- **--rd\_aref**

  Read the ARef Voltage. Note that due to a bug in the stk500 firmware, the read value is sometimes off by 0.1 from the actual value measured with a volt meter.

- **--wr\_aref**=value

  Set the ARef Voltage. Valid values are 0.0 to 6.0 volts in 0.1 volt increments. Value can not be larger than the VTarget value.

- **--rd\_vtg**

  Read the Vtarget Voltage. Note that due to a bug in the stk500 firmware, the read value is sometimes off by 0.1 from the actual value measured with a volt meter.

- **--wr\_vtg**=value

  Set the VTarget Voltage. Valid values are 0.0 to 6.0 volts in 0.1 volt increments.  Value can not be smaller than the ARef value.

- **--rd\_osc**

  Read the oscillator frequency in Hertz.

- **--wr\_osc**=value

  Set the oscillator frequency in Hertz, from 14.06 to 3686400.

### Functions:

- **--upload**

  Upload "input\_file" to the AVR memory.

- **--verify**

  Verify "input\_file" (processed after the **--upload** opt.)

- **--download**

  Download AVR memory to "output\_file" or stdout.

- **--erase**

  Erase device.

- **--segment**=flash\|eeprom\|fuse

  Set active segment (auto-select for AVA Motorola output)

### Fuse/Lock Bit Operations:

- **--rd\_fuses**

  Read all fuses and print values to stdout

- **--wr\_fuse\_l**=byte

  Write fuse low byte

- **--wr\_fuse\_h**=byte

  Write fuse high byte

- **--wr\_fuse\_e**=byte

  Write fuse extended byte

- **--wr\_lock**=byte

  Write lock bits. Argument is a byte where each bit is:\
    Bit5 -\> blb12\
    Bit4 -\> blb11\
    Bit3 -\> blb02\
    Bit2 -\> blb01\
    Bit1 -\> lb2\
    Bit0 -\> lb1

- **--lock**

  Write lock bits \[old method; deprecated\].

### Files:

- **if**=filename

  Input file for the **--upload** and **--verify** functions in Motorola S-records (S1 or S2) or 16 bit Intel format

- **of**=filename

  Output file for the **--download** function in Motorola S-records format, default is standard output

### Other Options:

- **-v**=level

  Set verbose level (-v equals **-v**=*2*, min/max: 0/4, default 1)

- **--hash**=perbytes

  Print hash (default is 32 bytes)

- **--help** **-h**

  Help

- **--version**

  Print version information

- **--terminal**

  Invoke shell-like terminal

## AUTHOR

Written by Uros Platise.

## REPORTING BUGS

Report bugs to \<uisp-dev@nongnu.org\>

## SEE ALSO

http://savannah.nongnu.org/download/uisp/

## COPYRIGHT

(c) 1997-1999 Uros Platise, 2000-2004 Marek Michalkiewicz

uisp is free software, covered by the GNU General Public License.  You are welcome to change it and/or distribute copies of it under the conditions of the GNU General Public License.
