UISP(1)

🌸 UISP(1) β€” like, the manual page for uisp 🌸

Hey bestie πŸ’– so this is uisp, straight out of the User Commands section of the manual pages (section 1, iykyk), and it's basically the little tool that talks to your AVR chips and makes them do stuff. Buckle up, we're going through the whole thing together, no skipping 🫢


✨ NAME ✨

uisp β€” the manual page for uisp. That's it, that's the name section 😌


πŸŽ€ SYNOPSIS πŸŽ€

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

Like, you give it a bunch of options, you tell it what programmer type you've got with -dprog=TYPE, you name your part with -dpart=AT90XXX, then you pick a function (--upload, --verify, whatever the vibe is), and optionally point at a source with if=SOURCE or a destination with of=DEST. Simple as that, periodt πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

πŸ”₯ Programming Methods πŸ”₯

The -dprog=avr910|pavr|stk500 crew

  • avr910 β€” the Standard Atmel Serial Programmer / Atmel Low Cost Programmer. Classic. Iconic.
  • pavr β€” over at http://www.avr1.org/pavr/pavr.html
  • stk500 β€” the Atmel STK500

And the -dprog=dapa|stk200|abb|atdh|avrisp|bsd|fbprg|dt006|maxi|dm04|dasa|dasa2|dasa3 girlies

  • 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 the target's abbreviated name or number. Real talk: for some programmers, if you don't pass -dpart, the programmer's supported devices get listed at you instead. You can also set -dpart=auto for auto-select, but heads up bestie β€” auto-select does not work with all programmers, so it's recommended to always specify a target device explicitly. Always. Specify. It. πŸ™ˆ

πŸ–₯️ Parallel Device Settings πŸ–₯️

  • -dlpt=address|device name β€” specify the device name (Linux ppdev, FreeBSD ppi, serial) or a direct I/O parallel port address (0x378, 0x278, 0x3BC)
  • -dno-poll β€” program without data polling (a little slower, but she still gets there πŸ’…)
  • -dno-retry β€” disable retries of the 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 the specified lines. Use the -v=3 option to see the current settings, iykyk πŸ‘€
  • -d89 β€” allow parallel programming of AT89S51 and AT89S52 devices

🧚 Atmel Low Cost Programmer Serial Device Settings 🧚

  • -dserial=device name β€” set the serial interface as /dev/ttyS* (default /dev/avr)
  • -dspeed=1200|2400|4800|9600|19200|38400|57600|115200 β€” set the 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. Ngl, 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. Same firmware-bug situation: 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 the 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. The 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]. Like, it still exists but she's retired, don't @ her βœ‹

πŸ“ Files πŸ“

  • if=filename β€” the input file for the --upload and --verify functions, in Motorola S-records (S1 or S2) or 16 bit Intel format
  • of=filename β€” the 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. A legend, fr fr 🫢


πŸ’€ REPORTING BUGS πŸ’€

Report bugs to <uisp-dev@nongnu.org> β€” they want the tea, bestie, so tell them πŸ›


πŸ”— SEE ALSO πŸ”—

http://savannah.nongnu.org/download/uisp/ β€” go look, it's giving resourceful ✨


(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. Slay πŸ’…


And that's the whole page, bestie β€” uisp version 20050207, dated February, 2024, living in UISP(1) forever. Go flash something iconic πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from