I have a project where I have 4 total sheets, with 3 sharing a single sheet (for a total of 6 sheets). On the shared sheet I have an I2C IC, and I need to make the address of each IC different. I created 5 hierarchical labels on the common sheet for SEN, SCL, SDA, SADDRA, and SADDRB. On the root sheet, I connected the SCL of the 3 shared sub-sheets together, and then to the SCL hierarchical label from the MCU sheet. Did the same for the SDA line. There are separate SEN’s for each instance, and I created separate hierarchical labels for them on the MCU sheet and then connected them to the appropriate sheets SEN’s.
For each instance, I made the addresses different by assigning the SADDRA/SADDRB different for each sheet. For example, on first instance they are both connected to GND. On the second instance, SADDRA is +5V and SADDRB is GND.
When I annotate and then create the PCB, the SEN’s of each sheet is a different net and the SCL/SDA’s of all instances are shared (with the MCU sheet), so those 3 hierarchical labels are working as expected.
The issue I am having is that I cannot set the address of the 3 I2C clients. On the PCB, I cannot connect any of those pair of pins, as they all have the same net (SADDRA and SADDRB), even though they are not connected “together” on the root sheet.
I have tried multiple combinations of global/local/hierarchical pins and been unsuccessful in getting the nets to be different on the 3 instances of the shared sheet like they are for the SEN’s. I also tried marking them Not Connected, and it did exactly as I expected on the PCB (not allowing me to connect to those pins). I even tried just leaving the pins unlabelled and unconnected (with the corresponding DRC errors) and got the same result.
Does anyone have an idea of how I can force the pin pair on each instance of the sheet to be different? I don’t know if this is something I am not understanding or if this just isn’t possible with power nets.