8-bit CPU: Playing with FETs and new Display module

My previous improvements on Display module left me a bit disappointed. The brightness of display just was not good enough. I could not push enough current into the LEDs. I purchased a batch of more efficient 7-segment displays, but I still want to make the old ones work.

Amplifying the current

I stumbled onto FDV301N FETs and decided to give them a try. They should be able to handle about 200 mA, and voltage drop should be in millivolts range.

Looks good, but there's a catch - they come in SOT-23 surface-mount package. Not very breadboard friendly. I, however, managed to build an adapter board from 2x3-hole piece of perfboard. Scraped copper from one pad in the middle and soldered the FET in.

 

Made a couple of these, but how do I connect them?. I need to control both, cathodes and anodes of display's LEDs. Cathodes are straightforward, the typical schematics are all over the internet. Anodes, on the other hand... I had to figure it out experimentally. 

If I understand the main principle of N-channel FET, voltage level on Gate (1) should be held higher than on Source (3), to allow current to flow from Drain (2) to the Source (3). That makes it straightforward for application for cathode. 

For anode it becomes a bit trickier, but since I need current-limiting resistor anyway, I use it to make voltage level on the whole FET lower. Then if I bring Anode control signal up (or close) to full VCC, it should become higher than on the Source, allowing current to flow.

 

That's just single LED, what about whole display? And how it behaves when multiplexing displays? Let's make an experiment by wiring in the FETs in existing display module:


The rightmost display is re-wired to use FET as a cathode-control (instead of ULN2003), which makes the whole display a bit brighter. Then the upper-right segment of that display has the anode-control FET connected.

With current-limiting resistor of 50Ω (two 100Ω resistors in parallel) it pushes about 9.5mA of average (1/4 duty cycle) current, making the segment about as bright as it will go. Unfortunately the difference in picture looks quite minuscule, but in real life it looks much better.

PCB version

Finally all the missing pieces are there and I can proceed to make a PCB version of the Output module. I'd really like to keep the common form-factor of the boards, unfortunately 7-segment displays alone takes quite a lot of space. It did seem likely to fit the remaining components on the opposite side of the board.

I settled with 2 boards that stack on each other. The bottom board features 555, EEPROM, counters and all the remaining chips. Top one contains resistors, displays and FETs to switch them.

I went for PLCC version of EEPROM, together with socket it still occupies a lot of space, but I want to be able to remove and re-program it. Same as in breadboard prototype I used 161 counters to hold data. I included extra 173 for display mode - now decimal unsigned/signed, hex and octal display modes can be selected by loading a value from the Bus. I'll have to assign control line and adjust microcode for it some day.

I'm quite pleased with the result. It saves a lot of space and looks much better than my old breadboard-mess.

Comments

Popular posts from this blog

8-bit CPU: Clock module

8-bit CPU: ALU and Flags

8-bit CPU: Memory