I’m progressing a little bit with my first schematic. I have tried to check the electrical
rules, and I have the following error at many places.
ErrType(3): Pin connected to some others pins but no pin to drive it
I read about the way to solve this on the net, and on 12 errors, I solved 11. For the last one, there
is a green error arrow at the ground. I tried to add a ground symbol, it doesn’t change. Well, it moves
the green arrow to another place, there is always an error remaining.
Can anybody explain me what happens?
As for the environment: Kicad on PC (as I reported earlier, on Mac, it was so slow, that it’s unusable).
Memory = 8GB, windows 7. Kikad 4.0.7.
You have some power input pins that are not connected to power output pins.
Most pcbs are supplied with connectors from an outside source. Kicad does not know that this connector is an energy source if you use the generic connector symbols. (Their pins are set to passive.)
You have two option.
create a specialized connector symbol with it’s pins set to power output. (This does not work if you have any passive component in series between the connector and the devices that need power)
Use the special power flag component (from the power lib) to tell kicad where your supply comes from. (Place this flag as near as possible to the connector. Otherwise you might forget to connect the connector to the rest of the board and kicad can not help you any more.)
Well, the only remaining error is like this (would be good if I could post a screen copy snippet, is it possible?).
In the STM32 library, I have chosen the F769, 208 pins. There is a bunch of pins on the right which are all
supposed to be connected to ground. So I have set dropped the CPU on one sheet as I was used to do
with another program. Then I have chosen the GND symbol from the power menu. And I have wired all the
GND pins together with the wire tool (or by typing w when hovering a connection point). And I have wired
everything to the GND symbol. Now when I run the ERC, I get one error (green arrow) at one of the GND
pins, not on the others. I tried to delete and re-wire this one because I thought I might have wired it when
the mouse was slightly off the contact point, but it doesn’t change anything. Well, yes, it does, the green
error arrow jumped to another pin, but there is still this single error remaining.
You get the error at one of these pins only because kicad does not list all pins on a net if there is an error. (Otherwise you would get a lot more errors.)
The arrow also does not always point to the source of the problem but at the pin where it found it. (In this case the problem is that you have no power output pin on the GND net.)
My suggestion is to follow your power path from your power source. (The connector that supplies your board.)
Check if it is connected to the same GND power symbol as your CPU. (Add a pwr_flag symbol. If the error goes away then it is connected. If not you have made a mistake when connecting something and your STM really is not powered.)
You can post screenshots here. Simply drag and drop the image file into the reply form. (New users can only post one screenshot per reply. So either make a composite image from multiple screenshots or make multiple replies.)
Thanks for the hint for the pictures. Couldn’t be easier.
I have made a compound image in 3 sections.
On top, the errors before setting power flags. I suppose it’s right. Something I don’t understand: If I set
the flag on the resistor R1, it works. If I set it on the wire which belongs to the same net, it doesn’t work.
Is this the right way to proceed?
Middle image: I’m not sure it’s the right way, but at least the errors disappeared at the expense of some
noise in the schematic.
The bottom image had the same issues, and fixed the same way. (power flags). But there is still a problem
on pin 60, that’s what I was trying to explain.
So what do you mean by I have no power output pin on the GND net. GND belongs to the power supply,
and the power pins (VSS and others) are bound to this net, so what exactly is missing? Should it be solved
by simply adding a power connector? There is none yet. Anyway I will try that.
If you get the error you mentioned, ERC thinks you don’t have power.
This is either because you really don’t have power on your board, you have not connected some power pins to power or you did not tell kicad where power comes from.
The power symbols are not power sources! (In fact they themselves are power inputs and mark a net as needing a power source.)
A power source for kicad is a pin that is marked as power output. Normally only DC/DC converters and similar devices have pins marked as power output.
A generic connector symbol has it’s pins marked as passive because the symbol creator does not know what you will use this symbol for. This is where the power flag comes in. Placing a power flag tells kicad: No worries this is where power comes from. (The power flag has one pin marked as power output.)
Do not place the power flag near the power inputs! Place it only where you really get power. Otherwise ERC can not help you in any way to find missing power connections!
Hello Rene (and everybody).
I have first removed all the flags I had previously set. Then I have added a flag after the coil because
the system cannot know it’s powering the analog circuit. And another flag for VDD5DMMC.
So in order to solve the problem, I have tried to add a power symbol. It’s a power jack that I found
in the library that comes with Kicad. It’s called Conn_Coaxial_Power.
Now as you can see from the upperpart, a new error comes close to the regulator.
But if the Conn_Coaxial_Power does not power the board, what component can?
Now apparently, Kicad understands that the output of the regulator is a power, and
I don’t need to put flag everywhere anymore, as shown on the second part of the picture.
I left a few flags on the CPU internal LDO output pin, otherwise I get errors.
Does it mean that the cpu is possibly not well defined, and that its LDO output pin
is not defined as a power source? How can I fix thatz?
You need to change the electrical type of these pins to power output.
The easiest way to do that is by right clicking on the cpu symbol -> [edit component] -> [edit with symbol editor] or use the shortcut crtl+e
Then hover over the pin you want to change and press e (or right click->[edit pin])
There should be a drop down menu next to the text “electrical type”. Set this to power output to define a pin as a power source.
If you are talking about the two power flags of your screenshot, i don’t think you can get rid of these. These are needed because you have a passive component between the power source and the cpu pin that is defined as power input. (R1 and L1, The source here is the VDD net.)
I have edited the connector, and indeed the output was not declared as a power type.
Question: Why is it so? This is a power connector, why its pins declared as a power output type?
Are there other uses of that kind of connector, which could prevent to declare it by default
as a power output? I guess the most frequent use should be power supply…
By the way, I have edited as specified, and the error disappeared. Thanks a lot!
Beside this, I can’t save the modified connector, it says I don’t have access permissions…
and it’s on Windows. I’m lost. Is there a chmod-like utility?
Yes, for the 2 flags that had to be placed again, that’s what I was trying to explain.
No problem with that, I understand that the system cannot guess it’s a power source.
PS: By the way, I forgot to say it clearly, but there aren’t any errors left! Thanks!
Save the component to a personal library and make the change there. Give it a unique name otherwise the change will get over ridden if you update the libraries. Why the person who made the original library didn’t call it a power pin will probably remain a mystery.
I forget where in the dialog you are given the option to save as a new library but that is what you want to do. Make sure you specify YOUR user space. Next time you need to do this, simply make that the active library and you can then save your next change to it. This is how you start making personal libraries. These are text files so if you need/want to split it up later, no problem.