Critic first PCB design - Page 1
Forum section: electronics / beginners

author: moav
author_rank: Newbie
timestamp: July 14, 2015, 07:01:15 pm
content: Hello everyoneAmpHour listener here, fan of the eevblog and the eevblog favicon.I'm hoping to get some harsh criticism (or validation) on my first PCB design below.What is it?A giant daisy chainable shift register array to switch power 32 outputs on-or-off, no PWM yet.Likely to be driven by a RaspberryPi or anything else with GPIO and a network interface.I don't know how fast it'll go, but it seemed to clock fine on noisey breadboard @ 1 MhzIntended applicationis architectural lighting, requiring constant voltage and between 40mA and ~250mA per output, looking at a max of 3.2A total.Why not a constant current LED driver? The wiring of the LED lights themselves is out of my hands, some are parallel combinations, some require more current, some less.Design4 x 74HC595 shift registers per board (32 outputs)N-type Mosfet + pull-down resistor per shift register output pin (to switch larger currents than the shift-register-pin can handle)Each output has a 2 pin (+/-) output on a screw terminal2 x RJ-45 connectors, one for input and one for ouputINPUT RJ-45 connector has 3 lines (Clock, Data-IN, Latch) + 1 GND, similarly on the OUTPUT but with Data-Out insteadDesign Decisions and QuestionsWill this work?RJ-45: A common connector and easy to get in various lengths in a heartbeat. It also offers 4 pairs of wires in the event that the distances between boards grow and I require differential signalling. Would RS-485 transceivers drop in easily? are there any special considerations I need to make? I'm losing a potential pair to GND, is this necessary?I kind of just did the layout, do you have suggestions on how to improve? Are there conventions I'm missing?I've attached a screenshot of the PCB, a snippet of the schema, and the full KiCad project for the really kind.Cheers!

author: miceuz
author_rank: Frequent Contributor
timestamp: July 14, 2015, 08:22:53 pm
content: I'd go for RS-485 just because it's easy, cheap and works, don't forget to add terminator resistor. Then I'd probably add an option to disconnect the ground from RS-485 cable - there are various opinions on this, might be beneficial to have this option. If not RS-485, I'd add a buffer on inputs and outputs of SPI lines. It could be a good idea to add a source termination resistor on the output.Regarding PCB - I'd use traces as thick as I can get away with - no point in using thin ones when you have space left. Make sure you connect your fills to GND.

author: con-f-use
author_rank: Unknown
timestamp: July 14, 2015, 08:46:19 pm
content: - Is R33 missing a via?- You could do away with half a bazillion transistors and resistors, if you used a fewULN2803(less to drill, less to solder with an iron as opposed to hot air and past and probably even cheaper as they go for 9 cent on aliexpress - if you are being fancy:tpic6a595).- A few TVS diodes on the data and power lines probably wouldn't hurt.- Give the shift registers each a 100nF decoupling cap between VCC and GND and the whole board a 10uF.- The tracks from your MOSFETs' respective drains to the output connectors are a bit on the weak side.- Do you really want the default output state to be high (gate pull-up resistor) instead of low? Image someone shorts them or one of the shift registers fails...- Mounting holes for screws, you don't want your board flapping around in the breeze and you don't want to tape it down.Also interesting for you:

author: Ian.M
author_rank: Super Contributor
timestamp: July 14, 2015, 09:01:40 pm
content: Look at the TPIC6A595 chip: 8 bit SIPO shift register and 50V open drain power output stage with integrated current limiting all in the same chip!

author: LukeW
author_rank: Frequent Contributor
timestamp: July 15, 2015, 01:08:59 am
content: Maybe make a "dummy" daughterboard that passes the control lines straight through from the 8p8c jack, and also add power and ground to the footprint for this add-on board.This will make it easy to give you the option to neatly move to RS-485 in future without cutting tracks and hacking things.

author: moav
author_rank: Newbie
timestamp: July 20, 2015, 09:06:00 pm
content: Quote from: miceuz on July 14, 2015, 08:22:53 pmFattened the traces, I'll be sure to read up thoroughly (here and elsewhere) on RS-485 before actually integrating it, thanks for the heads up on termination.Quote from: con-f-use on July 14, 2015, 08:46:19 pmSharp eye! it was missing a via, apparently the net wasn't even connectedULN2803 - took a look, bought a couple for my inventory. Accommodating the voltage drop on the BJTs and explaining that to users proved too much.tpic6a595 - I'll order a sample and trial it out for the next revisionAdded the capsFattened the Mosfet tracesA fix for the default high is planned for the revision, Cat 5 only offers 4 pairs and I'm currently on the fence between adding a uC to the boards, otherwise I'll do something with discrete logic and the latch line.Mounting holes addedMike is the man! Great video.Quote from: LukeW on July 15, 2015, 01:08:59 amMarginal cost for adding the transceivers is next to nothing, and the space is there on the board so I'll put them in anyway.Thank you all for the feedbackAttached is a revision for all who are interested.

author: commie
author_rank: Frequent Contributor
timestamp: July 20, 2015, 09:43:44 pm
content: Quote from: miceuz on July 14, 2015, 08:22:53 pmYeah, well said, I do the same particularly if you etch your own boards aswell where tolerances are lucky dip.

author: kalhana
author_rank: Contributor
timestamp: July 20, 2015, 09:56:30 pm
content: Few initial observations.1) I don't see any bypass capacitors on the chips. Place 0.1uF caps close to the ICs and scatter some 10uF caps.2) The track widths are really thin (for the main current carrying tracks). Since you have plenty of space, you'd want to maximise the current handing capacity of the tracks.3) I would fill the empty areas with ground pour

author: con-f-use
author_rank: Unknown
timestamp: July 21, 2015, 08:22:56 am
content: Quote from: moav on July 20, 2015, 09:06:00 pmWhy is the voltage drop so important, if you just want to drive LEDs at 40mA?

author: moav
author_rank: Newbie
timestamp: July 21, 2015, 03:03:45 pm
content: Quote from: con-f-use on July 21, 2015, 08:22:56 amThe actual wiring of the LED strips is out of my hands, some have built in drivers others have a current limiting resistors, otherwise I would have taken the ULN2803 in a hearbeat.I expect ~GND and +VCC on the terminals. Rds(on) is between 100 and 200 mOhms for the AO3422 I intend to use.RE: the pour is there in the KiCad project, missing from the screenshot.