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 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.
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.
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.
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.