Forums

EPROM Bootup: ADSP-21061-EZLITE

Started by Unknown October 4, 2004
Hi,

I'm confident that some people here could give me some advice on this topic.

I'm trying to program an EEPROM AT28C010E-12PC for a demonstration program
that I should run on this platform. The EEPROM programming procedure is not
the problem, I do that and the verification program says it's OK. I even
wrote my own utility to read back the EEPROM trough a microcontroller via
UART, and all the locations are programmed fine.

The DSP program runs perfectly with the Summit-ICE emulator.

I generte the .ldr file changing the project type to DSP Loader File,
selecting PROM mode, Hex boot format, Start Address is 0x0 and using the
default kernel C:\Archivos de programa\Analog Devices\VisualDSP 3.5
32-Bit\21k\ldr\060_prom.dxe, which is the normal procedure AFAIK.

When I place the DIP-packaged AT28C010E-12PC on the socket provided on the
ADSP-21061-EZLITE, I see that the CS signal is asserted for a short time,
then it's not asserted anymore, thus the EEPROM is not being read. If I just
place the original EPROM (27C1001) on the socket, when looking to the CS and
OE signals I can see that the EPROM is being read. Why not with mine?

What makes it more strange for me, is that if I use the same EEPROM
progrmmer to program an AT27LV010-20PI (taking care of the different
voltages) for testing on the ADSP-21065L-EZLITE, this kit boots up properly,
what makes me double check that the programmer works fine, so this one is
not the cause of the problem.

So, if there is something special, regarding maybe the LDF (linker
description file) or something else that I have not considered yet, please
let me know. I really need to get it up and running soon.

Kindest regards,

--
Jaime Andr�s Aranguren Cardona
jaac@sanjaac.com
SanJaaC Electronics
Soluciones en DSP
www.sanjaac.com


BTW, I created my LDF simply using the Expert Linker utility. For running
with the emulator, I didn't have any problem at all. Does it influence EPROM
booting?

Regards,

--
Jaime Andr�s Aranguren Cardona
jaac@sanjaac.com
SanJaaC Electronics
Soluciones en DSP
www.sanjaac.com


"Jaime Andr&#2013265929;s Aranguren Cardona" <jaac@nospam.sanjaac.com> escribi&#2013265923; en el
mensaje news:1096930025.3atdvn5Z66i+XtlxwzXPWw@teranews...
> Hi, > > I'm confident that some people here could give me some advice on this
topic.
> > I'm trying to program an EEPROM AT28C010E-12PC for a demonstration program > that I should run on this platform. The EEPROM programming procedure is
not
> the problem, I do that and the verification program says it's OK. I even > wrote my own utility to read back the EEPROM trough a microcontroller via > UART, and all the locations are programmed fine. > > The DSP program runs perfectly with the Summit-ICE emulator. > > I generte the .ldr file changing the project type to DSP Loader File, > selecting PROM mode, Hex boot format, Start Address is 0x0 and using the > default kernel C:\Archivos de programa\Analog Devices\VisualDSP 3.5 > 32-Bit\21k\ldr\060_prom.dxe, which is the normal procedure AFAIK. > > When I place the DIP-packaged AT28C010E-12PC on the socket provided on the > ADSP-21061-EZLITE, I see that the CS signal is asserted for a short time, > then it's not asserted anymore, thus the EEPROM is not being read. If I
just
> place the original EPROM (27C1001) on the socket, when looking to the CS
and
> OE signals I can see that the EPROM is being read. Why not with mine? > > What makes it more strange for me, is that if I use the same EEPROM > progrmmer to program an AT27LV010-20PI (taking care of the different > voltages) for testing on the ADSP-21065L-EZLITE, this kit boots up
properly,
> what makes me double check that the programmer works fine, so this one is > not the cause of the problem. > > So, if there is something special, regarding maybe the LDF (linker > description file) or something else that I have not considered yet, please > let me know. I really need to get it up and running soon. > > Kindest regards, > > -- > Jaime Andr&#2013265929;s Aranguren Cardona > jaac@sanjaac.com > SanJaaC Electronics > Soluciones en DSP > www.sanjaac.com > >
"Jaime Andr&#2013265929;s Aranguren Cardona" <jaac@nospam.sanjaac.com> escribi&#2013265923; en el
mensaje news:1096930025.3atdvn5Z66i+XtlxwzXPWw@teranews...

> What makes it more strange for me, is that if I use the same EEPROM > progrmmer to program an AT27LV010-20PI (taking care of the different
Correction (I mistyped): AT28LV010-20PI
> voltages) for testing on the ADSP-21065L-EZLITE, this kit boots up
properly,
> what makes me double check that the programmer works fine, so this one is > not the cause of the problem.
Jaime Andr&#2013265929;s Aranguren Cardona wrote:

> BTW, I created my LDF simply using the Expert Linker utility. For > running with the emulator, I didn't have any problem at all. Does > it influence EPROM booting? >
Maybe, it's too far away from your issue, but who knows... I wanted to boot from EPROM on a 21161 board. Because my program accessed code from external SDRAM, I had to modify the 161_prom.dxe file. That was well-prepared by ADI, and worked perfectly. When upgrading from VDSP++ 3.0->3.5, it didn't work anymore because the file 161_prom.dxe had been changed. I just replaced it by the old one, and everything was fine again. According to what ADI told me, memory accesses into different segments depend on the sequential order now, which was not so before. This is extremely important if you deal with different widths (e.g. 32/40 bit data sections). Just an idea. I hope its worth is more than 1c... Bernhard
Jaime Andr&#2013265929;s Aranguren Cardona wrote:
> > When I place the DIP-packaged AT28C010E-12PC on the socket provided on the > ADSP-21061-EZLITE, I see that the CS signal is asserted for a short time, > then it's not asserted anymore, thus the EEPROM is not being read. If I just > place the original EPROM (27C1001) on the socket, when looking to the CS and > OE signals I can see that the EPROM is being read. Why not with mine?
Hi Jaime, With your image burned into the boot rom, fire up your Summit ICE. Then load the 060_prom.dxe and step through it. You might need to set the DMA's EI register to 800600 before starting though. I know that's where it's supposed to be after the bootloader is loaded, but I don't recall if ADI's bootloader explicitely sets it or not. Make sure you read ADI's app note on booting too. This chunk-o-code is a real bear to understand. -- Jim Thomas Principal Applications Engineer Bittware, Inc jthomas@bittware.com http://www.bittware.com (603) 226-0404 x536 When you have a new hammer, the whole world looks like a nail.
"Jim Thomas" <jthomas@bittware.com> escribi&#2013265923; en el mensaje
news:10m579vqvgu0cd2@corp.supernews.com...
> Jaime Andr&#2013265929;s Aranguren Cardona wrote: > > > > When I place the DIP-packaged AT28C010E-12PC on the socket provided on
the
> > ADSP-21061-EZLITE, I see that the CS signal is asserted for a short
time,
> > then it's not asserted anymore, thus the EEPROM is not being read. If I
just
> > place the original EPROM (27C1001) on the socket, when looking to the CS
and
> > OE signals I can see that the EPROM is being read. Why not with mine? > > Hi Jaime, > > With your image burned into the boot rom, fire up your Summit ICE. Then
load
> the 060_prom.dxe and step through it. You might need to set the DMA's EI > register to 800600 before starting though. I know that's where it's
supposed to
> be after the bootloader is loaded, but I don't recall if ADI's bootloader > explicitely sets it or not. > > Make sure you read ADI's app note on booting too. This chunk-o-code is a
real
> bear to understand. > -- > Jim Thomas Principal Applications Engineer Bittware, Inc > jthomas@bittware.com http://www.bittware.com (603) 226-0404 x536 > When you have a new hammer, the whole world looks like a nail.
Hi Jim, I did what you recommended. I suppose you refer to the EI register of DMA channel 6, as this is the one used for PROM booting. I can't change to the value you mentioned just 5 hex positions are availabe, and 800600 is 6 hex positions long. When I try to load the 060_prom.dxe file a message box appears: Tring to load "ADSP-21062" executable into "ADSP-21061" session. Continue? I say YES. I can see an EM register initially pointing to 0x00400000, which after every interrupt EP0I (the program jumps to 0x020040) gets incremented by 6 positions... and I can see with the o'scope the assertions of both CS and RD signals on the EEPROM, which tells me that every intrrupt I am reading 6 bytes from the EEPROM, which I interpret as correctly reading the instructions. I placed a breakpoint at 0x020041, which holds a rti(db) instruction, and got some captures of the CS and RD signals, which seem to be OK. I step thtough this way for some iterations. Then I remove the brakpoint and let the program run freely. But then, from address 0x020000 everything seeem to be random data, in other words, random instructions. I'd exepct somehitng like an Interrupt Vector Table. Anyways, with your suggestion the EEPROM seems to be read OK. Why doesn't it work when simply powering the EzKit, in standalone mode? Any hint is very welcome. TIA. -- Jaime Andr&#2013265929;s Aranguren Cardona jaac@nospam.sanjaac.com SanJaaC Electronics Soluciones en DSP www.sanjaac.com (Remove "nospam" from e-mail address)
Jim Thomas <jthomas@bittware.com> wrote in message news:<10m579vqvgu0cd2@corp.supernews.com>...
> Jaime Andr&#2013265929;s Aranguren Cardona wrote: > > > > When I place the DIP-packaged AT28C010E-12PC on the socket provided on the > > ADSP-21061-EZLITE, I see that the CS signal is asserted for a short time, > > then it's not asserted anymore, thus the EEPROM is not being read. If I just > > place the original EPROM (27C1001) on the socket, when looking to the CS and > > OE signals I can see that the EPROM is being read. Why not with mine?
Hello, After some comments from Steve Holle in the ADSP newsgroup at Yahoo! (http://groups.yahoo.com/group/adsp/), a group which i really recommend to those working with DSPs from Analog Devices, I could find where the problem is. I'm forwarding what I wrote to him, so you can know how I found it, and what can I do. Maybe someone else could benefit from it. Regards, JaaC ---------------- You're right, Steve. The problem is completely in the realm of the EPROM interface. In the 21061 EZLITE the pin 31 is directly hardwired to ADDR_18. Pin 31 is Vpp on the 27C010, but ADDR_18 on bigger memories, and /WR on the 28C010, but ADDR_18 on bigger memories. I reviewed the datasheet for the (UV)EPROM, at least for the AT28C010 which is an OTP version. Anyways, for reading the EPROM doesn't care about the state of the Vpp pin (pin 31). But for the 28C010 that pin should be /WR deasserted, which means it should be "high". As this pin is hardwired to ADDR_18, and that address is not being read, the AT28C010 is not being read, but it works for the AT27C010. So I think my options are: 1. Use an EPROM (niether EEPROM, nor FLASH) 2. Modify the EzKit (I wouldn't like to!) 3. Use a bigger memory. Thanks a lot for your comments. JaaC --- Steve Holle <sholle@link-comm.com> wrote:
> Would it be possible for you to copy the contents of > your monitor EPROM > into the EEPROM and try running the EEPROM at that > point? > > If that works, it would indicate something is wrong > with the loader > setup. If it doesn't work, it would indicate a > problem interfacing the > EEPROM to the ezkit board. I think the first 256 or > so words of the EEPROM > should be the loader code which is loaded > automatically and then begins > loading the rest of the code. > > > I would also check that the WE pin is pulled up on > your ezkit board. That > pin should never go low in the system. On the > 21065L board there is a > jumper attached to that pin.