4 ms·
One thing that's a pain I've encountered when designing my own PCBs is having to figure out, route, add and source bypass capacitors. Each chips you use needs t
by polishdude20 5y ago
One thing that's a pain I've encountered when designing my own PCBs is having to figure out, route, add and source bypass capacitors. Each chips you use needs them nearby, usually the datasheet specifies the type and capacitance. It would be nice to have either community premade functional blocks that include these as well as links to digikey for sourcing.
Things get a bit more complicated when you start using switching power supplies and you need to include a specific inductor, multiple caps and resistors all arranged in an optimal way specified by the datasheet. Those would be awesome to have functional PCB blocks for.
- analog31 5y agoSomething I've noticed is that the demand for "vendor supplied libraries" has only slowly trickled down from the microcontroller (MCU) world. I've been playing with MCU's for going on 3 decades now. At first, you were lucky if an expensive commercial assembler supported your target chip. Then some vendors came out with free assemblers. It quickly got to the point where a MCU stood little chance in the market if the vendor didn't serve up a toolchain for it, starting with assembly, but quickly demanding C. Then, on top of just the C compiler, folks started to demand libraries to support the chip specific hardware modules. Going one step further, today I wouldn't think of using a MCU that was not available on a development board (no BGA soldering for me) and supported by Arduino. I think PCB designers will come up to speed on this, but it will take time. There are some not insignificant issues. One is that your favorite distributor runs out of the component that's spec'd in the library layout, and you have to scramble. I have a tiny side business making an electronic gadget, and I've had to make multiple substitutions to keep my business running. Bless you, Octopart. ;-)
- deleted 5y ago[deleted]
- polishdude20 5y agoI wonder if there some way of specifying the important properties of the part, say the voltage rating, capacitance, etc of a capacitor, and have it choose the best capacitor from digikey or if sold out, the next best and do that all automatically. You can even specify a marking in the PCB like C6 and have the digikey BOM reference that so your little parts bag will have that printed when it arrives.
- picture 5y agoThat sounds like an absolute logistical nightmare. Instead of trying to match voltage and capacitance and dielectric (ESR & tempco), why not match by purpose? And furthermore, it's the designer's job to try to use as few variants of components as possible. In general, 1 uF 25 V X5R in 0402 will work wonders for general decoupling (don't use many different values in parallel) and there's only so many other uses of capacitors to fulfill. If you need a particular 3 pF capacitor for RF matching or 12 pF capacitor for resonator loading, anything else likely won't be a good fit.
- Brian_K_White 5y agoDigikey itself does a bit of this. So does Mouser, and it's a main feature of octopart. Go to any part and there is both a short list of aka or substitute part numbers and a few links to likely alternatives. The links aren't always good sibstitutions. Sometimes they are, but sometimes they are only very general alternatives where it does the same nominal job but you'd have to change your design to use the other part, sometimes they are merely related or associated in any sort of way like on Amazon. Maybe it's the mate to the connector you're looking at or the pin that fits in a housing, maybe it's an alternative, maybe it's just frequently ordered together for who knows what reason. But if there's an aka list, that will be mostly a good drop-in substitution list. Go for say a max3232-alike from anyone, and the aka list will have several good drop-in replacements from different manufacturers with totally different looking part numbers. You still have to vet them yourself because some might be the wrong voltage or package. And you definitely have to check whatever fine details you care about like if you're trying to go for lowest possible power usage or highest possible temperature range, the substitutions will include everything not just the ones with the same lowest possible idle current that's a few uA less than usual like the one you had picked out. They obviously have an extensive db in house with columns for all kinds of propeties, and some code to make meaningful matches and substitutions where there are sensible subsets of properties being considered vs ignored. I think it would be totally abusive to their site to write something that scrapes it, or octopart etc. There would have to be a community built db like that. The code for finding intelligent matches probably wouldn't be too crazy. A list of which properties are significant for a given part would just be part of the data on that part, and then it's pretty straight query on that. A ui in a find-subs tool could even let you select/unselect properties for consideration, since what constitutes "significant" changes for each job. Sometimes even different package sizes are ok with you because for a lot of parts it's possible to draw a single footprint that can accomodate multiple different versions of the part. But even with something like this, most jobs are doable an almost infinite number of ways using whatever parts you have access to. If you don't have one resistor anywhere in the world, you can use 2 others in parrallel, etc. The same job got done with no 1:1 substitution at all. To be really useful there would need to be something quite a bit more involved. Where you would have to feed in your whole schematic so the the tool would know that this resistor isn't just a resistor, but the bias input to a transistor, and if you need change the transistor and you can't find a simple exact match you can find some other transistor AND a different bias input together to produce the same outward effect as the previous 2-part block. Let's just say "non-trivial"
- m-hilgendorf 5y agoWe've actually got some decent (imho) support for this in our standard library, OCDB (1). The function call is a little deceivingly simple, it queries a parts database for one that fits the constraints like value/rating/stock and the part/footprint are parameterized by global design variables/rules under the hood. (1) https://github.com/JITx-Inc/open-components-database/blob/1f5a11743f5a07965880b6c5000b130ed3a95c92/utils/generic-components.stanza#L791 https://github.com/JITx-Inc/open-components-database/blob/1f...
- deleted 5y ago[deleted]
- digitallyfree 5y agoMany IC manufacturers already have reference PCB designs (or they have them for their EVMs) that you can look at for guidance. Personally I would rather adapt that for my design than modify a pre-made section in the EDA tools. I've also found that the choices made in the reference PCB may not always be the best choice for your design. For example the reference may have a 802 cap but you'd rather use a 603. Same for routing, the reference may be a 2-layer board but you're doing a 4-layer. You may have other ICs that may be able to share certain components. And so on. Part stock and pricing also fluctuates quite often, so a manufacturer-provided BOM (which BTW exists for some EVMs) may not always work assuming that those are the exact components you want. I haven't designed a PCB in a while but from when I did it the reasons above were why people weren't really keen on pre-made "libraries" of building blocks.
- michaelt 5y agoRedrawing designs yourself is indeed commonplace in the electronics industry, but coming from the software world it's always struck me as a mix of weak tooling and outdated conventions, rather than something inherent to the industry. After all, why shouldn't a reference design be defined in a parametric way? Your switch-mode power supply might need a class-X value-Y precision-Z voltage-A ESR-B at frequency-C capacitor, while my decoupling capacitor just needs to be >3.3v 100nF and doesn't mind if you use one 5x larger. Personally I've made innumerable designs where, at the schematic stage, I've copy-pasted a microcontroller and a crystal and capacitors and programming header and reset pull-up. It's a common-sense way to avoid human error, and a time saver too. The design reuse is happening - the tools just haven't caught up.
- eupfhoria 5y ago
- techdragon 5y agoThe tools have had over ten years (if not twenty) of a growing maker movement bringing new people without training in EDA tools who would benefit from this kind of reuse… and it hasn’t caught up. There seems to be a perception that you should be able to do these basic things, like copying a circuit design into your EDA tool, and understanding which basic components to pick like all the little capacitors and pull up/down resistors. This perception prevents people from viewing it as a worthwhile feature.
- flaviut 5y agoI'm not sure what problems you're running into with decoupling capacitors. I find this to be the easiest part of my designs. If the datasheet has specific requirements, do that. Otherwise, 100n capacitors on each power pin. 50V 100n capacitors can be found all the way down 0402s, and there's no sense in using anything else. Dielectric doesn't matter much for decoupling. Increased cost due to an additional BOM item is way higher than the fraction of a cent of a cheaper capacitor.