On Sun, Mar 14, 2004 at 10:46:24AM -0500, Robert L Cochran wrote: > I thought that the 16F777 was going to be > >the winner, but it turns out that it isn't self programmable, so it's not > >possible to put a bootloader in it. BTW with a bootloader, a program on the > >part that accepts and writes other programs into the part's memory and > >executes them, you don't need a real programmer anymore. I find them > >invaluable > >for my development cycle. > > > Thank you for all your help. With regard to your mention of bootloaders. > I've searched the PICLIST for references to this and actual code. Your > web page > > http://www.finitesite.com/d3jsys/index.html#SOFTWARE > > references Wouter's wloader program > > http://www.voti.nl/wloader/ > > I like the documentation he has written, it seems pretty good. It is a > very good discussion of the bootloader. Would this work with the 16F877A? Most definitely. But not as is. A brief explanation. Flash programming has two issues: it takes time to write to a cell and they are getting bigger and bigger all the time. The upshot of this is that it takes longer to reprogram the chip. So Microchip in an effort to speed up the programming process has changed the programming algorithm. For the 16F877 each location could be erased and reprogrammed on an individual basis. However for the 16F877A the block size is 4 words, so you have to write 4 words at a time. But the upshot is that programming is much faster because you write more locations at once. However the older algorithm may not work. While the process seems to be the same, you can run into a problem if you don't actually do the 4 write sequence. Wouter may join in here and clarify the situation. My recollection is that Wouter wrote an update Wloader for the 16F877A. All you need to do is ask him. > > Are there more recent or better bootloaders available? It is my opinion that Wouter is the best PIC bootloader writer around, bar none. I believe this because instead of taking obvious routes that permanently snags large chunks of resources (like the hardware UART), Wouter thinks through the most transparent method for transfer then implements it. Wloader is a perfect example: by bitbanging a bidirectional interface using a single I/O pin, the permanent resource allocation is limited to that single pin. And in fact with a bit of work, it's actually still possible to use that pin as an output in the final project. Wouter's latest bootloader work is the Zero Pin Loader (ZPL). ZPL magically reduces the I/O interface from 1 pin to zero! ZPL does this by controlled wiggling of the PIC's MCLR (reset) pin. So by measuring how long the PIC is allowed to run between resets, data can be transferred from a PC to the target via a serial interface. Even better it works fine with the USB to serial cables, so no obselescense (sp?) like parallel interfaces. At this moment ZPL is written only for 18F parts, but right at the top of my development task list is to get ZPL ported to the 16F family. It'll be great for I/O limited chips like the 16F88 and the 16F819, both which have enough program memory to support a small bootloader. Of course with both of these you get the benefit that the chip becomes self programmable, so no additional programmer is needed. Coupled with the fact that the ZPL only requires a nickle transistor and a couple of penny resistors, you can simply build it directly into the target. Then whenever you need a code update, just attach an ordinary serial cable and develop away. My advise is to hold off a bit on bootloading. Only because I think that my 16F ZPL implementation will provide the best balance of features for the 16F family. I've decided to take my time and set up my development environment properly. So I've been working on three simulteanous projects: 1) Finishing up my prototype PIC Designer (PD). This is an experimenters board with a bunch of hardware on board. The ideas for it were fleshed out on the list here a couple of years ago. I threw together a quick page describing it here: http://www.finitesite.com/d3jsys/picdesigner.html 2) Updating picprg to work with newer chips and a Windows port. I'm still waiting on the 16F88s to come in to complete final testing before releasing. It works fine with 16F819s and the 16F877A parts, both of which have the programming algorithm change outlined above. 3) The 16F ZPL port. Wouter hasn't tackled it yet and I'm hoping to get it finished soon. I wired a TLVP programmer on the Designer because it's a bit difficult to do bootloader development from a bootloader! In fact I'm planning to test it out just as soon as I finish this message. > Thanks again, I'm learning a great deal from you. You are quite welcome. BAJ -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.