Discussion:
Make dual channel FET library
(too old to reply)
Peter Newman
2019-02-13 00:54:46 UTC
Permalink
I am trying to make a lib for a dual channel FET the FDMA1024NZ (https://au.element14.com/on-semiconductor/fdma1024nz/mosfet-nn-ch-20v-microfet-2x2/dp/2101471?rpsku=rel1:1813537&isexcsku=falsehttp://). I looked at similar libs and saw that you make two symbols in the symbol editor and name them A and B.

I did this and connected the relevant pins to the pads of the package OK. 

The problem I have is that when I import the symbol into a schematic it shows the symbol for both channels locked as a group whereas the lib that I used as an "template" only imports one channel's symbol at a time if that makes sense :)

This makes is very messy to connect both channels within a schematic and is obviously not the correct way to do it. I found only one other post (/message/194012/l/re-multiple-gate-trouble-when-creating-part-in-library#194012http:)that was similar to this problem but unfortunately it does not help me does mainly to my lack of understanding.

I had to attach my lib as a txt file due to restrictions on file upload types.

--
To view any images and attachments in this post, visit:
https://www.element14.com/community/message/271538

Attachments:
FDMA1024NZ.txt.zip
Markus Faust
2019-02-13 10:17:56 UTC
Permalink
Hello Peter,
Post by Peter Newman
I am trying to make a lib for a dual channel FET the FDMA1024NZ
[...]. I looked at similar libs and saw that you make two symbols in
the symbol editor and name them A and B.
That's wrong already. Just create (or re-use) a symbol with a single
MOSFET and ADD two instances of it in the device(!) editor. Then NAME
them A and B or whatever you like.
Set Addlevel to "next" (or "always", as you like).
You might want to change Swaplevel to 1 or so.
See also HELP ADD.

HTH
Markus
Joern Paschedag
2019-02-13 10:41:33 UTC
Permalink
Post by Peter Newman
I am trying to make a lib for a dual channel FET the FDMA1024NZ (https://au.element14.com/on-semiconductor/fdma1024nz/mosfet-nn-ch-20v-microfet-2x2/dp/2101471?rpsku=rel1:1813537&isexcsku=falsehttp://). I looked at similar libs and saw that you make two symbols in the symbol editor and name them A and B.
I did this and connected the relevant pins to the pads of the package OK.
The problem I have is that when I import the symbol into a schematic it shows the symbol for both channels locked as a group whereas the lib that I used as an "template" only imports one channel's symbol at a time if that makes sense :)
This makes is very messy to connect both channels within a schematic and is obviously not the correct way to do it. I found only one other post (/message/194012/l/re-multiple-gate-trouble-when-creating-part-in-library#194012http:)that was similar to this problem but unfortunately it does not help me does mainly to my lack of understanding.
I had to attach my lib as a txt file due to restrictions on file upload types.
--
https://www.element14.com/community/message/271538
FDMA1024NZ.txt.zip
No wonder. Your connection points in symbol are not on grid (100x100mil
crossing)
Without that you will not get connections to other devices/nets.
If you want to built your own device then use the existing symbols and
packages of existing libs.
In transistor-fet.lbr you find a symbol for an N-Fet to copy and put it
in your own lib.
If you don't like it you can modify it THERE.
Your transistor has its connections as IO-direction which is not
correct. Should be imho pas(sive).
If directions of devices are not correct one cannot use the ERC correctly.

For double devices it's imho best to set the addlevel "next", so the
transistors come separately, better if they are on different pages.

If one has more pins/pads with the same name use "@" to separate them
(goes for symbols and packages) like drain, ***@1, ***@2... or gnd,
***@1, ***@2, ***@3...

Help pin should give you more info, or just hit the F1 key ;-)
--
Mit freundlichen Grüßen / With best regards

Joern Paschedag
Peter Newman
2019-02-13 19:09:32 UTC
Permalink
Thank you for both your replies Markus and Joern. I will attend to the suggestions that I understand and read up on those I do not :)

I am thinking that my biggest mistake was adding two symbols to the symbol editor rather than adding two instances of it into the device editor ?  

I will redo the device after reading up on "Set Addlevel to "next" (or "always", as you like)"

Most of the other suggestions I understand so they will be done and if it is OK  I will re-post my lib once I think I have it done correctly.

--
To view any images and attachments in this post, visit:
https://www.element14.com/community/message/271655
Joern Paschedag
2019-02-14 08:07:42 UTC
Permalink
Post by Peter Newman
Thank you for both your replies Markus and Joern. I will attend to the suggestions that I understand and read up on those I do not :)
I am thinking that my biggest mistake was adding two symbols to the symbol editor rather than adding two instances of it into the device editor ?
I will redo the device after reading up on "Set Addlevel to "next" (or "always", as you like)"
Most of the other suggestions I understand so they will be done and if it is OK  I will re-post my lib once I think I have it done correctly.
--
https://www.element14.com/community/message/271655
One of the "important" rules is :copy and paste, meaning copy a similar
symbol, package, device into your OWN library and modify it there. Don't
change the original library.
Turn on the PIN layer if editing a symbol. It shows if the pin is on
grid (100mil) and the electrical direction ;-) of a pin (important for ERC).
For your double N-FET I would just grab the symbol out of the
transistor-fet.lbr and throw it 2 times into the device editor. You just
have to give different names like A and B or so. Then add (your) package
and connect as you did in the device connection list.
Imho the best thing to understand the add/swap- levels is to check other
libraries, like 7406, 6 inverters and why they come out one behind the
other and not in one piece.
Or op-amps, why the power symbol must be REQUESTed, or relays for MUST
and ALWAYS.

It's a good idea to show your result here because then it is much easier
to make/tell corrections.
--
Mit freundlichen Grüßen / With best regards

Joern Paschedag
Peter Newman
2019-02-14 11:40:43 UTC
Permalink
Thanks for sticking with me on this Joern I really appreciate all the help I have gotten on various forums.

I am hoping that this version looks a bit better than my first and I hope that I followed most of Markus' and your suggestions.

I copy / pasted and modified as necessary a Sparkfun Github library that I found earlier today and just made it into a single item library that I hope is OK now

--
To view any images and attachments in this post, visit:
https://www.element14.com/community/message/271692

Attachments:
FDMA1024NZ.lbr.zip
Joern Paschedag
2019-02-14 16:59:59 UTC
Permalink
Post by Peter Newman
Thanks for sticking with me on this Joern I really appreciate all the help I have gotten on various forums.
I am hoping that this version looks a bit better than my first and I hope that I followed most of Markus' and your suggestions.
I copy / pasted and modified as necessary a Sparkfun Github library that I found earlier today and just made it into a single item library that I hope is OK now
--
https://www.element14.com/community/message/271692
FDMA1024NZ.lbr.zip
That is almost perfect ;-)
The ALMOST is for a few personal things as I see them:

With a tiny script you make all layers visible (use separately in board
and device/symbol)
Set Used_Layers ALL;
DISPLAY all;
display

you will see a lot of layers which are not "official" and I would remove
them.
Usually (check other libs) the body of a package is drawn in layer
t_place, while t_docu is for documentation. (Help layer).

In device editor bottom right you see VALUE off / on. ON is for mass
ware like resistors which will be given individual values. For
Transistors one wants to know what type it is in the drawing,so set it
to OFF.
In OFF position the value (Name of the transistor) is printed out.

At least in device editor add a description. I usually copy the
important values from the datasheet in there. That is much faster to
access than the datasheet itself.

All this are suggestions. Try out what you like best. Don't trust
datasheets in general and also not those in forums etc. because mostly
they have as direction IO and so the ERC is worthless, or the physical
body is not correct. So verify before use!

Have fun with eagle. ;-)
--
Mit freundlichen Grüßen / With best regards

Joern Paschedag
Peter Newman
2019-02-14 20:23:14 UTC
Permalink
Thanks again Joern. I will attend to those things to complete the library. The biggest thing that I learned was about making / or editing one symbol but adding two instances of it to the symbol editor in the device editor so it was well worth it :)

--
To view any images and attachments in this post, visit:
https://www.element14.com/community/message/271699
Joern Paschedag
2019-02-15 06:37:46 UTC
Permalink
Post by Peter Newman
Thanks again Joern. I will attend to those things to complete the library. The biggest thing that I learned was about making / or editing one symbol but adding two instances of it to the symbol editor in the device editor so it was well worth it :)
--
https://www.element14.com/community/message/271699
You can draw a symbol as a sailing ship, name it an amplifier, as long
as the connections are on grid that is OK. ;-)
For the packages they are the real thing and the body must be very
precise not to talk about the smd pads. Fortunately there exist a MARK
which can be set to any grid position for reference measuring. While in
symbol the grid MUST be 100mil, in package editor you can set any grid
that helps you to finish your body of a device.

Plenty of packages are in ref-packages.lbr, but I recommend that as an
exercise you construct a package from a data sheet. Then copy the
package from the lib into your lib (don't place it) and move it over
your work. If you see no discrepancies you have done it.
Finally place approved libraries in your own library set.
--
Mit freundlichen Grüßen / With best regards

Joern Paschedag
Rob Pearce
2019-02-15 08:41:55 UTC
Permalink
I just wanted to add one small comment on Joern's excellent advice.
Post by Joern Paschedag
Usually (check other libs) the body of a package is drawn in layer
t_place, while t_docu is for documentation. (Help layer).
This is very nearly true. The tPlace layer is the one that usually gets
included in the PCB silk screen. It should not contain anything that
overlaps a pad or solder mask aperture. For a lot of packages (think SMD
resistors, for example) the outline of the body of the package cuts
across the pads.

What most (well constructed) libraries do here is to draw those parts of
the body that can be silk printed in the tPlace layer, and those parts
that run across pads in tDocu. Then it's very easy to produce the
correct silk screen Gerber from the usual layers (tPlace+tNames) and
also get a good part placement diagram by adding tDocu.

Cheers,
Rob
Peter Newman
2019-02-16 00:58:02 UTC
Permalink
Thanks for the additions tips guys it means a lot to get help and encouragement from you "old hands" :)

--
To view any images and attachments in this post, visit:
https://www.element14.com/community/message/271732

Loading...