I built a programmer using an Arduino Nano. The 10uF cap is under the Nano.
Since building it, I have reprogrammed the AT85 a lot of times, and the programmer has worked fine.
Edit: To run the chip, I take it out of the programmer and put it on a breadboard. Its program was working OK when single-stepping in AS-7, but the project was designed to work with a crystal (6553600 Hz).
I reset the AVRDude line in AT-7 Tools/External tools to set the low-byte fuses to 0xe6 instead of e2, to accept the crystal, but the program download failed with a bad signature fault.
I googled the causes, and saw that it was due to programming it with no crystal connected, so I modified the programmer so I could connect a crystal and two 12pF caps, but it still gave the same error.
I then reverted to basics and reset the fuses for 'no crystal' and tried again, but I still got the signature problem.
I wrote a super-simple blink program, put an unused chip in the programmer, and programmed it with fuses set to 0xe2 (no crystal). The program loaded without issue and ran correctly.
When I put the previously 'bad' chip in, it still gave signature issues. Here's what it said ...
Note : apparently corrupted chip inserted avrdude.exe: Version 6.3, compiled on Dec 16 2016 at 13:33:19 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch System wide configuration file is "C:\Program Files (x86)\Arduino\h ardware\tools\avr\etc\avrdude.conf" Using Port : COM5 Using Programmer : stk500v1 Overriding Baud Rate : 19200 AVR Part : ATtiny85 Chip Erase delay : 400000 us PAGEL : P00 BS2 : P00 RESET disposition : possible i/o RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 12 4 0 no 512 4 0 4000 4500 0xff 0xff flash 65 6 32 0 yes 8192 64 128 30000 30000 0xff 0xff signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 Programmer Type : STK500 Description : Atmel STK500 Version 1.x firmware Hardware Version: 2 Firmware Version: 1.18 Topcard : Unknown Vtarget : 0.0 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude.exe: Device signature = 0x00ffff avrdude.exe: Expected signature for ATtiny85 is 1E 93 0B Double check chip, or use -F to override this check. avrdude.exe done. Thank you. Press any key to continue . . .
I re-ran the download several times without moving the chip or changing anything at all, and it was the same each time I attempted the download, it reported different signatures from the chip.
The second time I did the download, it said
avrdude.exe: Device signature = 0x00ff00
... and the third time, it said ...
avrdude.exe: Device signature = 0xff00ff
I compared the outputs electronically, and apart from the signature line above, everything else was identical.
Every time I put the good chip in, the download runs correctly, so I have no reason to suspect the programmer, although I reprogrammed it with the ISR software and checked out the wiring with a meter.
Somehow, three out of four AT85's have been messed up, each time by attempting to program them with the fuse set to 0xe6. The fourth chip is still good, and accepts the program every time with fuses at 0xe2, but I don't dare to attempt a download to it with fuses 0xe6.
What's your opinion? Can it be fixed?