This is my first post, so be gentle with me. Usually i'm a reader and not so much of a poster, but since I finished my PIC(and EEPROM) Programmer
and mini USB SPI Flasher
a week or two ago, and already used it to JTAG 2 boxes, i thought to post some pictures
and info about the stuff i learned as it might help others. Much of the info was obtained in this thread, although the etching process is a different story.
It started out with the schematics for the "mini" USB SPI Flasher
, which i used to replicate in Eagle
to my own version, so that i could produce a layout for it. Ive managed to have a jumper less layout, so no need for putting manual wires on the top side, the circuitry on the bottom makes all the necc. connections.
Combining an old HP Scanner and working Philips Facial Tanner, I made a UV light box some time ago, which i used to transfer the layout to photo-resist pcb's.
After i developed the layout(caustic soda)and etched(sodium percarbonate) the boards(unfortunately no pictures of this because i was working fast) i coated the PCB's. When the coating dried up i drilled the holes.
Then it was only a matter of assembling all the different parts and solder them, and of course a final examination before the test.
This whole procedure was a-like for the PIC and EEPROM Programmer, except the source files where already available from the project page.
Preparing the PIC18F2455 :
-Using WinPic800 3.64 i flashed PicXBoot.hex(from PICFLASH_v3b_plus2 package) on a PIC18F2455 using my PIC and EEPROM Programmer
-After that i switched the PIC18F to my "mini" USB SPI Flasher, put a jumper on the jumper pins (bootloader mode) and hooked it up to my computer.
-Then using PDFUSB.exe from the MicroChip package i flashed PICFLASH.hex to make it fully programmed chip.[added a full hex backup with LVP ON at sources]
--> Each time Windows asks for drivers you point to the Nandpro2.0b directory and it will find the correct drivers!!
As explained by Sandungas
the flasher will behave as follow:
JUMPER ON - Device detected as: Custom USB devices/ Microchip Custom USB Device <-- Bootloader mode, used for flashing the 2nd part onto the PIC.
JUMPER OFF - Device detected as: LibUSB-Win32 Devices / Memory Access <-- Flasher mode, used for reading/writing NAND.
As said before, the flasher works great. Used it to JTAG two Xenon's and had none bad blocks at all on at least 5 identical READS in a row.
Im glad i switched from LPT to USB, it saved a lot of hassle and a lot off headaches with long wires, interference and incompatible LPT ports.
Room for improvement for my next version(rev1):
-pin header instead of solder pads for connecting the J1D2 and J2B1 connections
-female 'mini-B' USB connector instead of female 'type A' USB connector, because A - mini-B USB cables are more common then A-A , and most people have them laying around.
-no coating anymore, because it'll make a mess and flux will dissolve the coating anyway, plus the added drying time is a pain
-maybe a switch instead of a jumper for bootloader/flasher mode switching
Farnell Part List(might be handy for other DIY's):RESONATOR, ZTT, 12MHZPIC18F2455-I/SPRESISTOR, 0.5W 5% 100R
<-- x 5RESISTOR, 0.5W 5% 10K
<-- x 2CAPACITOR, 0805, 220NF, 50VCAPACITOR, 0603, 0.1UF, 50VSOCKET, USB, PANEL, PCB, TYPE A SOCKET IC, DIL, 0.6", 28WAYSolder used - Stannol Sn60Pb40
melts at 183 degrees celcius [contains lead!]
Sources:PIC and EEPROM Programmer Project pagePIC and EEPROM Programmer Source FilesOriginal mini USB Flasher Schematic"mini" USB SPI Flasher rev0 by me (source file package containing Eagle files and B/W Layout)
| MIRRORWinPic800 3.64 package (for flashing PICBOOT.hex over COM)Microchip USB package (contains PDFUSSB.exe for flashing PICFLASH.hex over USB)
| MIRRORPICFLASH_v3b_plus2Full PIC18F2455 Backup, LVP ON, Resonator 12Mhz
About the Full PIC18F2455 backup;
The one posted earlier in this thread
had LVP OFF, but since my programmer is an LVP programmer that would not work,
so i flashed the original PICFLASH 3b plus2 files which had LVP ON, and made my own full backup which i posted here
For reference i wanted to check which sectors changed because i couldn't find that info anywhere else, here's the output;
C:\>fc /b full2455.hex "full2455backup(lvp_on_12mhz).hex"
Comparing files full2455.hex and FULL2455BACKUP(LVP_ON_12MHZ).HEX
000066E0: 31 35
000066F0: 36 32