Breadboard circuit to PCB Board Problems ( bitshift register, mosfet )

Dear everybody,

I have a problem regarding my circuit. I have basically taken the bitshift logic from this tutorial ( http://arduino.cc/en/tutorial/ShiftOut#.Uw3Ll_l5N8E ) but except lighting up LED's I'm triggering N-Channel MOSFETs ( https://www.sparkfun.com/products/10213 ). With those I'm controlling the single elements of 12V seven-segments displays ( 7-Segment Display - 6.5" (Red) - COM-08530 - SparkFun Electronics ).

Okay, the logic I developed seemed to work, since I tested it all on breadboards. Now, that I was trying to move the circuit to a PCB board, strange things happen. Note the PCB image I attached to this post, whenever I attach more than one of those boards after each other, I'm losing voltage. Especially if many MOSFET's of each module are enabled.

The PCB board is designed in a way I can plug as many of them after each other as necessary. The 5V+/-, the 12V+/- and the latch-/clock-/data-pins are all plugged into a board on the left side, control the bitshift register ( https://www.sparkfun.com/products/733 ) and end up on the right side, where they can be attached to another board of exact the same construction.

What I'm quiete sure of, that I haven't done any mistakes at is, soldering ( looks all nice, no wrong connections etc ), the connection between the individual boards are done in the way you can see here: https://cdn.sparkfun.com//assets/parts/5/4/2/4/10650-01b.jpg ( no overlapping cables, the crimp connectors look solid ( Ribbon Crimp Connector - 10-pin (2x5, Female) - PRT-10650 - SparkFun Electronics ).

What I would like to know, am I missing anything obvious? Should I somehow pull up the voltage on each board again? If yes, how?

What current levels are you using? The higher the current the wider the PCB traces
you need (copper is not a superconductor, it has real resistance). For high current
circuitry you normally distribute power via thick wires to every board, and keep high
current traces short and fat (or use power plane / ground plane).

Standard PCB use 35um thick copper ("1 oz"), but you can get boards made with
thicker copper for power circutry.

Hi, just to clarify, the PCB works as a single unit, but when you add another to it the supply voltage drops.

If so, then check how much current each PCB will draw. As MarkT suggests you may need a higher current rated power supply.
Please supply a circuit diagram of the PCB and how you connect to the 7segment display.
The PCB does not show all tracks and components, What is the 16pin chip and which track is the gnd track and does it go from the left connector to the right connector?
Also I don't see any gate resistors.

Tom..... :slight_smile:

hey,

my power supply is running at 4A and 12V. When I attach three of those boards after each other, I get the same current and voltage at the last board. So the power for the seven segment displays is consistent and works.

The 5V control signal from the arduino seems to drop, even though the 12V 4A signal goes through the boards without being reduced. And all wires on the board got the same thickness. After some measurements, it seems like there is some sort of instability at the bitshift output pins, since the voltage is sometimes too high/too low to trigger the MOSFETs in the correct way.

Hi, you can run too much off the 5V pin of the arduino, you will have to have a separate 5V for the bit shift registers.
As their supply volts drops through consecutive boards being added their performance becomes erratic.

I would advise 470 ohm resistors in series with the gate of each MOSFET, and some bypassing capacitors on each board to help with suppressing switching noise from each board.

I'd say at least 10uF across the 12V to gnd and 10uF across 5V to gnd.
Also 0.1uF across 12V to gnd and 0.1uF across 5V to gnd.

Tom...... :slight_smile:

Hi,

I'm powering all the bitshift registers from one single 5V power supply from the arduino(check the pcb layout ). And it doesn't change anything when powering the bitshift registers from another external 5V source.

What I've realized that some of the MOSFETs switch at various voltages. So some open at 1.8V even, so I guess I need some clear 0 or 5V control signals to end up at the mosfets. You've said I should use 470ohm resistors at each MOSFET gate- is this some kind of pull-down/up-resistor? What purpose does it have? Using bypass capacitors in order to suppress switching noise on each board sounds a lot like what I might need. Can you hook me up with some resource about where I should include my bypass capacitor to my circuit, please.

Also I've tried and added a 1uF capacitor to the 5V gnd. Which unfortunately didn't change anything.

Cheers,
M

The resistor is in series with the output of the arduino and the gate of the FET, the gate of the FET is capacitive and although not important at low frequencies can be at high freq, the 470R just helps with initial current limit.

Bypassing with 47uF and 0.1 uF caps as close as possible to the IC power pins is highly recommended.

http://www.seattlerobotics.org/encoder/jun97/basics.html

Tom....... :slight_smile: