I've read the old posts on this subject, but I think my take on it is new. I recently bought a PicKit3 from Microchip. I've learned enough about it and the Pic18f45k20 to make an EEPROM programmer, I think.
My plan is to use PortB and PortC as an output-only address generator and PortD as a two-way Data bus. Then use PortA as a Control/Status bus. If I'm not mistaken, to program an M28C17A (2kb x 8) EEPROM all you need to do is set up an address and set up the data bus, assert write and wait for the Ready/Busy' line to go high, then increment the address, the data and do it again until done. Am I right or wrong about this?
I realize the Pic18f45k20 is 3.3 volts and the EEPROM wants 5 volts. So I have ordered a Pic18f452 to achieve compatibility. Do I need to make any delays? The EEPROM's R/B' pin seems to be all I need, except maybe a slight delay in setting up the data after the address? Or am I okay with no delays? This Pic18f452 goes in the programmer (hobby box)
On top of the hobby box is a small breadboard. Also on top is a 16 pin DIP socket that I can push wires into and this is the address. Another 8 pin DIP is the data. And another 8 pin DIP is the Control/Status bus.
My personal PC will contain a C file made by MP-C18 with an array containing program code (for an old M6800 MPU [don't laugh, they're paid for and on hand] which is to be written to EEPROM. Using PicKit3 and a connector on my hobby box, I will then program the Pic18f452 to write the code into EEPROM.
This overall design should allow me to program any EEPROM up to 64K. Also I can read the contents of the ROM and thus verify the integrity of the code. And this code can be the machine code for any MPU.
Can anyone think of a reason why this scheme will not work? Or why it will work? I'll sure appreciate your comments. I know my limitations!
My plan is to use PortB and PortC as an output-only address generator and PortD as a two-way Data bus. Then use PortA as a Control/Status bus. If I'm not mistaken, to program an M28C17A (2kb x 8) EEPROM all you need to do is set up an address and set up the data bus, assert write and wait for the Ready/Busy' line to go high, then increment the address, the data and do it again until done. Am I right or wrong about this?
I realize the Pic18f45k20 is 3.3 volts and the EEPROM wants 5 volts. So I have ordered a Pic18f452 to achieve compatibility. Do I need to make any delays? The EEPROM's R/B' pin seems to be all I need, except maybe a slight delay in setting up the data after the address? Or am I okay with no delays? This Pic18f452 goes in the programmer (hobby box)
On top of the hobby box is a small breadboard. Also on top is a 16 pin DIP socket that I can push wires into and this is the address. Another 8 pin DIP is the data. And another 8 pin DIP is the Control/Status bus.
My personal PC will contain a C file made by MP-C18 with an array containing program code (for an old M6800 MPU [don't laugh, they're paid for and on hand] which is to be written to EEPROM. Using PicKit3 and a connector on my hobby box, I will then program the Pic18f452 to write the code into EEPROM.
This overall design should allow me to program any EEPROM up to 64K. Also I can read the contents of the ROM and thus verify the integrity of the code. And this code can be the machine code for any MPU.
Can anyone think of a reason why this scheme will not work? Or why it will work? I'll sure appreciate your comments. I know my limitations!
Last edited: