Hello,
First of all thanks a lot for sharing an open source programmer. I am very
much interested to build one of this. I think this is the only DIY USB
programmer which supports both PIC and Atmel chips plus I2C chips.
Unfortunately I could not understand the connector/expansion side properly.
Also I don't have any idea about the internals of microcontroller programming.
So, the details on the main page is not suitable for me. I understand that
this is a great resource for experts. Can I make it with ICSP header only to
program chips placed on the breadboard? I do not want to have zif socket or
any IC socket on the base programmer. For now I want to be able to program
only the common 5 volt PIC and atmega chips. Later, I wish to build all the
expansion cards on strip board to program 3.3 volts and others.
I have attached an image. There is an ICSP programming header. Can you please
tell me the connection to the ICSP header to program 5 volts PIC? Like, where
should the connection goes for MCLR (pin 1), VDD, VSS, DAT and CLK?
If I am successful to program this I would want another header for Atmega.
Hello, what is about the connectors that you don't understand?
You simply plug the left and right connectors from any expansion board to the
ones on the base module; look at the board pictures/layout and note that the
two 10 pin connectors are spaced equally on all boards.
Of course you should put female connectors on the base module and male
connectors (facing down) on expansions.
The location of ICSP signals is listed on the resource map table on the
website (or just examine the 18 pin programming socket); there you see that
clock is RB6, data RB5, both on CONN2; MCLR (called VPPU), VDDU, GND on CONN3.
Work back to the source of those signals if you don't want to place expansion
connectors on your programmer, although in that case I don't see how you can
later expand to 3V or other devices.
Regarding ATMega look at the expansion board schematics and trace back X1,
SCK, MISO, MOSI, RESET.
BR, Alberto
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks a lot Alberto. Your reply helped me to understand more about the
circuit. Although I have not understood all of it. Anyway, I think I should
start building this.
The reason I am not just copying your PCB design is, I do not have any
experience in PCB making or drilling. If any mistake occurs during drilling
like breaking track or other, then the board can not be used and I have to
make PCB again (considering that even I don't have any expertise is PCB
making). I have built 'Usbasp' on stripboard & can program atmega with it. I
want to make 'Open Programmer' on stripboard too for now.
I am attaching an image according to your reply, and going to make like this.
There are 2 ICSP programming headers, one for PIC and the other for Atmel. The
ICSP connections will go to the breadboard with ribbon cable, where the target
chip is. The connection wire for Atmel is not drawn, as it will make it
difficult to trace. Only indicated by text.
I want to keep 2 connectors - CONN2 and CONN3 for future possible use. Can you
please tell me if there is any error on the image. Thank you in advance.
The inductor used has no label on it. So I could not determine it's value. Do
you think there could be the problem? I used 220nF capacitor for vusb and got
warning - VUSB<4.5.
The hardware test showed 13v for VPPU. But at the 2nd step when the VPPU
should be 0, it was lile 3v. Can you guess anything about the problem?
Best regards.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Good news. The programmer worked :) Thanks a lot Alberto!!!!!
I erased the chip with another programmer. Then attached with open programmer.
Imported the hex file and this time it programmed the chip 16F84A 100% ok. I
could not understand why the error occurs and open programmer says that
"Device protected". Code protection turned off for the hex file. If you want
to see, the file both asm and hex can be downloaded from bellow (A stepper
motor driver, downloaded from cnczone):
Anyway, later I compiled another small program for testing with Proton Basic.
Open programmer programmed this hex file without any problem.
Can you please tell me any command with parameter or the GUI procedure to
erase a chip completely. All data, fuse settings, config etc will be erased
and the chip will go to the factory setting. I tried making a hex file with
bellow content and program it on 16F84A, it programmed but the chip was not
erased:
Blank_16.hex ########
:020000040000FA
:0144010000BA
:00000001FF
###################
However, I think these are not big problem and all I need is to find the right
command or understand the GUI properly. I am very happy that the programmer
worked. And I am grateful to you for making your design and code available for
others to make their own. Lots of hard work!
I haven't connected the two 10 pins connector, as it will make plenty of
jumper cables on the stripboard. Now only 2 connectors on the right side - one
is to program PIC 5v and the other is for Atmel. Atmel will be tested soon.
With this Atmel connector I think I will also be able to write I2C chips.
That's all for now. Will let you know further experiments. May God bless you.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
a problem in the hardware test is usually going to hurt sooner or later; check
carefully the high voltage section: the polarity of capacitors, transistors,
unseen ohmic paths between traces, the value of components; L1 can be of
different value, but in the order of 100uH.
A devID 0x0000 usually means that the device didn't enter program mode.
Erasing a chip is not needed because it is done automatically every time you
write a new file; if you wish to do it anyways it will only waste one erase
cycle.
How can you say that your device was not erased?
BR
Alberto
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
Yes there is possibility of malfunctioning of the device in future. But I
could not find any physical error on the hardware. May be I should check
again.
I erased the chip by programming the above mentioned 'Blank_16.hex' file. It
programmed ok. Then I read the chip again which showed data as before.
You can reproduce the error if you want. The chip is 16F84A, download the
above file from 4shared.com. Open the hex file with OpenProg v0.7.7. Click on
write button. After it writes successfully, open the hex file again and click
on write (for test). Here I got the error like:
But you will not get the error if you program this on a blank/erased chip.
That is, you will get the error when you try to program it for the second time
or more.
After this open the 'Blank_16.hex' file and program. Read the chip and it
shows that it was not erased.
Have I skipped any necessary step?
Best regards.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I replaced D3 with 1N-5817 schottky diode. Earlier it was 1N-4148. Now there
is no problem. I imported the hex file several times and programmed
repeatedly. It worked without any error. Hardware test is also ok and no
'warning - VUSB<4.5'. I erased the chip with blank-16.hex, and erased ok.
So, the trouble was with the diode.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Buonasera.Sono un nuovo utente.Volevo un consiglio su come riuscire a fare un programmatore per riprogrammare le memorie flash tv e le memorie delle schede elettrodomestici.Grazie,saluti
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
First of all thanks a lot for sharing an open source programmer. I am very
much interested to build one of this. I think this is the only DIY USB
programmer which supports both PIC and Atmel chips plus I2C chips.
Unfortunately I could not understand the connector/expansion side properly.
Also I don't have any idea about the internals of microcontroller programming.
So, the details on the main page is not suitable for me. I understand that
this is a great resource for experts. Can I make it with ICSP header only to
program chips placed on the breadboard? I do not want to have zif socket or
any IC socket on the base programmer. For now I want to be able to program
only the common 5 volt PIC and atmega chips. Later, I wish to build all the
expansion cards on strip board to program 3.3 volts and others.
I have attached an image. There is an ICSP programming header. Can you please
tell me the connection to the ICSP header to program 5 volts PIC? Like, where
should the connection goes for MCLR (pin 1), VDD, VSS, DAT and CLK?
If I am successful to program this I would want another header for Atmega.
Thanks again and best wishes....
Image link:
http://www.flickr.com/photos/59607192@N03/5454046448/sizes/l/
Hello, what is about the connectors that you don't understand?
You simply plug the left and right connectors from any expansion board to the
ones on the base module; look at the board pictures/layout and note that the
two 10 pin connectors are spaced equally on all boards.
Of course you should put female connectors on the base module and male
connectors (facing down) on expansions.
The location of ICSP signals is listed on the resource map table on the
website (or just examine the 18 pin programming socket); there you see that
clock is RB6, data RB5, both on CONN2; MCLR (called VPPU), VDDU, GND on CONN3.
Work back to the source of those signals if you don't want to place expansion
connectors on your programmer, although in that case I don't see how you can
later expand to 3V or other devices.
Regarding ATMega look at the expansion board schematics and trace back X1,
SCK, MISO, MOSI, RESET.
BR, Alberto
Thanks a lot Alberto. Your reply helped me to understand more about the
circuit. Although I have not understood all of it. Anyway, I think I should
start building this.
The reason I am not just copying your PCB design is, I do not have any
experience in PCB making or drilling. If any mistake occurs during drilling
like breaking track or other, then the board can not be used and I have to
make PCB again (considering that even I don't have any expertise is PCB
making). I have built 'Usbasp' on stripboard & can program atmega with it. I
want to make 'Open Programmer' on stripboard too for now.
I am attaching an image according to your reply, and going to make like this.
There are 2 ICSP programming headers, one for PIC and the other for Atmel. The
ICSP connections will go to the breadboard with ribbon cable, where the target
chip is. The connection wire for Atmel is not drawn, as it will make it
difficult to trace. Only indicated by text.
I want to keep 2 connectors - CONN2 and CONN3 for future possible use. Can you
please tell me if there is any error on the image. Thank you in advance.
Best regards.
Image link: http://www.flickr.com/photos/59607192@N03/5456797358/sizes/l/
The circuit looks fine to me.
Best regards
Hello Alberto,
I built this programmer on stripboard. I can read without any problem. But got
error while writing as:
Can't find EEPROM data
DevID: 0x0000
Unknown device
Configuration word: 0x000
Erasing ... Device protected, overriding protection.
completed
Writing code ...
Error writing address 0: written 2826, read 0000
Error writing address 4: written 008D, read 0000
Error writing address 5: written 0803, read 0000
...... More lines like above.
The inductor used has no label on it. So I could not determine it's value. Do
you think there could be the problem? I used 220nF capacitor for vusb and got
warning - VUSB<4.5.
The hardware test showed 13v for VPPU. But at the 2nd step when the VPPU
should be 0, it was lile 3v. Can you guess anything about the problem?
Best regards.
Good news. The programmer worked :) Thanks a lot Alberto!!!!!
I erased the chip with another programmer. Then attached with open programmer.
Imported the hex file and this time it programmed the chip 16F84A 100% ok. I
could not understand why the error occurs and open programmer says that
"Device protected". Code protection turned off for the hex file. If you want
to see, the file both asm and hex can be downloaded from bellow (A stepper
motor driver, downloaded from cnczone):
http://www.4shared.com/file/C8sFVfhu/STEPIT_3.html
Anyway, later I compiled another small program for testing with Proton Basic.
Open programmer programmed this hex file without any problem.
Can you please tell me any command with parameter or the GUI procedure to
erase a chip completely. All data, fuse settings, config etc will be erased
and the chip will go to the factory setting. I tried making a hex file with
bellow content and program it on 16F84A, it programmed but the chip was not
erased:
Blank_16.hex ########
:020000040000FA
:0144010000BA
:00000001FF
###################
However, I think these are not big problem and all I need is to find the right
command or understand the GUI properly. I am very happy that the programmer
worked. And I am grateful to you for making your design and code available for
others to make their own. Lots of hard work!
I haven't connected the two 10 pins connector, as it will make plenty of
jumper cables on the stripboard. Now only 2 connectors on the right side - one
is to program PIC 5v and the other is for Atmel. Atmel will be tested soon.
With this Atmel connector I think I will also be able to write I2C chips.
That's all for now. Will let you know further experiments. May God bless you.
Hello,
a problem in the hardware test is usually going to hurt sooner or later; check
carefully the high voltage section: the polarity of capacitors, transistors,
unseen ohmic paths between traces, the value of components; L1 can be of
different value, but in the order of 100uH.
A devID 0x0000 usually means that the device didn't enter program mode.
Erasing a chip is not needed because it is done automatically every time you
write a new file; if you wish to do it anyways it will only waste one erase
cycle.
How can you say that your device was not erased?
BR
Alberto
Hello,
Yes there is possibility of malfunctioning of the device in future. But I
could not find any physical error on the hardware. May be I should check
again.
I erased the chip by programming the above mentioned 'Blank_16.hex' file. It
programmed ok. Then I read the chip again which showed data as before.
You can reproduce the error if you want. The chip is 16F84A, download the
above file from 4shared.com. Open the hex file with OpenProg v0.7.7. Click on
write button. After it writes successfully, open the hex file again and click
on write (for test). Here I got the error like:
But you will not get the error if you program this on a blank/erased chip.
That is, you will get the error when you try to program it for the second time
or more.
After this open the 'Blank_16.hex' file and program. Read the chip and it
shows that it was not erased.
Have I skipped any necessary step?
Best regards.
It is solved!
I replaced D3 with 1N-5817 schottky diode. Earlier it was 1N-4148. Now there
is no problem. I imported the hex file several times and programmed
repeatedly. It worked without any error. Hardware test is also ok and no
'warning - VUSB<4.5'. I erased the chip with blank-16.hex, and erased ok.
So, the trouble was with the diode.
could you post both sides of your stripboard please. I would like to build one
of these using a perfboard.
Thanks.
View and moderate all "Open Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Discussion"
Buonasera.Sono un nuovo utente.Volevo un consiglio su come riuscire a fare un programmatore per riprogrammare le memorie flash tv e le memorie delle schede elettrodomestici.Grazie,saluti
Dipende da quali memorie devi scrivere.
Su http://openprog.altervista.org/OP_ita.html trovi la lista dei dispositivi supportati.
View and moderate all "Open Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Discussion"
Alberto spero che un giorno riuscirai anche ad implementare il supporto per le memorie eeprom parallele. Sarebbe fanntastico!