back to buchty.net
Casiorama
back to Casiorama

Keyboard Oddities
Trying to reach me?
Just imagine you are playing on the FZ-1 when it suddenly just fries - nothing will help but switching it off and on again. Even worse, when reaching operating temperature this error will happen more and more.

Fortunately, there's an easy cure against.

Sad but true... These days one really calls for spam when publishing an email address on a website. But what the heck.

rainer@buchty.net

If you expect an answer please send plain text emails. HTML-formatted mails will be dumped automatically.

Why does the keyboard jam anyway?

Casio implemented keyboard access in a rather crude way: From the CPU's point of view the keyboard is a read-only register in the CPU's memory area. But since the CPU has to do many things (e.g. sound playback) it doesn't have the time to permanently check this register, an interrupt is sent to the CPU by the keyboard processor (which is a mask-programmed 8049 btw.). This interrupt will force the CPU to jump into the keyboard communication routine to read the (virtual) register. By doing so the interrupt flag is cleared.

What makes the FZ-1 hang is if this interrupt flag isn't cleared properly.
 

 
The Cure

My first and obvious thought was that the interrupt flag (realized by a 74HC74) was defective. Since I didn't have a 74HC74 at hand I used a 74HCT74 as replacement - and the FZ-1 seemed to work again. However, stress testing showed, that the problem showed up only less often but was still present. It looked like the clear signal generation was causing the problem.

I grabbed a multimeter and checked it. Indeed, the reset signal showed up all kinds of weirdnesses such as overshoot, undershoot and - even worse - spikes and breakdowns. Having a look at the schematics I realized that the address multiplexer (74HC154) was the part responsible for this signal. After replacing it with a 74HCT154 everything was fine again.

Casio obviously seems to love hide-and-seek games and thus didn't use usual part numbering, so here are the positions of the two mentioned ICs:

IC location
Location of 74HC74 and 74HC154
 
 
Nothing lasts forever...

...even the above fixing. After several days of playing the error showed up again. Somehow, the 74HCT154 got blown again. To prevent further blowups I decided to secure it by a ZPD4.7 diode and a 1uF capacitor between Vcc and GND. Furthermore, pin 6 got a 100Ohm resistor in series. Future will show if this will keep the 74HCT154 alive for a longer time.

Securing the 74HCT154
Securing the 74HCT154