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,
I'm not an expert at his so my question may seem a bit naive. Is
there a way to have more program space for you pic micro besides
upgrading to a pic with more space. I mean is it possible to use an
external eeprom for additional program space? and if so how?
> Hi, > I'm not an expert at his so my question may seem a bit naive. Is > there a way to have more program space for you pic micro besides > upgrading to a pic with more space. I mean is it possible to use an > external eeprom for additional program space? and if so how? > Some PICs have a mode that accepts external memory, but that takes a whole lot of pins. The PIC family has a very nice upgrade path of pin compatible parts so when you run out of memory, you just get the next bigger part. I've never used the external program capability of those few pics that do have it. Haroold -- FCC Rules Updated Daily at http://www.hallikainen.com
Hi,
I'm not an expert at his so my question may seem a bit naive. Is
there a way to have more program space for you pic micro besides
upgrading to a pic with more space. I mean is it possible to use an
external eeprom for additional program space? and if so how?
I think external eeprom is for additional memory space only. not for program www.geocities.com/sahfeie/electronics ----- Original Message ----- From: "mr_gees100_peas" <geovar13@geov...> To: <piclist@picl...> Sent: Tuesday, February 28, 2006 12:49 PM Subject: [piclist] more program space > Hi, > I'm not an expert at his so my question may seem a bit naive. Is > there a way to have more program space for you pic micro besides > upgrading to a pic with more space. I mean is it possible to use an > external eeprom for additional program space? and if so how? > > > > > > to unsubscribe, go to http://www.yahoogroups.com and follow the instructions > Yahoo! Groups Links > > > > > > The information contained in this Internet message is confidential and intended only for the use of the individual or entity identified. If the reader of this message is not the intended recipient, any dissemination, distribution or copying of the information contained in this Internet message is strictly prohibited. If you received this message in error, please notify the sender immediately.
There is information and sample bootloader programs at the microchip website: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1490&filterID=382 --- R Ramesh <ramesh_talk@rame...> wrote: > Note : i want to do my microchipp need to uograde its programm > memory. I will be sending the hex codes thru the I2C then i need to > load in to the program memory. > This is to help whenthe system in customer place, if we want to > upgrade it then it will be easy > > //////////////////// > thanks for you reply, > > My intention is ,customer not to know about the codes. now the > memory for my usage us more enough. ( the flash memory is 64K). so i > want to uograde the microchip itself. > > Is anybidy know about the self programming?? Is any infomation > plese convey it to me. Not much info on web. > > Thanks > Ramesh > > > mr_gees100_peas <geovar13@geov...> wrote: > Hi, > I'm not an expert at his so my question may seem a bit naive. Is > there a way to have more program space for you pic micro besides > upgrading to a pic with more space. I mean is it possible to use an > external eeprom for additional program space? and if so how? > > > > > > to unsubscribe, go to http://www.yahoogroups.com and follow the > instructions > > > > SPONSORED LINKS > Microcontroller Microprocessor Microchip pic > Microcontrollers Picmicro Pic microcontrollers > > --------------------------------- > YAHOO! GROUPS LINKS > > > > > > --------------------------------- > > > > > > urs, > Ramesh > > > > > > --------------------------------- > My software has no bugs, only undocumented features.
--- In piclist@picl..., "mr_gees100_peas" <geovar13@...> wrote: > > Hi, > I'm not an expert at his so my question may seem a bit naive. Is > there a way to have more program space for you pic micro besides > upgrading to a pic with more space. I mean is it possible to use an > external eeprom for additional program space? and if so how? > It is possible, but you need to be sure that you're using a pic which can write to it's own program space, such as the 18 series products and some of the 16F flash series. The technique is to reserve a space in program memory in the pic for your EEPROM stored routines to be read into, then just read the eeprom data and write to the program space and run it. The management of the memory needs to be very tight, and you need to make sure you don't overwrite an area of program space which has prime code which never changes. It's a solution but it should really only be used when you can justify not moving to a larger device to benefit from the extended memory. chris
So you're going to write a chunk of code into memory, run it, write another chunk, run it....? You've actually done this? No, the PIC program space cannot be expanded by any practical means with external EEPROM. If speed isn't an issue, you could implement an interpreter like the Basic Stamp and run the code from the external EEPROM. But, then, that's not practical either. Need more program space?...Buy a bigger PIC. Mike --- In piclist@picl..., "Chris" <fixitsan@...> wrote: > > --- In piclist@picl..., "mr_gees100_peas" <geovar13@> wrote: > > > > Hi, > > I'm not an expert at his so my question may seem a bit naive. Is > > there a way to have more program space for you pic micro besides > > upgrading to a pic with more space. I mean is it possible to use an > > external eeprom for additional program space? and if so how? > > > > It is possible, but you need to be sure that you're using a pic which > can write to it's own program space, such as the 18 series products > and some of the 16F flash series. > > The technique is to reserve a space in program memory in the pic for > your EEPROM stored routines to be read into, then just read the eeprom > data and write to the program space and run it. The management of the > memory needs to be very tight, and you need to make sure you don't > overwrite an area of program space which has prime code which never > changes. > > It's a solution but it should really only be used when you can justify > not moving to a larger device to benefit from the extended memory. > > chris >
--- In piclist@picl..., "upand_at_them" <upand_at_them@...> wrote: > > So you're going to write a chunk of code into memory, run it, write > another chunk, run it....? You've actually done this? > To the extent that I downloaded new code via the serial port, yes. Which is quite a good way to do it, albeit a little slow when compared to parallel access schemes. > No, the PIC program space cannot be expanded by any practical means > with external EEPROM. I agree, unless you can't get a pic that is big enough.....
--- In piclist@picl..., "Chris" <fixitsan@...> wrote: > > --- In piclist@picl..., "upand_at_them" <upand_at_them@> > wrote: > > > > So you're going to write a chunk of code into memory, run it, write > > another chunk, run it....? You've actually done this? > > > > To the extent that I downloaded new code via the serial port, yes. > Which is quite a good way to do it, albeit a little slow when compared > to parallel access schemes. > > > > No, the PIC program space cannot be expanded by any practical means > > with external EEPROM. > > > I agree, unless you can't get a pic that is big enough..... > Then change to something like the Atmel ATmega128 which has 128k of flash, 4k of RAM and 4k of EEPROM. Runs at 16 MHz with one instruction per clock - 16 MIPS. Compared to maybe 2.5 MIPS for the mid-range PIC Even the most glutonous C programs will have difficulty filling this up. Heck, I'm using the worst of the library functions, full floating point printf, scanf, ATAN2 plus a couple of thousand lines of code and I'm still less than 20k. If RAM becomes tight consider adding 128k of external RAM. It uses a bunch of pins but memory just became a non-issue. See the MAVRIC IB at www.bdmicro.com for an example. Or, move to the LPC2106 ARM7 with 128k of flash and 64k of RAM - running at 60 MIPs by the way. Richard
--- In piclist@picl..., "rtstofer" <rstofer@...> wrote: > > --- In piclist@picl..., "Chris" <fixitsan@> wrote: > > > > --- In piclist@picl..., "upand_at_them" <upand_at_them@> > > wrote: > > > > > > So you're going to write a chunk of code into memory, run it, write > > > another chunk, run it....? You've actually done this? > > > > > > > To the extent that I downloaded new code via the serial port, yes. > > Which is quite a good way to do it, > > > > Then change to something like the Atmel ATmega128 which has 128k of > flash, 4k of RAM and 4k of EEPROM. Runs at 16 MHz with one > instruction per clock - 16 MIPS. Compared to maybe 2.5 MIPS for the > mid-range PIC I'm assuming that the MEGA part of it's name means it's the most advanced part. To compare like with like, Microchip's most advanced range, at the top of the 18F series, has comparable specs to the ATmega. But there are times when 128k isn't enough. Honestly. If you need advanced maths routines, perhaps you need to do 4 part logarithmic differentiation on real-time data then you need a lot of resources, lot's of routines, and many lookup tables. And then if the data needs to be output in different languages you have a huge language file which has to be stored too. I worked on a print server which had to parallel process 8 data channels, do font substitutions, page formatting and language conversions.....you can soon eat up 128k bytes of program space. Most of the routines, it has to be said, were trivial.Most were lookup tables and if the demand for instant access hadn't of been there the next step was in fact to read data from serial eproms. At the end of the project the code was re-written for an SBC with a hard- drive. Perhaps we should have found out what was being deemed to be insufficient program space, because for the most part you can upgrade to a larger device Chris
--- In piclist@picl..., "Chris" <fixitsan@...> wrote: > > --- In piclist@picl..., "rtstofer" <rstofer@> wrote: > > > > --- In piclist@picl..., "Chris" <fixitsan@> wrote: > > > > > > --- In piclist@picl..., "upand_at_them" <upand_at_them@> > > > wrote: > > > > > > > > So you're going to write a chunk of code into memory, run it, > write > > > > another chunk, run it....? You've actually done this? > > > > > > > > > > To the extent that I downloaded new code via the serial port, > yes. > > > Which is quite a good way to do it, > > > > > > Then change to something like the Atmel ATmega128 which has 128k of > > flash, 4k of RAM and 4k of EEPROM. Runs at 16 MHz with one > > instruction per clock - 16 MIPS. Compared to maybe 2.5 MIPS for the > > mid-range PIC > > I'm assuming that the MEGA part of it's name means it's the most > advanced part. To compare like with like, Microchip's most advanced > range, at the top of the 18F series, has comparable specs to the > ATmega. I don't know enough about the product line of either manufacturer to say. I use the 16F877(A), the 16F628 and I really like the 16F88. I haven't looked at the high end PICs but I don't like the architecture of the mid-range devices. That banking and paging stuff is complete nonsense. I am also not fond of the high voltage programming and I not sure what to make of LVP. The high cost of UNIVERSAL programmers is a downside. Sure, there are a bunch of low component count programmers for one or two chips. But, I want to program them all! Even the 16F57. I know even less about the Atmel line. The only device I have used is the ATmega128 although I have a few of the smaller devices laying around. I like the architecture and the ISP programming. No expensive programming devices needed and it works reliably. I got interested in the ATmega128 because I wanted to think about the MicroMouse contests for maze solving bots. The flood-fill algorithm is simple enough, assuming sufficient RAM, and the first device I tried was the ATmega128. I can't recall the calculation time but it was adequate to do it at a full run. Then I decided to pick up the pace by putting it in an ARM7. Now, that chip just hauls. > > But there are times when 128k isn't enough. Honestly. If you need > advanced maths routines, perhaps you need to do 4 part logarithmic > differentiation on real-time data then you need a lot of resources, > lot's of routines, and many lookup tables. And then if the data needs > to be output in different languages you have a huge language file > which has to be stored too. > > I worked on a print server which had to parallel process 8 data > channels, do font substitutions, page formatting and language > conversions.....you can soon eat up 128k bytes of program space. > Most of the routines, it has to be said, were trivial.Most were > lookup tables and if the demand for instant access hadn't of been > there the next step was in fact to read data from serial eproms. At > the end of the project the code was re-written for an SBC with a hard- > drive. > > Perhaps we should have found out what was being deemed to be > insufficient program space, because for the most part you can upgrade > to a larger device > The ARM7 has a 32 bit address bus so it can directly address 4 GB. Various devices have external memory interfaces such as the LPC2292 which has four 16 MB banks with 8, 16 or 32 bit data width. Other devices handle it differently. Processors are never large enough to handle a programmer's need to stuff more features in the box. Sometimes these features are actually requested/required by the customer. At some point you wind up moving to ARM9 with Linux or even up to the ITX boards with high end Pentium chips. I kind of like the Intel PXA255 and I'll probably like the 270 even more. But, I am not conversant enough with Linux to do my own embedded programming. I do have the gumstix (www.gumstix.com) but I can't claim to understand much of the kernel. But, speed still costs money. How fast can you afford to go? Richard