Anyone encountered a REALLY severe eZ80F91 Bug

Hi All,

Just a week into a eZ80 project we have encountered a severe bug, severe enough to make the device useless for our use, and I wondered if anyone else has come across this.

The device is a eZ80F91, and we are using all the timers. The problem is that if your code is at an address with the low byte being

0,1,2 or 3(depending on which timer is in use), and the value on the data bus is odd (bit zero set) then a timer event will be missed. This doesn't happen often but when it does it really screws our system.

Zilog know about this, and have published the details in an errata sheet. The suggested work around is to run timers in parallel, and one of them will work when the other fails, which doesn't work for us, or to move your code so there are nop's at addresses ending in 0,1,2 or 3.

This seems to apply to date codes 0317 or later -- our devices are

0539. Calling/emailing Zilog hasn't produced any response so far.

Has anyone used this device and encountered this, and does anyone know if there has been a silicon update ?.

--
TIA,
Gavin Melville
 Click to see the full signature
Reply to
Gavin Melville
Loading thread data ...

With my Cubloc CPU, creating a function that takes a Single (like C's

32 bit real), and calling it creates awful havoc. i
Reply to
Ignoramus8946

This is true, but IMO is nowhere near as severe of a bug as what the OP describes. (The 6502 bug is easily detectable with an assembler as you point out and at worst costs one byte per occurrence to fix.)

I've heard that particular 6502 bug was used by some copy protection routines to fool novice programmers!

Reply to
Joel Kolstad

Zilog isn't the only one's that had strange problems. i remember the 6502 where the jump indirect instruction could not reference a jump table index that had the low byte on the end of one page and high byte on the start of the next page of the 256 byte pages. in which case, you could use a compiler magic switch to test the current address value and insert a NOP instruction to force the address to fall with in that page. other wise, it would use the first byte of the same page as the high byte address and send your code to where ever land. if you think its really a memory address problem then try inserting a NOP at code before that maybe to move it up or what ever.

--
Real Programmers Do things like this.
http://webpages.charter.net/jamie_5
Reply to
Jamie

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.