Author Topic: Pin not driven when connected through inductor  (Read 4914 times)

0 Members and 1 Guest are viewing this topic.

Offline DeepakTopic starter

  • Regular Contributor
  • *
  • Posts: 76
  • Country: us
Pin not driven when connected through inductor
« on: February 08, 2019, 08:15:57 pm »
I'm having some trouble understanding this error in KiCad ERC:



I've connected it up according to the SAML21 datasheet (p41), and when I remove the inductor and connect a straight wire from pin 55 to pin 53 the warning disappears. :-//
 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 11248
  • Country: us
    • Personal site
Re: Pin not driven when connected through inductor
« Reply #1 on: February 08, 2019, 09:18:28 pm »
This is because you are connecting a power pin to only passive pins. Your configuration is fine, so you can safely suppress or ignore the message.

KiCad does not take into account that a power pin may be driven from an internal switching power regulator.


Although this is strange, since driving a power pin though an inductor is a common practice.

Even VDDANA requires a series inductor if you want good analog performance. And I expect it to generate similar error message. Try and see if this happens.
« Last Edit: February 08, 2019, 09:21:26 pm by ataradov »
Alex
 
The following users thanked this post: Deepak

Offline DeepakTopic starter

  • Regular Contributor
  • *
  • Posts: 76
  • Country: us
Re: Pin not driven when connected through inductor
« Reply #2 on: February 08, 2019, 09:53:16 pm »
You're right, adding another inductor in the VDDANA path generated the same error. Manually adding a PWR_FLAG before the passive component obviously solves the problem.

Maybe I'm overestimating what the ERC should do - it seems like the behavior is to only check to the nearest node, and not to create a full tree then check all leaf nodes. Seems silly to not treat an inductor like a wire, but at least it makes some sense.
 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 11248
  • Country: us
    • Personal site
Re: Pin not driven when connected through inductor
« Reply #3 on: February 08, 2019, 09:55:24 pm »
Seems silly to not treat an inductor like a wire, but at least it makes some sense.
There is no way for it to know that this is an inductor, it is just a component with two passive pins. To implement that check, components would need to have additional attributes for ERC use.
Alex
 

Offline DeepakTopic starter

  • Regular Contributor
  • *
  • Posts: 76
  • Country: us
Re: Pin not driven when connected through inductor
« Reply #4 on: February 08, 2019, 10:17:49 pm »
Wouldn't it be able to derive the device type from the symbol? That is have the ERC determine if one side of an inductor has a connection to a power input, and if so to add an implicit PWR_FLAG to the opposite side net.

The bigger problem I think is that the number of comparisons that need to happen for anything above and beyond a nearest neighbor ERC gets really complex really quickly.
 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 11248
  • Country: us
    • Personal site
Re: Pin not driven when connected through inductor
« Reply #5 on: February 08, 2019, 10:28:59 pm »
Wouldn't it be able to derive the device type from the symbol?
How? It is just 2 pins and 4 semicircles. It has no idea on what this represents. There is no way to specify that it is a short for ERC use.

I suspect the same will happen even with a simple jumper for current measurement.
Alex
 

Offline DeepakTopic starter

  • Regular Contributor
  • *
  • Posts: 76
  • Country: us
Re: Pin not driven when connected through inductor
« Reply #6 on: February 08, 2019, 11:11:01 pm »
Well it knows when wires are connected, so the short answer would be to straighten out the semicircles ;)

But seriously, I think that enum NETLIST_ITEM_T in netlist_object.h would need to be updated for definitions on passives that should be considered a connected net (ie, L, R, Jumper, etc), as well as additional checking in erc.cpp and removing this line:

Code: [Select]
        // We examine only a given net. We stop the search if the net changes
        if( ( netItemTst >= aList->size() ) // End of list
            || ( aList->GetItemNet( aNetItemRef ) !=
                 aList->GetItemNet( netItemTst ) ) ) // End of net

Then for any given node you check for all supernets. The problem is that a dysfunctional layout could have the ERC code testing until the heat-death of the universe using this approach.
« Last Edit: February 08, 2019, 11:12:56 pm by Deepak »
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14464
  • Country: fr
Re: Pin not driven when connected through inductor
« Reply #7 on: February 08, 2019, 11:12:52 pm »
This is far from trivial. I've worked on an ERC system a while ago and this exact question actually popped up...

The pin could be connected through a series of other parts to eventually a pin that would be a "driver" pin. But how would the ERC figure out that this pin is correctly driven as expected?
For instance, if it were connected via a diode or a transistor or whatever with the possibility of said pin to be undriven anyway? The ERC would have to issue a full circuit analysis, not just go through nodes, to actually be relevant. So it's just much easier to detect that it's not directly connected to a driver, and move on. This actually warns the user to check themselves the pin is correctly driven, which is not so bad.

A full analysis could be pretty complicated to be really relevant, and slippery.

The only thing I'd suggest here is that they call this kind of error a warning (a power in or input pin connected to a passive node), then add the possibility for the user to discard selected warnings so that these never appear again when they run ERC again.
 
The following users thanked this post: Deepak

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 11248
  • Country: us
    • Personal site
Re: Pin not driven when connected through inductor
« Reply #8 on: February 08, 2019, 11:16:54 pm »
I think a good compromise would be if the net had a power port connector, even if there is no other corresponding power ports anywhere else. So put a power symbol named "VDDCORE", and ERC takes it as a sign that the pin is powered.

I'm not even sure, this may actually work.
Alex
 

Offline DeepakTopic starter

  • Regular Contributor
  • *
  • Posts: 76
  • Country: us
Re: Pin not driven when connected through inductor
« Reply #9 on: February 08, 2019, 11:28:11 pm »
I think a good compromise would be if the net had a power port connector, even if there is no other corresponding power ports anywhere else. So put a power symbol named "VDDCORE", and ERC takes it as a sign that the pin is powered.

I'm not even sure, this may actually work.

I think that's effectively what PWR_FLAG does, so the ERC throws a warning saying 'hey this might not be connected' then you slap in the new symbol to confirm you looked at it and traced the net to confirm it is indeed connected.

 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 11248
  • Country: us
    • Personal site
Re: Pin not driven when connected through inductor
« Reply #10 on: February 08, 2019, 11:30:31 pm »
I think that's effectively what PWR_FLAG does, so the ERC throws a warning saying 'hey this might not be connected' then you slap in the new symbol to confirm you looked at it and traced the net to confirm it is indeed connected.
Yes, that's it. I think it is a good solution. This clearly conveys the designer's intent.
Alex
 

Offline Doctorandus_P

  • Super Contributor
  • ***
  • Posts: 3353
  • Country: nl
Re: Pin not driven when connected through inductor
« Reply #11 on: February 13, 2019, 08:17:50 pm »
I am more used to putting capacitors upright so the electrons don't fall out and having power flow downwards into a chip.
I also combine this with giving the PWR_FLAG's a logical place in the schematic.
This makes them look like they belong there, instead of being slapped on as an afterthought.
That's also the reason I put them on the same level as the +3.3V power supply symbol.
At least to me this makes the intention a lot clearer, but I'm biased here because I'm used to my own way of drawing things.
I also have a suspicion that Pin 8 "VDDana" is missing a decoupling cap.
100uF also seeems a bit big, ceramics are more common, but I don't know what chip you're using so can't comment too much about that.https://www.eevblog.com/forum/index.php?action=dlattach;topic=168629.0;attach=651450;image
 
The following users thanked this post: Deepak

Offline bson

  • Supporter
  • ****
  • Posts: 2269
  • Country: us
Re: Pin not driven when connected through inductor
« Reply #12 on: February 14, 2019, 02:42:11 am »
100uF also seeems a bit big,
Yeah, they should probably be 100nF, not 100µF.  Looks like basic supply decoupling.  Just a single 100µF cap on a supply pin - or multiple supply pins - makes little sense...
« Last Edit: February 16, 2019, 08:29:44 pm by bson »
 

Offline DeepakTopic starter

  • Regular Contributor
  • *
  • Posts: 76
  • Country: us
Re: Pin not driven when connected through inductor
« Reply #13 on: February 16, 2019, 05:38:10 pm »


Quote from: Doctorandus_P on February 14, 2019, 07:17:50 am
I am more used to putting capacitors upright so the electrons don't fall out and having power flow downwards into a chip.
I also combine this with giving the PWR_FLAG's a logical place in the schematic.
This makes them look like they belong there, instead of being slapped on as an afterthought.
That's also the reason I put them on the same level as the +3.3V power supply symbol.
At least to me this makes the intention a lot clearer, but I'm biased here because I'm used to my own way of drawing things.
I also have a suspicion that Pin 8 "VDDana" is missing a decoupling cap.
100uF also seeems a bit big, ceramics are more common, but I don't know what chip you're using so can't comment too much about that
.https://www.eevblog.com/forum/index.php?action=dlattach;topic=168629.0;attach=651450;image


Thanks for the tips, that does look a lot more eye pleasing. The component values were arbitrarily selected, I was trying to get a sense of the approximate size of the board, and still need to go through multiple datasheets.
 

Offline Doctorandus_P

  • Super Contributor
  • ***
  • Posts: 3353
  • Country: nl
Re: Pin not driven when connected through inductor
« Reply #14 on: February 19, 2019, 12:59:00 am »
Thanks for the tips, that does look a lot more eye pleasing.

"Eye Pleasing" factor is not important. The goal of making your schematics look neat and organised is to be able to put more focus on the funcion.
From my modified schematic it is almost immediately clear that there are 3 power supply voltages, and this also probably means there is probably a decoupling capacitor missing.
Following a few simple conventions in schematic drawing also makes them easier for others to read,( ans spot such mistakes).
But you may also prefer this kind of wiring:
https://www.xkcd.com/730/
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf