Somphorn
Member level 1
![Member level 1](/styles/images/ranks/dlevel1.gif)
- Joined
- Sep 4, 2009
- Messages
- 35
- Helped
- 1
- Reputation
- 2
- Reaction score
- 0
- Trophy points
- 6
- Location
- Johore, Malaysia
- Activity points
- 0
Hi!
I hope whoever with the experience building this programmer can give me a few pointers.
I built (stripboarded) the programmer circuit as per
and managed to read signature, and read program memory into buffer.
It can program a new AT89S51 chip, but only once. I programmed a few new, empty chips (running lights routine) and it worked when I put those chips into my breadboard circuit (seeing those lights running as I had intended made me feels like I've conquered Everest).
Now, I take the chip and put it back again into the programmer to download new (fancier) running lights routine. I can still read signature and read the program memory into buffer. But when I want to write for the second time, it fails. For one chip it's at 0000H. Other chip 0003H. It's not random. If a particular chip failed at, say, location 0002H it will always fail there. After this write fail, when I read the program memory into buffer all I can see is a mixture of old and new byte codes interfused with some seemingly random byte values. At least that's what it looks like to me.
I faithfully followed the schematic, with a few exceptions:
a) My +5V Vcc coming from computer PSU.
b) I used 10nF SMD 0603 (I ordered wrongly).
Sorry for the wall of text. I'm not an electronics student. Most of what I learned are from library text books and Internet. If I can't do this then I will probably stop this for a while and look for another hobby. Any kind of help/pointers is appreciated.
I hope whoever with the experience building this programmer can give me a few pointers.
I built (stripboarded) the programmer circuit as per
and managed to read signature, and read program memory into buffer.
It can program a new AT89S51 chip, but only once. I programmed a few new, empty chips (running lights routine) and it worked when I put those chips into my breadboard circuit (seeing those lights running as I had intended made me feels like I've conquered Everest).
Now, I take the chip and put it back again into the programmer to download new (fancier) running lights routine. I can still read signature and read the program memory into buffer. But when I want to write for the second time, it fails. For one chip it's at 0000H. Other chip 0003H. It's not random. If a particular chip failed at, say, location 0002H it will always fail there. After this write fail, when I read the program memory into buffer all I can see is a mixture of old and new byte codes interfused with some seemingly random byte values. At least that's what it looks like to me.
I faithfully followed the schematic, with a few exceptions:
a) My +5V Vcc coming from computer PSU.
b) I used 10nF SMD 0603 (I ordered wrongly).
Sorry for the wall of text. I'm not an electronics student. Most of what I learned are from library text books and Internet. If I can't do this then I will probably stop this for a while and look for another hobby. Any kind of help/pointers is appreciated.