Electronics ru
Advanced Search +


µProg - tiny, fast, portable AVR programmer with SD. Part 2. Usage, Function description, Speed tests

Part 1. Features, Schematic and Description

Turn on by holding the LE(left) button. First, the welcome screen and version info will appear – this vanishes after a while and we are ready to navigate in menu. With UP(up) and DN(down) buttons we chose a desired option, with RI(right) button we accept operation/enter the menu option, with LE(left) we cancel operation/step back in menu, which looks like this:

  • Flash:
    • Write
    • Read
    • Verify
  • Eeprom:
    • Write
    • Read
    • Verify
  • Fusebits:
    • Write
    • Read
    • Verify
    • Default
  • Lockbits:
    • Write
    • Read
    • Verify
    • Chip erase
  • Settings
    • Auto Verify
    • Auto Erase
    • Show Anims
    • Progr bar
    • Files type

µProg - tiny, fast, portable AVR programmer with SD

Function description:
Write – writes data from file to a selected memory of chip. Choose file from list. In case of fusebits and lockbits, writes settings bytes from txt file. File length is a length which is written to memory, rest of memory will not be touched.

Read – reads data from selected memory to a file. File is made automatically in proper directory. Name format is “x.yyy” where x is a file sequential number and yyy is the extension (bin or hex), i.e. “4.bin” or “22.hex”. Name is displayed after file saving, it’s good to notice it somewhere. Whole chip memory will be read, no matter how many data it contains. In case of fusebits and lockbits, settings bytes will be saved into txt file.

Verify – verifies data from selected memory with data from selected file. Result is “PASS” or “FAIL at x” where x is the address of first byte in which inconsistency occurred. In case of fusebits and lockbits, verifies settings bytes.
Default – resets all fusebytes to factory settings.

Chip erase – internal command “chip erase” erases whole memory and resets lockbits protection.

Options description:
Auto verify – allows to verify written memory (just like the “verify” option) but it is automatically performed after each one write process. Settings: ON or OFF. Concerns only flash and eeprom operations, fusebits and lockbits are read irrespectively after write.

Auto erase – automatically performs the “chip erase” command before every each write process to flash memory. Settings: ON or OFF. Concerns only flash memory, which must be erased each time before writing. Exceptions is, when we know that part of flash we want to write is already erased, and we have some data at the end of this memory (i.e. bootloader). Disabling this options will cause overwrite data without erasing, and if file is prepared properly, it will not touch the bootloader space.

Show anims – shows funny animations after each operation, depending if it was successful or not. Settings: ON or OFF. Animation can be break by pressing the LE button. These are funny animations, i’m sure that seasoned internet user will recognize them :) Animations are repeatedly opened BMP files from proper directory – so they can be easily replaced with our own images. File format: Bitmap (*.BMP), 84×48 pix, monochromatic (2bit). Playing sequence is not alphabetical, files are opened in that order in which they were copied to memory card.

Progr bar – progress bar for write, read, and verify operations for flash and eeprom memories. Settings: ON or OFF. Progress bar slows down programming process, see “speed tests” section.

Files type – allow to chose file type on which we will be operating. Settings: BIN or HEX. Concerns operations on flash end eeprom memories, and depending on the choice, only HEX or BIN files will be listed when opening files list. When reading, also appropriate file will be created (in case of HEX files, also CRC will be calculated).

Speed tests:
Speed test made with Atmega644A as target running at 25MHz, SCK speed 4MHz, flash memory, 64kB file size, programmer speed 16MHz:

BIN file, disabled progress bar:
Write from file: 5,1s.
Read to file: 4,4s.

BIN file, enabled progress bar:
Write from file: 5,1s.
Read to file: 5,0s.

HEX file, disabled progress bar:
Write from file: 12,5s.
Read to file: 11,6s.

HEX file, enabled progress bar:
Write from file: 12,5s.
Read to file: 12,2s.

As seen, the higher speeds are achievable when working with BIN files, because file length is the data length and there is no data formatting etc. Read from HEX files first require to read whole file and calculate the length of data, and when write to HEX we need to form data and calculate CRC of each row – so its take more time.

Progress bar does not slow down the programming process if target chip is programmed in page mode (like in above test). When programming in byte mode or reading (which is always performed in byte mode), enabled progress bar can significantly slow down the process.

Part 3. Software, Memory card, files, Firmware update, Demonstration

Slices ↓
Radiolocman facebook Radiolocman twitter Radiolocman google plus