I made a minor update to a schematic that has two buses (address, data), and ERC throws a bunch of errors saying that a given net is graphically connected to but is not a member of the bus.
So how do I update the buses so they play nice in 6.x? Documentation is still written for 5.x.
The question is very unspecific. So as general answer look at the busses-section of the documentation:
A short summary for bus-definitions can also be found in every label-properties-dialog. There is a shortcut to âSyntax helpâ which also shows some basic types of bus-definitions
I donât think the question is unspecific. KiCad buses do require net labels for every entry. Therefore they are connected anyway. Buses only serve aesthetic purposes. You can cut the bus short and do not need to connect the bus sections. Having said that if you connect net names not complying with KiCad bus namimg convention (name ending with numbers at the end with no replicated number) you will get the warning âsignal connected to bus but does not belongâ warning messages do appear. One can simply ignore them. However, in version 6 there is an item called Bus Definitions in the tools menu where you can assign net names to a given bus name. I have tried it and it seems do the bus assignment. However, I have not been able to attach this bus name to bus sections by labels, hierarchical labels or global labels as one would naturally expect. This menu seems to be very useful and correct way to handle buses provided there is a way to attach the constructed bus lists (with the net names assigned in the menu) to physical bus sections on the schematic. I will be obliged if someone can explain.
KiCAD 6 bus naming needs two elements:
All bus entry/exit connections must be labelled. This is no different from earlier versions.
The bus itself must be labelled. There are two ways to do this:
1: If you have a data bus with the entry/exits D0, D1, D2 ⌠D7, the bus could be labelled D[0âŚ7].
2: If you have a bus with entry/exits like TX, RX, CTS, RTS, the bus can be labelled {TX RX CTS RTS} or SERIAL{TX RX CTS RTS}.
Note the difference between square brackets and curly brackets.
This will get rid of ERC Warnings.
Cheers.
EDIT: the really smart editor on this web page unfortunately converts a double-point (. .) to an ellipsis (âŚ). Double-point for the data bus example is correct.
Thank you very much for explaining the use of curly brackets for non sequential bus entries. What I am wondering is since this can be done by the Bus Definition utility of V6 why canât we simply use the bus name? The bus class for the alias in question is already defined in KiCad anyway. Thanks again.
KiCad leaves it up to you which method you want to use.
A Vector bus (with the square brackets and two dots) are the simplest.
A Group bus has all the names spelled out between curly braces, but when you want to use such a bus on multiple pages (or just shorten itâs name) you can use the Alias system and then just use the alias name on the bus itself.
Itâs all explained in the manual: Schematic Editor / Help / Help and then chapter 6.5.3 (Or just search for âbusâ in the manual).
Thanks again. I tried it with the following results.
As before labeling of each entry and exit ensures connectivity. Connection to bus do not matter
However, if the bus is not named then one gets the âConnected to bus no netâ message as would be expected.
Naming the bus with correct entry definition gives the checking advantage whether any wrong entries are connected to the bus.
You do not need to define the bus at the hierarchical origin necessarily but must define a section of it with global labels somewhere (once only - preferably on the actual sheet). All error ERC messages disappear and the netlist file seems to look fine
This is what we also had before V6. I played with the bus definition utility of V6 but doesnât seem to have any effect on above operations. I am working on it. Probably (and hopefully) the utility will let us define the bus once there and let us just use the name without any brackets and log lists at all! There must be some V6 user manuals somewhere. Thanks and best regards to all.
Iâve been playing a bit more with these buses.
If you have a bus with named members, then you can right click on the bus, and choose âUnfold from Busâ and select a name from the list, and I think this is new in KiCad V6.
Iâve also added some aliases to my example, and grouped them under the name âBBUUSSâ. And these aliases can be used as a separate bus, or as a part in a group bus.
Note the: Music.Gretl name.
The example is just two instances of a hierarchical sheet, connected on the root sheet, but with the Truck and BUS signals cross-linked. The example is free from ERC violations.
Thanks very much for the information Paulvdh I have checked the bus definition from the manual (not available in my installation but can reach it on the web). Everything works perfectly with âBus Definitionâ option. All thatâs needed is to create the bus label with the alias inside curly brackets. Much preferable to vector or group bus definitions. If any modifications are needed for the bus doing it once at the definition table is all to it. Sequential nets members and single group members are also mixable as with labels. âUnfold bus signalâ option with âCâ shortcut key is also a very efficient time saver.