sch parts with multi-function pins - Page 1
Forum section: electronics / general

author: AlfBaz
author_rank: Super Contributor
timestamp: December 30, 2012, 01:04:11 am
content: Microcontrollers in particular can have pins that have many, many functionsWhen creating the schematic symbol for it do you include all the functions/names for each pin or just use the function/name thats going to be used in that particular project. If its the latter then what about re-using that part in another project.Wanted to see what other people do in this situation

author: McMonster
author_rank: Frequent Contributor
timestamp: December 30, 2012, 03:04:11 am
content: For simpler micros, like virtually all AVRs, list of pin functions is short enough to include them all and it makes sense then. But if the list is bigger it would be too ugly. It is usually a pain in the ass to draw or modify parts, libraries should be reusable, so I don't think modyfing the part for each project is a good idea.Having a quick look at the schematic to see what's available on a micro is convenient, but it is usually the center part in any design worth enough attention by itself to keep the datasheet opened in background.

author: JoannaK
author_rank: Frequent Contributor
timestamp: December 30, 2012, 03:56:02 am
content: I usually give short IO-port name + couple most common uses. Like PC3/TX/AD3 is still acceptable, but if there are nearly 10 of those it becomes simply too difficult to fit them all at the symbol.

author: AlfBaz
author_rank: Super Contributor
timestamp: December 30, 2012, 09:16:16 am
content: Yeah I guess, if the pin name fits, you just have to bite the bullet and just put up with it.It probably pays to have the entire functionality in the pin name on each pin so that you know when fault finding, or even debugging, what all the possible uses of the pin are.It just looks very messy and confusing. Maybe a good feature request would be the ability to map the various function types available for each pin to the schematic display.Another problem is grouping the pins according to functionality, again a PITA as grouping them this way doesn't always work out depending on what they're being used for.What I might do is what I do with fpga's where the name is usually short and in context of the circuit, functionally non-descript, is use net labels as local ports on all the wires leaving the symbol denoting the selected function.Attached is a symbol I just created for convolution reference

author: AndyC_772
author_rank: Super Contributor
timestamp: December 30, 2012, 09:51:31 am
content: That looks very like my symbol for that deviceI always include most, if not all, possible functions for each pin on the symbol. As you rightly say, the whole point of a library is that it's reusable, and having all the functions shown helps when debugging too.I'll add another important reason too: maintenance. More often than not, the changes between revs A and B of a design aren't just bug fixes, they're changes to the function of the board too. Want to add, say, voltage or temperature monitoring to a design? No problem, provided you know which of the digital I/O pins available can and can't be used as analogue inputs instead.When I draw the symbol, I do tend to arrange the names such that at least one function lines up and looks right: for example, on the left side of the symbol I might have names like:PE0/AN2/IRQPE1/SCL/ECCP1PE2PE3/AN3...and then on the right I'll rearrange them:AN4/NMI/PE4AN5/PE5MISO/SDA/IRQ/PE6

author: David_AVD
author_rank: Super Contributor
timestamp: December 30, 2012, 12:14:40 pm
content: What happens when you unlock the pins and move them around?

author: AlfBaz
author_rank: Super Contributor
timestamp: December 30, 2012, 02:49:38 pm
content: Quote from: David_AVD on December 30, 2012, 12:14:40 pmI think I tried that once, I cant remember having any success (AD10).Further more it becomes problematic as I like to update costs, suppliers etc in the library and then sync components in the schematic to the library. This would also restore the component back to its original form. I suppose I could look into syncing to an external database for info updates but maintaining the DB would be a PITA