Multiple Pin Assignment Types

I am new to Kicad and after watching C. Gammell’s youtube playlists I think I have an O.K. grasp on using Kicad.

I wanted to create a DIP-40 Symbol for the Z80-CPU I am using using an online generator here: kicad.rohrbacher.net/quicklib.php .

On the very first pin is an address line (A11). In the data sheet it says in the pin descriptions A0-> A15: Address Bus (output, Active High, 3-state). I went to go assign the pin, but I am confused as to whether it should be an output or a tri-state pin type. Is it just assumed when you choose the tri-state type that the pin is also an output?

I there any detailed information about all of the types of pin assignments and how they affect connectivity and error output? Thanks!

The address pins should be labelled as TriState as they can be high, low or high impedance (when DMACK is asserted). The Output pin type is for pins that can only be a driven output e.g. the output of a 74HC08 and gate.

The matrix of conflicts for electrical rules checking is in the “Options” tab of the “Run Electrical Rules Check” dialogue (use the toolbar button or Tools->Electrical Rule Checker). It shows a red error where connecting two pins of the same type will result in an error, a yellow warning where it will cause a warning and a green where it will not be flagged. So connecting anything to a no-connect pin will cause an error and connecting an output to an output will cause an error, for example.

Ha, I had never seen that tab before. That seems like a much easier way to deal with pin type mismatch ERC errors than “look through them and ignore the ones you don’t agree with” :smile:

It almost seems like it would be easiest to change all pins to passive to avoid the errors. I made a excel chart in PDF here Z80CPU-PINTYPE that outlines the pin types. I am not sure if all are correct.

Certainly setting all pins to passive would avoid errors, but the point of the ERC is to find errors before you make the PCB. Making sure your library is consistent and accurate regarding pin type will save you weeks of board spins and large amounts of money.

I’d agree with your pin-types in that table with the possible exception of clock, on the Z80 the clock input requires an external logic-level clock generator so I’d call it an input rather than passive.

That is true. CLK probably should be an input since without an input to the CLK pin the chip will not function.

I was only joking about setting all of the pins to a passive setting. I noticed in the the matrix that you can change the options between green, red, and warning by just clicking on a particular block. Seems like a workaround for some bogus ERC errors that occur, and instead of ignoring/dealing with the ERC output you would like to prevent the message from happening. For instance when defining an unspecified pin type you will always get a warning unless it is unconnected at which point you will receive an error. If you know what type of pin it will be connecting to you could change the block to green.