Thursday 9 March 2017

Clock design notes #1 - mechanicals and NOR gates

In this post I will cover some of the design and construction choices I have made. Hopefully it will give you an idea of how things are going to come together physically.

Circuit boards

There are examples of discrete clocks out there that can be built on a single PCB, such as this one. But I want something that will be able to stand on its own. So I plan to build my clock using several smaller boards. The boards will all stack together to form something of a brick, with headers and sockets forming a couple of busses between the boards.

There is also another advantage to using this method I have found, and that is I can build the clock in a modular fashion with each board representing a different "functional block". For example, one board will contain all of the counters for the clock, and another will have the decoders to drive the LED displays for the clock.

Initially I went down to my local electronics shop and found what looked like a nice prototyping board, so I grabbed one of them to do some measurements and test some theories. But it became quickly obvious that it wasn't going to cut it for my project as I wouldn't be able to achieve the increasingly apparent density of transistors per board that I will need. The largest problem is that holes are grouped in lots of three with a common pad between them. The way I intend to lay out my boards, which I'll get to a little later, sees a layout like this taking up 50% more space.

So I went to ebay, as one does, and started looking for an alternative, and I found something which looked a lot better. The most immediately obvious thing is that each hole has its own dedicated pad, which means I can choose the density and orientation of components that I need. As a bonus, it has a larger hole in each corner which will make stacking the boards and holding them all together with spacers all that more easier. They are also physically larger in both dimensions, so I have more space to fit things in. So I ordered a bunch of them, knowing that they are coming from China and would likely take a few weeks to arrive, but to my surprise they showed up barely a week later. In comparison I think they will be perfect for the job:



Board stacking

As mentioned above, I plan to build my clock as a stack of boards. I was originally thinking of hard wiring the boards together, but I thought that would be messy and less elegant, and would make maintenance and/or expansion harder.

Standard 0.1" pin headers and sockets would in theory work fine, but I need to get signals from one board, through one or more boards, to other boards in the stack. Standard headers and sockets don't have pins long enough to achieve that, and I would need to stagger them from board to board (because it would be difficult to install them within the same footprint) which would take up additional space that I need for transistors. And don't forget the extra effort to bridge all of the pins of these disparate headers.

To overcome this I'll be using some sockets with extra long pins extending out the back of them. As a proof of concept I ordered a couple of these to test them out, and with a little toying about I was able to convince myself that they would work, and also answer the question of how far apart the boards would end up being spaced: 12mm.

The body of the socket on these connectors is about 10.5mm high off the board, and the pins extend out the back of the board about 5mm. With 12mm spacing, the pins will insert a couple of mm in to their mating socket, and leave a 1.5mm gap from the top of the socket to the next board for solder and signal wires to live in. It will be a tight fit, but I think I've worked out how to make it .. work.

After ordering and receiving all of the required bits and pieces I did a fit test, and heres a sample of what a couple of boards stacked together would look like:


These 4 boards stacked together had a thickness of a little over 42mm, so as you can see, the more boards, the brickier this thing is going to get. I'm anticipating upwards of 8 in total - no one ever said this would be small or compact. 😄

NOR gate construction

All of the logic for the clock will be implemented using discrete NOR gates. There wont be anything close to an integrated circuit in this clock, except perhaps for the linear regulator in the power supply - but that will certainly be it.

Recall that a NOR gate output is high as long as all of the inputs are low. This is very easy to implement in circuitry, so lets run through it.

To start with, the high output state can be achieved by pulling the output pin via a series resistor up to the positive power rail, like this:


Where Q is the output.

On its own this doesn't achieve much, just a constant high output. But by placing a transistor in between the output and the ground rail, you provide a mechanism to control whether the output is pulled high or low. This would be achieved like so:


Where A is an input.

I will actually be using N channel MOSFETs because they will help to reduce the overall part count by cutting out quite a few additional resistors that would likely be needed if I used bipolar transistors.

So how does the above circuit work? Well, an N channel MOSFET will only allow current to pass from drain to source if its gate is brought "high". So in the circuit above, when the gate of the MOSFET is low, current flows from the positive rail, through the series resistor to the output pin where it feeds other parts of the circuit, thus it is "high" and sourcing current. If you apply voltage to the gate of the MOSFET, any current supplied by the series resistor is shunted down to ground, and any circuitry connected to the output pin also sees ground, so the output is now "low" and is sinking current. The series resistor is necessary in order to prevent the positive rail being shorted directly to ground when a MOSFET turns on, which isn't a nice thing to do.

The circuit above actually represents an inverter because its output inverts the state of its single input (low input = high output, high input = low output). You can turn this in to a NOR gate by adding more inputs as such:


Where A and B are both inputs.

Voila, a 2-input NOR gate. If you were to leave both the A and B inputs low so that both of those MOSFETs are not allowing current to pass, then the output will be high. If you turn on either or both of the MOSFETs, they will pull the output low. Add even more MOSFETs to build bigger NOR gates.

Something worth noting to be more "technically correct" (the best kind of correct), is that you shouldn't leave a MOSFET gate "floating", that is, not connected to either the positive or ground power supply rails in some way. MOSFET gates are minutely capacitive such that even touching one with your finger can be enough to turn it "on-ish", but it won't turn off immediately, and in a circuit this could result in "undocumented behavior". Julian Ilett, another YouTuber that I follow, has a video demonstrating this behaviour.

You can take care of this with a "bleed resistor" which ties the gate to ground so that it has some way to discharge itself. This can also be thought of as a "pull down" resistor, because it pulls the gate low. Conversely, you can also use a "pull up" resistor to pull the gate high so that it is always on and use another method, like a button or switch, to shunt it to ground to turn it off. Conveniently, the design of the NOR gate takes care of this, so I'll only need to handle "special cases".

And finally, this is how I will lay my gates out on the board, and I think I've come up with a method that is relatively dense:


This represents two separate NOR gates, a 2-input and 3-input. Here's a description of whats going on:

  • The trace through the middle is the positive power supply rail, one side of the series resistors are connected to it (they will be installed vertically to save space)
  • The traces coming off the series resistors adjacent to the transistors are the NOR gate outputs, and they are commoned with all of the drain pins of the MOSFETs that form part of each respective NOR gate
  • The top and bottom traces are the ground rail, and the source pins of all MOSFETs will be commoned to the ground rail
  • The unconnected pins in the middle of each MOSFET are the gates, and these form the inputs to each NOR gate.

With this layout I have common positive and ground rails between each row of MOSFETs, so I only need alternate their orientation from row to row to connect source and drain pins appropriately.

The specific MOSFET I have chosen to use is the 2N7000, and specifically a variant with splayed legs so that it slots in to holes on a 0.1" grid more easily. Heres a photo of a small batch that I ordered for testing:


Finishing up for this post, with my chosen boards and layout I've calculated that I should be able to build 13 rows with 33 transistors on each, giving me room for about 430 transistors per board while leaving a couple of rows of pads free for the headers and sockets needed for stacking, and I may be able to achieve slightly more than this if push comes to shove.

8 comments:

  1. Where did you get those MOSFETs and for how much?
    I found some on ebay from Chinese sellers for ~15 EUR per lot of 500 free shipping (3 EUR ct per piece), although with straight legs.

    ReplyDelete
  2. I buy most of my components through RS Components, and occasionally Digi-Key. I prefer to use RS because they have free next day shipping for almost everything.

    The specific part number I ordered in the photo above was a small quantity (50) of 2N7000TA.

    For my "production build" (if you want to call it that) I made a bigger purchase. The part number for that was 2N7000_D26Z and came as a qty of 2000 on tape (so same as above photo) and with formed leads, but on a reel as supplied from the factory. That cost about £83.

    Image: https://drive.google.com/file/d/0B6dl0yJEkv0nSnFsWUcyV0ZYNzA/view?usp=sharing

    (I have removed a spiral of paper tape separating each layer)

    Check the Fairchild website to see what part numbers are supplied in which package variant (i.e. formed leads or not, and also orientation/order of pins):

    https://www.fairchildsemi.com/products/discretes/fets/mosfets/2N7000.html?keyword=2N7000

    ReplyDelete
  3. Thanks Tom. So that lot of 2000 is 4.90 EUR cents or 4.15 British pence per piece.
    That's +61% but of course next day shipping vs ... a month or so from China...
    Well, 2000 should last for awhile, but how many would you actually estimate for this project (roughly)?

    ReplyDelete
    Replies
    1. [Actually not +61%; let's just say 1 + two thirds the ebay price]

      Delete
    2. Still working through some of the designs at the moment and making tweaks and fixing issues, so it will be somewhat later before I discover the actual figure, but as a guesstimate at this point in time I am expecting somewhere around 1500.

      Delete
  4. Well, I just ordered 500 from ebay. It said Delivery Apr 25th to June 2nd - I might very well have forgotten about it by then... Let's see.

    ReplyDelete
    Replies
    1. Yesterday a yellow parcel arrived... :) So two weeks, not too bad. I still have to test a random sample. I think I'll try your gate design with one of my minimized 7-seg-decoders.

      Delete
    2. Cool, have fun. I have started building my clock and so far so good. My blog is still running a little behind my actual progress, but Im catching up now as Im taking some measurements with the 1PPM signal, and other things going on are slowing the build down a bit. That'll all be covered in some future posts though. :-)

      Delete