A discussion group for the PICMicro microcontroller. Also called the Microchip PIC, this list is dedicated to the use and abuse of this fine, simple, microcontroller. Close to topic posts are welcome, ie. general electronics.
Hi, For a while now I've been wondering what does the A in 16F877A means? I mean what is the difference between a 16F877 and a 16F877A? My other question is what is a bootloader?
--- In piclist@picl..., "mr_gees100_peas" <geovar13@...> wrote: > > Hi, > For a while now I've been wondering what does the A in 16F877A > means? I mean what is the difference between a 16F877 and a 16F877A? > > My other question is what is a bootloader? > For the specific answer, check the migation document at Microchip. As a practical matter, the change are more related to the flash programming algorithm. The bootloaders and programmers that were set up specifically for the 877 don't work on the 877A. A bootloader is a piece of code that is resident on the chip and loads other code. There are several around. I use PicLoader because it comes with the MiniSumo Mark III robot. There is a matching BotLoader program to handle the downloading from Windows. This was written because most users have no idea how to configure Hyperterminal for operation with the bot. PicLoader reserves the upper 2k of flash and that's a lot to give up. It is also required that the user programs reserved addresses 0x000 - 0x002 for the PicLoader. In other words, ORG the program at 0x0003, do a quick jump to 'main' because 0x0004 is the interrupt vector. You can get copies of PicLoader and BotLoader over on the MiniSumo Mark III group here at Yahoo. Microchip has a bootloader manual on the 16F877A page. See http://ww1.microchip.com/downloads/en/DeviceDoc/39591a.pdf Richard
----- Original Message ----- From: "mr_gees100_peas" <geovar13@geov...> To: <piclist@picl...> Sent: Thursday, March 16, 2006 3:27 AM Subject: [piclist] what does the A in 16F877A means? > Hi, > For a while now I've been wondering what does the A in 16F877A > means? I mean what is the difference between a 16F877 and a 16F877A? The A indicates an improved version, the earlier version probably had some bugs or other shortcomings. > > My other question is what is a bootloader? Generally, a piece of software that you put in flash memory that allows programs to be loaded via a serial port. It can be useful in that a programmer for the chip isn't needed for updating firmware and so on. Leon -- Leon Heller, G1HSM leon.heller@leon... http://www.geocities.com/leon_heller
--- In piclist@picl..., "Leon Heller" <leon.heller@...> wrote: > > ----- Original Message ----- > From: "mr_gees100_peas" <geovar13@...> > To: <piclist@picl...> > Sent: Thursday, March 16, 2006 3:27 AM > Subject: [piclist] what does the A in 16F877A means? > > > > Hi, > > For a while now I've been wondering what does the A in 16F877A > > means? I mean what is the difference between a 16F877 and a 16F877A? > > The A indicates an improved version, the earlier version probably had some > bugs or other shortcomings. > > > > > My other question is what is a bootloader? > > Generally, a piece of software that you put in flash memory that allows > programs to be loaded via a serial port. It can be useful in that a > programmer for the chip isn't needed for updating firmware and so on. > > Leon > -- > Leon Heller, G1HSM > leon.heller@... > http://www.geocities.com/leon_heller > Thanks for the reply. Men, 2Kb of memory for the bootloader is a bit expensive but I supposed it has its usefulness.
Quite a bit actually. Rather than detail them here, check out the spec sheets. The '877A has a compatability mode, but it is not quite perfectly compatible. The '877A has these comparators that you need to explicitly turn off to get digital IO that the 877 doesn't have you worry about. DLC mr_gees100_peas wrote: > Hi, > For a while now I've been wondering what does the A in 16F877A > means? I mean what is the difference between a 16F877 and a 16F877A? > > My other question is what is a bootloader? > > > > > > to unsubscribe, go to http://www.yahoogroups.com and follow the instructions > Yahoo! Groups Links > > > > > > -- ------------------------------------------------- Dennis Clark TTT Enterprises www.techtoystoday.com -------------------------------------------------
There are many other bootloaders out there that fit in under 256 words. ROMzap is one of them, but the web site is long gone. R mr_gees100_peas wrote: > --- In piclist@picl..., "Leon Heller" <leon.heller@...> wrote: > >>----- Original Message ----- >>From: "mr_gees100_peas" <geovar13@...> >>To: <piclist@picl...> >>Sent: Thursday, March 16, 2006 3:27 AM >>Subject: [piclist] what does the A in 16F877A means? >> >>>Hi, >>> For a while now I've been wondering what does the A in 16F877A >>>means? I mean what is the difference between a 16F877 and a 16F877A? >> >>The A indicates an improved version, the earlier version probably > > had some > >>bugs or other shortcomings. >> >> >>> My other question is what is a bootloader? >> >>Generally, a piece of software that you put in flash memory that allows >>programs to be loaded via a serial port. It can be useful in that a >>programmer for the chip isn't needed for updating firmware and so on. >> >>Leon >>-- >>Leon Heller, G1HSM >>leon.heller@... >>http://www.geocities.com/leon_heller >> > > > Thanks for the reply. Men, 2Kb of memory for the bootloader is a bit > expensive but I supposed it has its usefulness. >
Hiya- I suggest that you point your browser to the microchip site and look for an app note (or documentation) on the upgrade path from a 16F877 to 16F877A. I'm pretty sure that there was one, at least a while ago. I don't have a copy handy right here/now. The bootloader I think that I can help with also. Another current thread again mentions the microchip site on the construction of a 16F and/or 18F bootloader. As pointed out by a previous post on this thread, the bootloader will take a program from an external source via an interface that the pic can handle and the pic will "self program" it's flash memory with the new program. I looked at the app note from microchip for their bootstrap loader and decided to roll my own. It seems like the microchip solution is a little too complicated for my tastes. 10 commands and a couple of <STX> ascii characters to start things off..... For the 16F877A, I did an rs232 interface to a PC running a perl script that I whomped up. I kept the footprint of the bootstrap loader down to 0x64 words of code. My little code just prompts the PC when it's come out of reset and detects that a pin is low (it could normally be an output pin, but after coming out of reset and seeing the pin low, it goes to the bootloader). After prompting via rs232 the PC, the perl script on the PC dumps down 4 word binary data packets. The pic program eats the data packets and programs those 4 words. This is all in the 16f877a datasheets. After programming the 4 words the pic again fires off a character to the PC which tells the PC to send over the next 4 words to program. This continues until the PC figures out that it's finished reading all the interesting portions of the hex file and it terminates with a message. Configuration words and eeprom in my code are thrown away. Only Intel "hex" format type 0 records under 0x2000 are passed along. The operator then turns off the power supply to the pic, removes the jumper for the bootstrap portion, optionally removes the rs232 cable, and repowers the pic. As mentioned, it is desireable to have bootstrap loaders use as little program space as possible. In the old days, a small bootstrap loader was desireable. We had to program in the bootstrap via switches into the computer memory. ROMs made that process a non issue. These days though, a small footprint means that we have more room for the "real" program. Of course, you do have the "chicken and the egg" syndrome here. But, this has a real answer. You do have to have a "hardware" programmer to program the bootstrap loader. But after that (if you don't screw up or overwrite the bootstrap loader program), you can eliminate the use of a "hardware" programmer to download new versions of the "real" program. Hope that this little snippet/tutorial helps! Cheers, Rich S. --- In piclist@picl..., "mr_gees100_peas" <geovar13@...> wrote: > > Hi, > For a while now I've been wondering what does the A in 16F877A > means? I mean what is the difference between a 16F877 and a 16F877A? > > My other question is what is a bootloader? >