Re: PIC-based PIC programmer?
Peter Onion <[email protected]>
| Newsgroups | gmane.comp.hardware.microcontrollers.gnupic |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 2005-07-07 at 09:10 +0100, Martyn Welch wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi David, > > I've been looking at very minimal programmers recently as a very low cost item > to start with, though these tend to be very slow... > > The next logical step for me was to look for open designs which use a PIC. > Obviously you need to be able to program the PIC for the programmer - hence > why I have decided to go about it this way. > > There are a number of devices that utilise a PIC as part of there design, but > I don't think I've seen one with an "image" of a bootloader provided on them, > this would be quite a good idea. Unfortunately the PIC would probably also > have to hold information about all the types of PICs it would potentially be > asked to burn and I guess have some way of selecting which method to use to > program the target PIC, I got the impression that not all PICs have identical > programming methods. This would probably lead to the PIC requiring some > further external memory to hold everything, it might also limit the PICs > which could be used to the faster, higher end PICs. I guess input is needed > from someone with more experience in these matters. > > Similarly does anyone know of a design for a fast, flexible programmer? > > Martyn > You could start by looking at Wouters Wisp628 for hardware ideas. http://www.voti.nl/wisp628/index_1.html He also has Wloader which may help you. I'm just upgrading my "PICklePROG" project to deal with 18F series devices. It's based on a 16F870 at the moment, so plenty of code space availabale. If you wanted a verity of boot loaders available for different targets then you could put them in a serial EEPROM and down load them via I2C when needed. My programmer has a "packet" based interface to a PC via RS2323 and a application (like xwisp for wisp628) that runs on the PC. Packets have a very simple structure with top nibble of first byte being a command and the lower nibble being the length of the following data block. Example commands are "Enter Program Mode", "Block of Data", "Write Block", "Skip N locations", "Erase", "Read Block", "Get Version", "Display text on LCD"..... There's a picture on the older version of the hardware at http://www.btinternet.com/~Peter.Onion/PIC/DevSys1.jpg That version uses a 16F627 (to the left of the blue "reset" button) and can program 16F87X series devices. I'll put the old version of my code (absolute address for 16F627) up on my web site if you are interested. You can also get the jal code for wisp628 from Wouter's site. Peter