Introduction: Do You Need a Byte?

When developing (or debugging) microcontroller or Arduino applications you sometimes want to visually display several logic signals, several bits, perhaps a full byte. You can of course wire up a group of LEDs on your breadboard, but with all the series resistors this might take up some space and wires.

For a student course I was searching the net and eBay for a commercial breakout board for this purpose with no result. So here is my solution.

Material:

  • 8pcs red 1206 SMD LEDs
  • 8pcs 330Ω 1206 SMD resistors
  • 1pc 33kΩ 1206 SMD resistor
  • 1pc 74AC573 TSSOP20 package
  • 1pc 13pin pin-header

Step 1: Background

In principle you could just connect an LED with a current limiting resistor to a digital signal and the LED will show you the state of the signal. However, there are three possible pitfalls here:

  1. the additional connection of an LED and the current through the LED might influence the state of the signal - especially if it comes from a source with a higher output resistance
  2. connecting several LEDs to the outputs of, for example an AVR microcontroller, might in the end overload the maximum allowed current output of the chip
  3. the lighting up of the LED will not securely indicate whether the signal will be interpreted by another chip as a definitive 0 or 1. It will only show that the voltage over the LED is high enough (with variations depending on the LED) to turn on the LED.

So instead you would want to buffer the logic signals and connect the LED to the output of this buffer. Here you have different possibilities:

  1. using individual transistors for each LEDs, as it was done by Atmel on the STK500 development board for AVR microcontrollers, even though I would disagree with their exact solution
  2. using a dedicated driver chip with parallel transistors in one package, like the ULN2803 for 8 channels
  3. using a standard CMOS logic chip with enough driving capability to connect e.g. 8 LEDs to its outputs.

Step 2: The Circuit

Since I probably will have to put together a number of these circuits for my students, I wanted a simple solution with as few components as possible. For once I also wanted to avoid through-the-whole devices in order to minimize the need for drilling. Using the ULN2803 would have been an overkill when it comes to the output capability, checking the availability and considering some additional functionality I decided to use the 74xx573 (74HC573, 74AC573,...) 8-bit transparent latch as buffer. Compared to the similar 74xx373 the '573 has the advantage of a more convenient pinout.

This particular chip also allows latching, i.e. locking, the current state of the chip's inputs and make the display static. This could be used together with an additional signal to allow for more complex diagnostics and debugging.

The function of the '573 as a transparent latch can be described in a few words. When the latch-enable pin 11 is held at a logic 1 or High, the 8 outputs of the chip directly follow the logic state of the corresponding inputs. Actually the logic inside the chip interprets the voltage on the input pins (2-9) according to its own supply voltage and the logic behavior of its technology (AC, HC, HCT,...) and sets the corresponding output to the same value. When the latch-enable pin 11 is set to 0 or Low, the previous state of the outputs is locked, Now the inputs can change without affecting the outputs. A logic 1 or High on the output-enable pin disables the outputs.

The circuit is quite simple: The 8 bit inputs of the '573 are connected to the data signals to be monitored, the latch-enable pin is held at High-level by a 33kΩ pull-up resistor, but can be externally overwritten by a logic Low to latch the current state. Since I want to have an LED indication (remember that's the idea of the project) I connected the output-enable input directly to GND.

Step 3: Preparing the Circuit

Since I plan to use this device on a breadboard, the external connections will be by means of a pin-header connector. The same connector will also be used for the supply voltage and the optional latch-enable signal.

Attached you will find a 1:1 PDF of the circuit board I designed in Eagle, as well as the Eagle-files. As described above I did the layout using SMD components - apart from the pin-header.

I produced the first batch of the circuit boards using the toner-transfer technique - already extensively described here on Instructables, e.g. PCB making guide. Based on my own experience and the tip from my students, the glossy photo paper available at the Swedish chain Biltema works best.

Because it is quite a small board I could fit 28 boards on a single A4 sheet of photo paper. The first batch was manufactured on a piece of circuit board big enough to fit 8 individual boards. The etching went well and I separated the individual boards afterwards. On each board I then have to drill the 13 holes for the pin-header - with my illuminated drill stand.

Step 4: Building the Circuit

After having drilled the holes for the pin-header, it was time to pick up the parts for the complete device. Since I had to do the soldering by hand for now, I started by plating each of the right-hand side pads for the LEDs with tin using the soldering iron.

The next step is to put one LED after the other onto the board, pressing it down while heating up the tin on the pad so that it flows around and under the contact surface of the 1206 package. Of course you should make sure you put the LEDs in the correct direction into the circuit, i.e. with the cathode facing to the common GND connection.

After all LEDs were in place I did the same for the eight 330Ω resistors and the 33kΩ resistor.

In order to solder the TSSOP20 package of the chip onto the board you should start by placing some tin onto opposite corners of the footprint. Then you press down the chip onto the board while heating up these two pins sequentially. Then you go from one of the other pins to the next and solder each pin to its pad. For this you press the pin down onto the pad with the tip of your soldering iron and once pin and pad are hot enough you add a small amount of solder.

Step 5: Correcting the Mistake

Taking all those photos for this instructable I made two mistakes while soldering the devices onto the board. First I forgot to attach one side of all the 330Ω resistors, which I normally would have done before soldering the chip and the pin-header. But this was not the worst thing.

Before I started soldering, I checked in which direction I had to solder in the LEDs. The cathodes of these LEDs is marked with a small green dot on the top of the 1206 package. These dots should of course point to the common GND connection of all LEDs. Well, putting it short, they didn't in the end, none of them.

So I had to desolder all LEDs, turn them around 180 degrees and solder them again onto the board.

Finally everything was in place, I tested the circuit and it works. Now I am waiting for the ordered parts for the next 10 boards.

Comments

author
Onilu'A (author)2015-07-31

Interesting setup, I do some questions.
Using a pull up configuration does that mean the enable is normally high for the design. Secondly what are the effects of using analogue ground, why did you not use a digital ground.

author
uwezi (author)Onilu'A2015-08-01

Yes, the pull-up resistor makes sure that pin C1 is at a stable High when nothing is connected, to make it easier to use this breakout board. If you do not want to change the state of C1, then you don't need to connect anything to this pin on the breakout board. For all standard logic circuits an open, not-connected input is normally seen as a High already, however, CMOS-circuits with their high input impedances are prone to catch noise from the surroundings, which can trigger unwanted behaviors when left unconnected.

About the ground - there is only one ground connection on the whole breakout board. Whether you connect this to an "analog" or "digital" ground in your circuit does not matter for the LEDs and this circuit, but it might (and probably would) introduce unwanted noise in the rest of the circuit if you connect it to a dedicated "analog" ground.

Ground is a term for the reference potential in a circuit. All Grounds in a circuit should be at the same potential, whether used for analog or digital circuits. A Ground connected to digital parts does often show much higher noise because of current fluctuations when the digital gates switch state. Therefore an "analog" ground is often equipped with series inductors and additional bypass capacitors to keep it quiet. Otherwise there is no difference between the two.

author
Onilu'A (author)uwezi2015-08-03

Hi,

Thank you for the response. I have tried implementation using three IC, but used a pull down resistor on the latch enable to keep normally low. But my design does not behave well, I use 47k ohm resistors across the data inputs and as the pull down. Please any insight would be appreciated. I don't mind sending the pcb design.

author
uwezi (author)Onilu'A2015-08-04

Why do you want to pull-down the data inputs? And what do you mean when you say that "your design does not behave well"?

author
Onilu'A (author)uwezi2015-08-04

I used a pull down to keep always low.
As regards the design, the latches do not respond with regards to the input.

author
uwezi (author)Onilu'A2015-08-04

Did you have a look at the datasheet?

http://www.ti.com/lit/ds/symlink/sn74ac573.pdf

In order to get the latches into transparent operation, i.e. the LEDs to follow the inputs, you need to keep OE low and LE high.

author
Onilu'A (author)uwezi2015-08-04

The reason I kept LE low, is to control the outputs of each of the IC. That way I determine the outputs of each of the IC. Am using 3 of the IC, which all share common data inputs but different LE controls.

author
uwezi (author)Onilu'A2015-08-04

...but the data is only latched into the chip when LE is high. So I really don't understand your problem...

author
Onilu'A (author)uwezi2015-08-04

I do apologies if I haven't been clear enough. The output states change from an IC, when another IC changes states. They do not respond independently of individual latch control.

author
uwezi (author)Onilu'A2015-08-04

...when a chip in your circuit is not selected: do you keep the LE actively low or is it kept low by the pull-down resistor only?
Also: my design does not include a bypass capacitor for the power supply lines - if you have several CMOS chips close together on the same power lines you should give each of them at least 100nF between Vcc and Gnd. Especially when you are also switching several mA of current through the LEDs from the same supply.

author
Onilu'A (author)uwezi2015-08-04

when the chip isnt selected LE is actively low. I am making use of a single bypass capacitor, i would implement individual bypass capacitors on the ICs. hopefully would do the trick.

Would keep you posted thank you for the Insight.

Keeping LE actively low, is that wise

author
uwezi (author)Onilu'A2015-08-04

Keeping LE actively low is wise - a higher impedance method through a too large resistor could catch interfering noise.

Please send me your circuit diagram, I don't think we get anywhere without me knowing exactly what you have built. uwe.zimmermann-at-sciencetronics-dot-com

author
pfred2 (author)2014-02-01

Looks good. I'd rather drill holes than deal with SMT parts though.

author
uwezi (author)pfred22014-02-03

Normally I'd completely agree, but when it comes to 10 of these boards and when you have access to a reflow oven... then it's just placing the devices onto the solder paste, put into the oven and bake for a couple of minutes. For this prototype I was not able to use the oven though...

But: I actually plan to also put a layout for a through-hole version online, possibly later this week.

author
uwezi (author)uwezi2014-02-08

Here comes the layout for the same circuit in though-the-hole configuration on a stripboard with 3-hole copper islands...

20140208_8led_3pin.png

About This Instructable

2,216views

31favorites

License:

Bio: Native German living in Sweden
More by uwezi:A Curtain of LightAVR ISP breadboard adapterMagnetic kitchen towel hanger
Add instructable to: