Using WinIsp on 89C668

Started by david fussell, March 28, 2004, 11:48:37 PM

Previous topic - Next topic

david fussell

Hello,

A couple of questions:

1) Has anyone else found the datasheet regarding the usage of the 89C668 device in ISP mode misleading? It says to take the PSEN line low (via a 2K resistor) in addition to the other conditions required to enter ISP mode. Since PSEN's actual usage is an output, its source impedance is suitably low that 2K to ground has absolutely no effect on the voltage level. For the reasons stated above I'm somewhat reluctant to take PSEN directly to ground (as other datasheets suggest) but can see no other way of presenting the necessary 'low' level to enter ISP mode. Is anyone doing this satisfactorily?

2) I have not yet developed any code to run on the 89C668, but am finding that irrespective of the ISP conditions applied to the device (PSEN low etc), I always enter ISP mode, and can use WinIsp to read the device.
Since, assuming this is due to the flash status byte being non-zero by default, am I right in thinking that in addition to loading new code onto the device, you therefore also need to zero the status byte in order to get the user code to execute?

3) Will erasing all flash blocks (as opposed to a full chip erase) leave the bootloader code (FC00-FFFF) intact?    

Many thanks for any answers/comments

David

Andy Ayre

Not sure about question 1 - can't seem to find any schematic diagrams for the commercial 668 boards that I have right now.

2. Yes, you will need to set the status byte to zero if you want to execute your code. Flash Magic does this for you automatically. Not sure if WinISP does it automatically.

3. No. The Bootloader is in a seperate memory area, which is overlaid with the top most part of user Flash when needed.

I recommend that you use Flash Magic instead of WinISP. It is free, downloadable from this site and does not suffer from all of the bugs that WinISP does. Users who use WinISP seem especially prone to corrupting the boot vector in the device.

Embedded Systems Academy, Inc.
support at esacademy dot com

Rons

Question 1:


I use the 89C668. I use 2.4k to ground for ISP mode. Suggested by
someone from Philips. I also use 4.7K to vcc for logic one.  If you
investigate what the max current for that pin is 2.4k is a safe value.
I also used the same for the 89C51RD2BN.

Curious to ask what software tools you will be using.

david fussell

After reading some of the other posts, FlashMagic sounds a safer approach than WinISP.

I'm also using the Keil compiler (uVision2, c51 v6.23)


As a matter of interest- I read that many people experience unreliable ISP mode selection as a result of the RC reset circuit. Since I took the datasheet at face value, and am using this combination for my reset circuit, I'm wondering if I'm destined to be re-tracking my board with a supervisory IC...

What's your (or anyone else's) experience of this issue with the '668?

David

erikm

>>As a matter of interest- I read that many people experience unreliable ISP mode selection as a result of the RC reset circuit. Since I took the datasheet at face value, and am using this combination for my reset circuit, I'm wondering if I'm destined to be re-tracking my board with a supervisory IC...

What's your (or anyone else's) experience of this issue with the '668?<<

If the revision of your chip(s) is not 'G' or later you should install a supervisor.  The pre-G errata sheets specifically stated "if you use RC reset you are screwed" (not exactly those words).

Erik

nimbalkar nitin