Friday, 22 December 2017

pcb - Bus vs Signal Harness in Altium


I am designing a Schematics for one of my big project. I am using Hierarchical Design for my project. My Schematics has one processor which has 5 UART. The UART nets have names like UART1_TX, UART2_RX. I have to move such signals from child sheet to top level sheet and from top level sheet to various other sheets via Sheet Symbols and Sheet Entries.


After reading this article, I got to know Buses should be used only with signals (or net labels) which has sequential names like Data0, Data1 and etc.


But in the past, I was using a Bus to collect signals like UART1_TX and UART1_RX and move from sheet to sheet. The Net Identifier scope was set to Global. I was actually following the way that has been presented on these Evaluation board Altium Projects. I realized now that Bus in my earlier practices weren't actually doing anything as the Net Identifier scope was set to Global.


I want to know is Signal Harness is a right Net Identifier for my signals (UART1_TX and other GPIO signals GPIO_PIN_20)?


Why it is not being used in above Evaluation Projects?



Below is the picture of my harness:


enter image description here



Answer



You're using harnesses in a slightly strange way - not wrong as in "it will work and at least the signals are grouped" but what I would do is to do the following:



  • Learn the difference between a harness type and the harness name (net label put onto the harness). The harness type is e.g. UART, it will have four signals named RXD, TXD, RTS, CTS. Think of object oriented software. You have a type (class) and you generate multiple instances (UART1, UART2, UART3, ... all of them are of type UART).

  • With that knowledge, separate the 3 harnesses from your picture; all of them are of type UART (same type) but you apply different net labels to each of the harnesses (UART1, UART2, ..).

  • Now, automatically you will get the following signal names in the PCB: UART1.RXD, UART1.TXD, ... You'll also get the correct net classes if you have set the option in the project options


You probably weren't really using busses because as you state, the signal names for your bus must be somewhat sequential and RX/TX do not follow that. As you said, AD probably connected your net labels through the "global" setting which I would recommend against.



Image depicting harness name and harness type including resulting net names


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...