DSPRelated.com
Forums

Strange Behavior of Flash Memory

Started by hass...@yahoo.com July 16, 2007
Hi,

I design a board including a TMS320VC5416 and an Am29LV160D (Delay 70ns) flash memory. I connect Data and Address buses of DSP to the flash directly and make control signals of flash with MSTRB#, and R/W# of DSP.

I observe control signals, data and address buses of flash and all of them it seems are correct; However, I can’t write in a specific position since when I read the position I get another meaningless value.

For test I also try to read Device Code and Manufacture ID of the flash with AutoSelect command. However, I can’t get correct value. To get sure that the flash is error-free, I read these ID and code with VID (12v) and they were correct.

Now I am confusing why I can’t access the flash correctly while its control signals, data and address buses are correct (their enable time is sufficient.) May be as clue, there is another problem. DS# of DSP is low always when there is an access to external memory while I expect it gets low only when a read or write instruction to external memory executes.

Any suggestion is appreciated.
Best regards,
- Farhad
Farhad-

> I design a board including a TMS320VC5416 and an Am29LV160D (Delay 70ns)
> flash memory. I connect Data and Address buses of DSP to the flash
> directly and make control signals of flash with MSTRB#, and R/W# of DSP.
>
> I observe control signals, data and address buses of flash and all of
> them it seems are correct; However, I can't write in a specific position
> since when I read the position I get another meaningless value.
>
> For test I also try to read Device Code and Manufacture ID of the flash
> with AutoSelect command. However, I can't get correct value. To get sure
> that the flash is error-free, I read these ID and code with VID (12v)
> and they were correct.
>
> Now I am confusing why I can't access the flash correctly while its
> control signals, data and address buses are correct (their enable time is
> sufficient.) May be as clue, there is another problem. DS# of DSP is low
> always when there is an access to external memory while I expect it gets
> low only when a read or write instruction to external memory executes.

If you have board #1 (your board with 5416) and it cannot read Flash, and you have
board #2 (VID) and it can read Flash, then why can't you compare both of those using
digital scope and find the difference? There must be some signal or line on the
Flash that is being treated differently.

-Jeff
Farhad-

> I have just one board.
> As you know each flash has usually a manufacture ID and a device
> code. These ID and code can be achieved in two ways:
> High Voltage Method and software Command. In High Voltage method, you
> put 12v on one address bus (A9), and then read from an address whose
> least significant address is 0 or 1. In software command method, you
> follow a sequence to achieve them.
> I can get these Id and code with High Voltage method. However, I
> can't with software command method.
>
> With considering these facts I will be thankful if state your opinion.

So you must be doing this:

-disconnect Flash A9 from the DSP (did you design
a jumper for this addr line?)

-connect 12V to Flash A9

-run DSP code that reads Flash with low addr bit 0,
then reads Flash with low addr bit 1

Please confirm. If you at any point connected 12V to the DSP address line (or other
chip) then there would be damage.

-Jeff

PS. Please post to the group, not to me.

> --- In c..., Jeff Brower wrote:
> >
> > Farhad-
> >
> > > I design a board including a TMS320VC5416 and an Am29LV160D
> (Delay 70ns)
> > > flash memory. I connect Data and Address buses of DSP to the flash
> > > directly and make control signals of flash with MSTRB#, and R/W#
> of DSP.
> > >
> > > I observe control signals, data and address buses of flash and
> all of
> > > them it seems are correct; However, I can't write in a specific
> position
> > > since when I read the position I get another meaningless value.
> > >
> > > For test I also try to read Device Code and Manufacture ID of the
> flash
> > > with AutoSelect command. However, I can't get correct value. To
> get sure
> > > that the flash is error-free, I read these ID and code with VID
> (12v)
> > > and they were correct.
> > >
> > > Now I am confusing why I can't access the flash correctly while
> its
> > > control signals, data and address buses are correct (their enable
> time is
> > > sufficient.) May be as clue, there is another problem. DS# of DSP
> is low
> > > always when there is an access to external memory while I expect
> it gets
> > > low only when a read or write instruction to external memory
> executes.
> >
> > If you have board #1 (your board with 5416) and it cannot read
> Flash, and you have
> > board #2 (VID) and it can read Flash, then why can't you compare
> both of those using
> > digital scope and find the difference? There must be some signal
> or line on the
> > Flash that is being treated differently.
> >
> > -Jeff
> >