Gate swapping moves the whole IC

I just ran into a minor nuisance.

My design uses a 74HC14 hex inverter. (Nobody wants a hex which is right side up, right?) :slight_smile:

Anyway after some schematic revisions I am trying some (sort of) gate swaps to facilitate the layout. I have a couple of rotary encoders and some discretes feeding the hex inverter. What I really did in the schematic is simply edited a couple of wires feeding the gate inputs so that only the inputs were swapped.

When I update the pcb to the schematic, the SMT IC becomes completely unmoored from its location which I had not wanted to change. Am I doing something wrong?

Application: Pcbnew
Version: (5.1.4)-1, release build
wxWidgets 3.0.4
libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.68.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.61.1
Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:

Can you please post screenshots of:

The options popup panel when updating the PCB
The report popup about what is going to be changed if you accept
The PCB before and after the proposed update.

Did you do any track routing already before doing an update or is everything still tied together by a rats nest?

My experience with making this sort of change is the IC stays in place but new rats nest lines appear on the PCB and you have to fix the routing.

Normally I make this kind of change not by moving the wires, but by editing the unit letters, whereupon the pin numbers will change also.

Thank you very much. I have now unmodified my schematic then updated the pcb, and then remodified the schematic and updated the pcb and am unable to reproduce the issue. When the issue happened the IC footprint came unmoored and I thought I had a typo or stray mouse click. So I hit “undo” a few times and then manually redid my change with the same result of the IC losing its position. Then I manually put the IC back where it belonged. If this happens again I will come back to this post.

For gate swapping you might want to use Unit swap action plugin

Thanks again.

I am feeding the inverter input with the output of a rotary encoder. With the rotary encoder I am uncertain about connection versus rotation direction. So my design has 1 extra inverter per 2 phase encoder, and two resistor stuffing options (R13 & R14) which will allow me to experimentally set the correct direction of operation after the board is built. With 2 inverters connected in series, I am connecting pin 2 output of unit A to pin 3 input of unit B for example. For my purpose it makes more sense to swap the inverter inputs (SW2 pin 1 and 3 connections) only rather than swapping “gates” on the schematic. For that reason, right now with 2 phases of encoder output, I do not care which output goes to which inverter and I wanted to swap only the encoder output to the inverter input, not the inverter units with each other.

Sorry for misunderstanding and thanks for clarification.

I hope you don’t mind me asking what is the purpose of the Q18 U3A, R90 C13 and R17 circuit?

Hi, MitjaN. No need for apologies and in fact I enjoy discussing circuit design. But I don’t know about doing much of it on this forum so I will limit my comments and wonder if there is a better place for it. Just to say that it is my latest debounce circuit. This rotary encoder has mechanical switches. I expect the contacts to momentarily bounce open when they close. But I do not expect them to usually bounce closed when they open. So this debounce circuit is asymmetrical; it works only on contact closure. It has minimal prop delay and output dV/dt is fast enough; compatible with HC logic. I previously had an RC LP filter feeding the first schmitt inverter; that has delay; would probably work OK but I wanted to try this. Any of these debounce circuits limit the maximum pulse rate.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.