The first of the two boards implements the power subsystem for the Vacuum Fluorescent Display (VFD). It hosts two circuits, one boosting the ~7.5VDC input from the AC mains transformer up to the 30VDC needed to drive the VFD's anodes and grids, and the other providing the AC filament power. The saga of the latter circuit has been described here and here, but in summary I started with a MAX253 but will end up using a SN6505B instead.
For the 30V boost regulator I started with the circuit suggested by Noritake-Itron based on the MC33063, but this chip lacks a convenient shut-off. Last week I settled on the LT3494 as a replacement. It's tiny, energy efficient, and can be turned on or shut off from the FPGA without needing any interface electronics. Score!
So here's an image of that board, as viewed in KiCad's board editor Pcbnew:
This board is ready to go to OSH Park for fabrication, but I thought I'd see whether I could get the second board ready to go at the same time.
The second board implements the power subsystem for the FPGA, which requires 3.3V for the I/O interfaces and PLLs, and 1.2V for the logic core. The 3.3V supply will also feed the VFD filament transformer, so it starts with an expected load of about 150mA. My plan was to clone the FPGA power subsystem from the Digilent Cmod S6, which uses a pair of TI TPS62170 synchronous buck regulators. To this I planned to add a bridge rectifier and filter capacitor to take the AC output of the mains transformer and convert it to DC.
The transformer is clearly stamped "OUTPUT: 5.2VDC 600mA", but when measured in an operating, unmodified calculator it puts out 7.38 VRMS, and 7.85 VDC after rectification and filtering.
I actually got the entire schematic entered and was placing test points when I got thinking about how I'd test the power on/off control. The power switch on this calculator doesn't cut off the AC power. Instead, some circuit has to react to a SPDT "switch" constructed on the PCB. The 1.2V regulator is enabled by the PG (Power Good) output from the 3.3V regulator to provide power rail sequencing, so the obvious way for this to work is to have this switch control the EN (Enable) pin on the 3.3V regulator. What could be simpler?
Here's the schematic for the TPS62170 test board as it stands:
But while double-checking the schematic I came across this statement in the TPS62170's data sheet:
"The TPS6217x has a built in power good (PG) function to indicate whether the output voltage has reached its appropriate level or not. The PG signal can be used for startup sequencing of multiple rails. The PG pin is an open-drain output that requires a pull-up resistor (to any voltage below 7 V). It can sink 2 mA of current and maintain its specified logic low level. It is high impedance when the device is turned off due to EN, UVLO or thermal shutdown."Everything up to the last sentence is pretty normal for a voltage regulator. The reason the PG output is open-drain is so you can wire-OR multiple outputs together; if any of these outputs is low, the power is "not good". But the sentence I've italicized throws a massive spanner into the works: if I use keyboard's power switch to turn off the 3.3V regulator by deasserting its EN (enable) input, the 3.3V regulator's PG pin will remain off. That means the EN input to the 1.2V regulator will remain asserted, at least until the 3.3V supply drops below the EN input's threshold voltage of 0.3 to 0.56 volts. The same would happen in case of thermal overload! Apparently the "Power Good" output only means it was good at some point, but may have failed since.
Now I'm thinking I'll use the LTC3607 regulator instead. It's a dual-output regulator, capable of supplying 600mA to either or both of its outputs. At $5.13 it's more expensive than two TPS62170s ($1.46/ea), but not outrageously so. Best of all, it looks like its Power Good outputs really mean the power is good.