Anyone encountered a REALLY severe eZ80F91 Bug

Jun 25, 2006 3 Replies

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 gavin.melville@acclipse.co.nz

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

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

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!

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required