My first PCB: A TLC5940 Interface Board (PWM LED Control)

EDIT: Just realized that there is a dedicated PCB design subforum. Could a mod please move this thread?

Hi, I want to build a TLC5940 interface board so that I can control 32 LEDs independently via PWM using 5 signal wires.

I have read the TLC5940 datasheet and plan to emulate the circuit pictured in the TLC5940 Arduino playground page: http://www.arduino.cc/playground/Learning/TLC5940

Would any of you experienced users mind checking out my Eagle schematic and layout to see if I’m on the right track?

I am currently relying on the autorouter to make most of the traces. One of the things I would like to learn how to do is modify the autoroute results. I have tried ripping up the paths that I want to remake, but whenever I check my handmade paths against the DRC checker, it throws tons of “width” errors for each trace that I’ve made on my own. Does anyone know how to solve this?

looking at your board.jpg, I see some things I would comment on.

near pixel 334, 149 traces look too close together.

near pixel 381, 351 trace close to pad.

near pixel 360. 420 trace close to pad.

near pixel 380. 506 spacing could be easily increased.

These stood out to me. There may well be others, but these could serve as examples of things to look for.

I would increase spacing between the geometric pour and the traces, myself. I like 0.020 spacing for that, but less is OK. It’s a matter of preference.

Generally things look pretty as far as I can see, but I like to use larger spacing myself if I have room for it.

I did not check your schematic, but nothing stood out for me there.

Thanks for the reply, here is an update

I see that you still have several 90 degree bends in there. It’s not advisable to use 90 degree bends because acid from the etching can get trapped, but to use 45 degree bends instead. I see that you have changed a lot of the sharp bends from the first board to the next, but there’s still some left.

There’s a few tracks between pins in your big connector that could be centered a bit better between the pins. You also have a few tracks where the pin isn’t on your routing grid, so your track isn’t going straight in on the pin, e.g. pin 19 and 21 on the top IC and 19 and 20 on the bottom IC. Other than that it looks good.

Stig

Thanks for those suggestions, here is the update based on what you said.

I’ve attached the control board and LED board now :wink:

Nice!

You have an airwire on pin 19 on the righthand TLC and some 90 degree bends on the bottom layer of your LED board. I’m not even going to pretend I’m an expert of laying out PCBs, but if it was me, I think I would have opened up the cluster of vias you have on your LED board a little, not cram them together when it’s not necessary.

Stig

Ah, thanks I didn’t see those. That cluster of vias on the LED board is the product of autoroute. That group of connections they interface cross over a lot so I was lazy and let the autorouter do the work:)… I should be able to change the via-via minimum clearance and get a better result though right?

Also there has been one thing that is bothering me about Eagle: Suppose there is an airwire connecting 2 component pads. Is there a way to get the manual route wire to start somewhere else along that signal net? I have been “back tracing” the wire to the point I want it to branch off from the net, but it seems like there must be a better way.

gastro54:
I should be able to change the via-via minimum clearance and get a better result though right?

Don't know. I don't use the autorouter. I haven't made any really complex boards yet, so I've just manually routed them. You should be able to move vias and tracks laid down by the auto-router by using the Move command, just like a regular board.

gastro54:
Also there has been one thing that is bothering me about Eagle: Suppose there is an airwire connecting 2 component pads. Is there a way to get the manual route wire to start somewhere else along that signal net? I have been “back tracing” the wire to the point I want it to branch off from the net, but it seems like there must be a better way.

You can start from anywhere on a net by holding down CTRL and click on the airwire you want to route and it will start from the cursor. I could be wrong about just that and what I remember is that you can hold down CTRL and click anywhere on an already routed track to continue routing an airwire from that position. I don't have Eagle installed on this machine so I can't easily check. One thing you can do if you have problem routing a track which doesn't end on the grid, is to end it at a suitable place before the pad and then start to route the remaining track from the pad and end on the already routed track.

If you haven’t already I suggest you read through the tutorial and manual. Doing this helped me understand a lot of the unintuitive ways Eagle does things.

Stig

Nice. Have you verified that it works?

Any chance you would be willing to share the eagle-file?

Thanks,

Martin

While sharing the eagle file, give the version details. Some higher versions are not compatible with lower version files. These details will be useful for anyone to verify design files.

It would be a miracle if they still have the files 3 years later… Hell, I have deleted files that were only a few months old…