EmbeddedRelated.com
Forums

AVR with Parallel Flash Memory

Started by NMMX May 26, 2010
On May 27, 6:14=A0pm, "Meindert Sprang" <m...@NOJUNKcustomORSPAMware.nl>
wrote:
> > If you create the bus cycles manually with a 12MHz AVR, you must have a v=
ery
> slow flash before you need to insert NOPs to get the timing right. What's > the speed of the flash chip you're using? > To give you an idea: I am currently working with a PIC18 running at 24MHz > (at gun point, I must admit) and the flash has an access time of 100ns. N=
o
> NOPs required and the total transfer speed is dead slow at 75kbyte/s.... >
It's not so much Taa timing, as port-pipeline effects - on single-cycle parts, often you cannot read immediately after a write, if you want read to reflect that write. This post over in Avrfreaks: ["When switching between output and input, I found 2 cycles were needed at 20MHz in order to read the port data. I use 3 NOPs just to play it safe."]
NMMX skrev:
>>> Currently I just insert random nops to delay cycles until it works as >>> expected. However, I would like to be able to work this out properly so > >>> can >>> write more efficient code. >>> >>> >> That's lucky...... all the info you need is in the Atmel data sheets, but > I >> suspect you don't understand what is in front of you. Have you thouight >> about SPI flash ? > > Parallel is used due to the requirements of the project. >
That is real strange. It is a significant disadvantage to use parallell vs SPI flash, so if I were you, I would go back and investigate why it is a requirement. Easiest is to use an 8 bit flash memory and an AVR with an external bus, like the ATmega1281 or XMEGA. Then you need to demultiplex the bus, and thats it. Chip select controlled by an I/O pin, if that is the only thing on the bus.
> You're right, I don't fully understand everything within the datasheets > hence why I am asking for a little bit of help to gain better > understanding. > > I'm not in a electronics background for work/academic the only resource I > have when I don't fully understand something is community forums and > books. > > It is quite easy to insert enough no operation instructions so I can be > sure that I am within the correct time frames, I simply want to be able to > calculate it properly. I know a few issues that would effect this is things > such as the sync latching. > > Regards. > > --------------------------------------- > Posted through http://www.EmbeddedRelated.com
-- Best Regards Ulf Samuelsson These are my own personal opinions, which may or may not be shared by my employer Atmel Nordic AB
NMMX skrev:
>>> Currently I just insert random nops to delay cycles until it works as >>> expected. However, I would like to be able to work this out properly so > >>> can >>> write more efficient code. >>> >>> >> That's lucky...... all the info you need is in the Atmel data sheets, but > I >> suspect you don't understand what is in front of you. Have you thouight >> about SPI flash ? > > Parallel is used due to the requirements of the project. >
That is real strange. It is a significant disadvantage to use parallell vs SPI flash, so if I were you, I would go back and investigate why it is a requirement. Easiest is to use an 8 bit flash memory and an AVR with an external bus, like the ATmega1281 or XMEGA. Then you need to demultiplex the bus, and thats it. Chip select controlled by an I/O pin, if that is the only thing on the bus.
> You're right, I don't fully understand everything within the datasheets > hence why I am asking for a little bit of help to gain better > understanding. > > I'm not in a electronics background for work/academic the only resource I > have when I don't fully understand something is community forums and > books. > > It is quite easy to insert enough no operation instructions so I can be > sure that I am within the correct time frames, I simply want to be able to > calculate it properly. I know a few issues that would effect this is things > such as the sync latching. > > Regards. > > --------------------------------------- > Posted through http://www.EmbeddedRelated.com
-- Best Regards Ulf Samuelsson These are my own personal opinions, which may or may not be shared by my employer Atmel Nordic AB