Forums

Recommended External ROM for AVR

Started by trungnl August 3, 2005
I am doing a project with ATmega8515. But the MCU's internal Flash memor
is not enough for the firmware and I need to add an external memory chip.
What is the recommended EEPROM should I use in this case ?

Any help could be highly appreciated !
N.L.Trung
		
This message was sent using the comp.arch.embedded web interface o
www.EmbeddedRelated.com
On Wed, 03 Aug 2005 13:35:06 -0500, "trungnl" <ngolamtrung@yahoo.com>
wrote:

> >I am doing a project with ATmega8515. But the MCU's internal Flash memory >is not enough for the firmware and I need to add an external memory chip. >What is the recommended EEPROM should I use in this case ? >
Sorry, you can't do that. At least, not for executable code. Look at the ATmega16 or other micro with larger Flash memory. Regards, -=Dave -- Change is inevitable, progress is not.
On Wed, 03 Aug 2005 13:35:06 -0500, "trungnl" <ngolamtrung@yahoo.com>
wrote:

> >I am doing a project with ATmega8515. But the MCU's internal Flash memory >is not enough for the firmware and I need to add an external memory chip. >What is the recommended EEPROM should I use in this case ? >
The only way to extend the program space in an AVR is if you are running some sort of interpreter. You can then "execute" code from an external serial or parallel EEPROM or Flash device. Since the AVR is quite fast, interpreted code can run quite fast. Hope this helps Regards Anton Erasmus
>The only way to extend the program space in an AVR is if you are >running some sort of interpreter. You can then "execute" code from >an external serial or parallel EEPROM or Flash device. Since the AVR >is quite fast, interpreted code can run quite fast.
Thanks for your response, this could help me much ! Could you please tell me more about the interpreting process and how fas the AVRs can run with extended program space ? Where can I find som sample applications ? N.L.Trung This message was sent using the comp.arch.embedded web interface o www.EmbeddedRelated.com
trungnl wrote:
> I am doing a project with ATmega8515. But the MCU's internal Flash memory > is not enough for the firmware and I need to add an external memory chip. > What is the recommended EEPROM should I use in this case ?
First, think about your design goal. If the goal is to build a controller with some characteristics (ROM, RAM, peripherals), then choose a proper microcontroller with the appropriate amount of these resources. If the goal is to force the chosen microcontroller to do something it is inappropriate for, then go for dirty tricks like external memory, interpreted language etc. From my experience nowadays it is always easier and cheaper to selest the proper uC - there is a very wide spectrum of these devices available and the prices usually don't justify the usage of external ROM.
"trungnl" <ngolamtrung@yahoo.com> wrote in message 
news:nY6dnSp8Lb3kM2zfRVn_vQ@giganews.com...
> >>The only way to extend the program space in an AVR is if you are >>running some sort of interpreter. You can then "execute" code from >>an external serial or parallel EEPROM or Flash device. Since the AVR >>is quite fast, interpreted code can run quite fast. > > Thanks for your response, this could help me much ! > Could you please tell me more about the interpreting process and how fast > the AVRs can run with extended program space ? Where can I find some > sample applications ? >
Embedded interpreters use languages like Forth or Basic. Your application will need to be re-written in this language and will go much slower than compiled code. As the other people have mentioned you really need to change to a uC that supports external code memory or has more code space. Or you could have more than one uC and split the task between them. Peter
On Thu, 04 Aug 2005 00:58:17 -0500, "trungnl" <ngolamtrung@yahoo.com>
wrote:

> >>The only way to extend the program space in an AVR is if you are >>running some sort of interpreter. You can then "execute" code from >>an external serial or parallel EEPROM or Flash device. Since the AVR >>is quite fast, interpreted code can run quite fast. > >Thanks for your response, this could help me much ! >Could you please tell me more about the interpreting process and how fast >the AVRs can run with extended program space ? Where can I find some >sample applications ?
If you have already written the firmware, and "hit the roof", it would be much simpler to choose another MCU from the AVR range. Assuming that you want to keep PDIP40 package, there are several AVRs with more flashrom. Max flashrom for PDIP40 is 64k bytes, ATmega644. At 32k there is ATmega32 and ATmega324. At 16k there is ATmega16 and ATmega164. You will have to check the availability, though. See: http://atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC Tom
On Thu, 04 Aug 2005 00:58:17 -0500, "trungnl" <ngolamtrung@yahoo.com>
wrote:

> >>The only way to extend the program space in an AVR is if you are >>running some sort of interpreter. You can then "execute" code from >>an external serial or parallel EEPROM or Flash device. Since the AVR >>is quite fast, interpreted code can run quite fast. > >Thanks for your response, this could help me much ! >Could you please tell me more about the interpreting process and how fast >the AVRs can run with extended program space ? Where can I find some >sample applications ? >
If your current code is written in C, then you can buy a C compiler targeting a "virtual processor" from www.dunfield.com. The virtual target is called C-Flea. They have code for various MCUs for the virtual machine engine. I used their C version, compiled with avr-gcc to run on the AVR. One then uses the C-Flea C Compiler to compile the application code that runs on the virtual machine. One can easily generate a VM for the PC that emualtes one's peripherals. The "readmem" and "writemem" routines on the VM can be customised to read/write from anywhere. One can even execute code received via the serial port. Regards Anton Erasmus
Thank you for your helps,
The reason why I am trying to extend the program space of AVR8515 i
because my customer wants to lower the price of the product. My firmwar
is expected to reach a codesize of 60KB aprox., but does not require muc
peripherals. At first I thought it could cost less by using a low cost MC
with external code memory than using a high-end MCU like ATmega64. But fro
the information you gave me, this could lead to a more complicate
hardware/firmware and a reduced performance. I think I should reconside
this solution more carefully.
However, how about the PICs MCU ? I have another firmware version fo
Microchip PIC18Fxx2. How can I extend the memory space of these MCUs ?

Regards,
N.L.Trung
		
This message was sent using the comp.arch.embedded web interface o
www.EmbeddedRelated.com
trungnl wrote:
> Thank you for your helps, > The reason why I am trying to extend the program space of AVR8515 is > because my customer wants to lower the price of the product. My firmware > is expected to reach a codesize of 60KB aprox., but does not require much > peripherals. At first I thought it could cost less by using a low cost MCU > with external code memory than using a high-end MCU like ATmega64. But from > the information you gave me, this could lead to a more complicated > hardware/firmware and a reduced performance. I think I should reconsider > this solution more carefully. > However, how about the PICs MCU ? I have another firmware version for > Microchip PIC18Fxx2. How can I extend the memory space of these MCUs ? >
just my 2 cents : how many strings or constant data do you have in the firmware ? they can be moved to an external memory ( SPI I2C ) and loaded on demand in this way you can/could recover precious space code for PIC there some devices with lot of flash, 2 romless devices external code only, and some devices with internal flash + external bus interface but they all tend to be big parts
> Regards, > N.L.Trung > > This message was sent using the comp.arch.embedded web interface on > www.EmbeddedRelated.com