WTS: Standalone AVR ISP Programmer module - Page 1
Forum section: electronics / general

author: alank2
author_rank: Super Contributor
timestamp: May 06, 2015, 03:02:49 pm
content: I finished this project and have some extra boards if someone needs something similar.I'm selling each for $69 + $5 for shipping. I've got 4 right now that are available. Drop me a PM if you would like one or have questions.These have 128K of flash on them.Here is the PC side management application:FEATURES:Fully automatic ISP programming requires no interaction from end user.Standalone ISP programming does not require PC or other device.Multiple microcontroller upgrade support, this is especially helpful for upgrading multiple variants with different signatures of the same basic chip.It is also able to match microcontrollers by fuse or lockbit settings as well to differentiate one microcontroller (or product) from another.Multiple firmware image support, a single configuration can upgrade multiple products involving different devices and different firmware and fuse settings.Optional upgrade limit can be set to allow only a specific number of upgrades for each firmware.It keeps track of the number of successful upgrades for each firmware; this information can be later retrieved and viewed using the pc application.ISP program frequency is configurable per microcontroller match to 62.5kHz, 125kHz, 250kHz, 500kHz, 1MHz, 2MHz, and 4MHz.ISP program method can be program only or program and verify.ISP programming is built in for these devices: AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM[1|2B|3B], AT90PWM[216|316], AT90PWM161, AT90PWM81, AT90USB[1286|1287], AT90USB[646|647], AT90USB162, AT90USB82, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega16, ATmega162, ATmega164A, ATmega164P, ATmega165A, ATmega165P, ATmega168, ATmega168P, ATmega169A, ATmega169P, ATmega16HVA, ATmega16HVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega32, ATmega324A, ATmega324P, ATmega324PA, ATmega325, ATmega3250, ATmega3250P, ATmega325P, ATmega328, ATmega328P, ATmega329, ATmega3290, ATmega3290P, ATmega329P, ATmega32C1, ATmega32HVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega48, ATmega48P, ATmega64, ATmega640, ATmega644, ATmega644P, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450P, ATmega645P, ATmega649, ATmega6490, ATmega6490P, ATmega649P, ATmega64C1, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88P, ATmega8HVA, ATmega8U2, ATtiny13, ATtiny1634, ATtiny167, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny4313, ATtiny43U, ATtiny44, ATtiny45, ATtiny461, ATtiny48, ATtiny828, ATtiny84, ATtiny85, ATtiny861, ATtiny87, ATtiny88ISP programming for unknown devices is attempted using an algorithm that determines the flash page size and eeprom page size and whether the eeprom is programming using the page or byte method. This will allow it to try to upgrade parts that are not on the above list.If any failure occurs during the programming process including a final lock bits write and verify, a chip erase will occur and leave the chip unprogrammed.PC application loads from HEX files or ELF files.PC application can load and store configurations to encrypted PC disk file.PC application has single button tasks for board identification, program/verify/test, program, verify, test, quick erase, and secure erase. These quick buttons will automatically perform the action on all attached boards.PC application has an eeprom fill feature which allows writing a single byte value to a specific number of bytes; this can be used to erase or set EEPROM even if the EESAVE fuse is enabled.Able to optionally program the extended, high, and low fuses along with the lockbits.Configuration is stored on the board using encryption so it can't be easily extracted even via i2c directly.Configuration is compressed which is ideal for long repeating values, but can also compress typically code 10-15%.Configuration and flash and eeprom images are crc protected to ensure integrity.Identification string present in configuration to help identify what a board is loaded.Configuration is unable to be downloaded from the board to prevent code retrieval.USB design uses no PC side driver for simplicity, just plug it in and start up the PC application to manage a board.USB protocol between PC application and board is encrypted and crc protected.Board will determine at startup whether it is in usb mode or whether in flash mode at power up.Board is dual powered and can be powered by 2.7V-5V and while it should not be plugged into both USB and a device being programmed at the same time, it has components to protect a lower voltage device being programmed from the possibly higher USB voltage. It also monitors whether USB is connected and will stop driving the MOSI and SCK lines if connected to USB during programming to protect the device from the potentially higher USB voltage.Board has a green and red LED to indicate status.Device program mode:Green blinks when updating and goes solid if successful.Red blinks out error codes if an error occurs.USB mode:Green blinks when connecting and goes solid when USB is connected.Red goes solid when PC is performing an operation on the board.Self diagnostics verifies self signature, fuses, and crc tests flash code.Error codes it may "blink out" if any errors occur:Code://errordiags#define ERRDIAG_UNABLE_TO_ENTER_PROGRAM_MODE 2#define ERRDIAG_UNABLE_TO_READ_SIGNATURE 3#define ERRDIAG_UNABLE_TO_ERASE 4#define ERRDIAG_UNABLE_TO_WRITE_FLASH 5#define ERRDIAG_UNABLE_TO_WRITE_EEPROM 6#define ERRDIAG_UNABLE_TO_WRITE_FUSE 7#define ERRDIAG_UNABLE_TO_WRITE_LOCKBITS 8#define ERRDIAG_FLASH_VERIFY_FAILURE 12#define ERRDIAG_EEPROM_VERIFY_FAILURE 13#define ERRDIAG_NO_MICROCONTROLLER_MATCH_FOUND_IN_STRUCTURE 14#define ERRDIAG_UPGRADE_LIMIT_REACHED 15#define ERRDIAG_STRUCTURE_NO_SIGNATURE 16#define ERRDIAG_STRUCTURE_VERSION_MISMATCH 17#define ERRDIAG_STRUCTURE_FAILS_CRC 18#define ERRDIAG_EEPROM_FAILURE 22#define ERRDIAG_SELFTEST_SIGNATURE_FAILURE 23#define ERRDIAG_SELFTEST_FUSE_FAILURE 24#define ERRDIAG_SELFTEST_LOCKBITS_FAILURE 25#define ERRDIAG_SELFTEST_CRC_FAILURE 26

author: alank2
author_rank: Super Contributor
timestamp: May 19, 2015, 01:34:38 pm
content: Bump!