Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Thread

EMC flash memory programming

EMC flash memory programming

2005-08-04 by catstransport

Hi all,

I had in the pass several problems with this board they are all almost
solved. We use now the Philips sc16c754b instead of the Texas
Instruments ti16c754b. Now I do not have to hack into the quaduart
before i write someting. Now is the next problem.

I am a newby in writing to external memory. The RAM works. I can write
to it. But the flash is a problem. We have combined two 16bit flash to
the lpc2292. I have found flash drivers for the 16bit. But I have to
write with 32bit. I just don't know how to get it work.

the memory is: 2 x m29w320DB on bcfg0. bcfg0 = 0x2000348f. After I
write 0x00AA0AA to flashBase[0x05550555] the whole microcontroller
doesn't do anything anymore. Can somebody help me with this problem.

m.v.g.

Remco Cats

Re: [lpc2000] EMC flash memory programming

2005-08-05 by DECwiz (Fred van Kempen)

hrrm

catstransport <remco@...> wrote:Hi all,

I had in the pass several problems with this board they are all almost
solved. We use now the Philips sc16c754b instead of the Texas
Instruments ti16c754b. Now I do not have to hack into the quaduart
before i write someting. Now is the next problem.

I am a newby in writing to external memory. The RAM works. I can write
to it. But the flash is a problem. We have combined two 16bit flash to
the lpc2292. I have found flash drivers for the 16bit. But I have to
write with 32bit. I just don't know how to get it work.

the memory is: 2 x m29w320DB on bcfg0. bcfg0 = 0x2000348f. After I
write 0x00AA0AA to flashBase[0x05550555] the whole microcontroller
doesn't do anything anymore. Can somebody help me with this problem.

m.v.g.

Remco Cats




SPONSORED LINKS 
Microcontrollers Microprocessor Intel microprocessors Pic microcontrollers 8085 microprocessor 

---------------------------------
YAHOO! GROUPS LINKS 


    Visit your group "lpc2000" on the web.
  
    To unsubscribe from this group, send an email to:
 lpc2000-unsubscribe@yahoogroups.com
  
    Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 


---------------------------------




		
---------------------------------
 Start your day with Yahoo! - make it your home page 

[Non-text portions of this message have been removed]

Re: [lpc2000] EMC flash memory programming

2005-08-05 by David Willmore

> catstransport <remco@...> wrote:Hi all,
> I am a newby in writing to external memory. The RAM works. I can write
> to it. But the flash is a problem. We have combined two 16bit flash to
> the lpc2292. I have found flash drivers for the 16bit. But I have to
> write with 32bit. I just don't know how to get it work.
> 
> the memory is: 2 x m29w320DB on bcfg0. bcfg0 = 0x2000348f. After I
> write 0x00AA0AA to flashBase[0x05550555] the whole microcontroller
> doesn't do anything anymore. Can somebody help me with this problem.

You need 0x00AA to appear on the 16 bit data bus for each FLASH, right?
You also need their address likes to read 0x0555?  Yeah, checked the
data sheet from ST, that's right.  

Okay, so you you want is flashBase[0x00000555] = 0x00aa00aa

Keep in mind that your address lines are in parallel to the chips, so
you don't need to replicate the pattern in the address bits.  The data
bits are concatinated, so you do need to replicate that data.

So, you could:
flashBase[command_addr]= (command_data | (command_data << 16));

for all of the commands and then:
flashBase[data_addr] = data_32;

for the actual data write.

Does that make sense?  It's always a bit hard to wrap your head
around the first time, but it's second nature after that. :)

Cheers,
David

Re: EMC flash memory programming

2005-08-07 by catstransport

--- In lpc2000@yahoogroups.com, David Willmore <willmore@o...> wrote:
> > catstransport <remco@u...> wrote:Hi all,
> > I am a newby in writing to external memory. The RAM works. I can write
> > to it. But the flash is a problem. We have combined two 16bit flash to
> > the lpc2292. I have found flash drivers for the 16bit. But I have to
> > write with 32bit. I just don't know how to get it work.
> > 
> > the memory is: 2 x m29w320DB on bcfg0. bcfg0 = 0x2000348f. After I
> > write 0x00AA0AA to flashBase[0x05550555] the whole microcontroller
> > doesn't do anything anymore. Can somebody help me with this problem.
> 
> You need 0x00AA to appear on the 16 bit data bus for each FLASH, right?
> You also need their address likes to read 0x0555?  Yeah, checked the
> data sheet from ST, that's right.  
> 
> Okay, so you you want is flashBase[0x00000555] = 0x00aa00aa
> 
> Keep in mind that your address lines are in parallel to the chips, so
> you don't need to replicate the pattern in the address bits.  The data
> bits are concatinated, so you do need to replicate that data.
> 
> So, you could:
> flashBase[command_addr]= (command_data | (command_data << 16));
> 
> for all of the commands and then:
> flashBase[data_addr] = data_32;
> 
> for the actual data write.
> 
> Does that make sense?  It's always a bit hard to wrap your head
> around the first time, but it's second nature after that. :)
> 
> Cheers,
> David

thanks that is the reaction that I wanted to hear. Tomorrow I will try it.

remco

Re: EMC flash memory programming

2005-08-08 by catstransport

--- In lpc2000@yahoogroups.com, "catstransport" <remco@u...> wrote:
> --- In lpc2000@yahoogroups.com, David Willmore <willmore@o...> wrote:
> > > catstransport <remco@u...> wrote:Hi all,
> > > I am a newby in writing to external memory. The RAM works. I can
write
> > > to it. But the flash is a problem. We have combined two 16bit
flash to
> > > the lpc2292. I have found flash drivers for the 16bit. But I have to
> > > write with 32bit. I just don't know how to get it work.
> > > 
> > > the memory is: 2 x m29w320DB on bcfg0. bcfg0 = 0x2000348f. After I
> > > write 0x00AA0AA to flashBase[0x05550555] the whole microcontroller
> > > doesn't do anything anymore. Can somebody help me with this problem.
> > 
> > You need 0x00AA to appear on the 16 bit data bus for each FLASH,
right?
> > You also need their address likes to read 0x0555?  Yeah, checked the
> > data sheet from ST, that's right.  
> > 
> > Okay, so you you want is flashBase[0x00000555] = 0x00aa00aa
> > 
> > Keep in mind that your address lines are in parallel to the chips, so
> > you don't need to replicate the pattern in the address bits.  The data
> > bits are concatinated, so you do need to replicate that data.
> > 
> > So, you could:
> > flashBase[command_addr]= (command_data | (command_data << 16));
> > 
> > for all of the commands and then:
> > flashBase[data_addr] = data_32;
> > 
> > for the actual data write.
> > 
> > Does that make sense?  It's always a bit hard to wrap your head
> > around the first time, but it's second nature after that. :)
> > 
> > Cheers,
> > David
> 
I Have tried it but still I see only a empty flash when I read the
address. I have download the st flashdrivers for 16 bit. And I have
changed it with the above changes and it still will not write.

I gonna look with a scope to see if the data lines toggling.

cheers remco

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.