CMOS circuit sensitive to touching

Go To Last Post
8 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi guys, I couldn't find anything on web regarding this problem which I believe is quite general.

 

I have build (on a breadboard) a circuit with ATMega8, LCD, couple of shift registers and 74HC08, 74HC00 to control the shift registers clock. I have connected LEDs to my shift serial-to-parallel register to observe it's state. Whenever I touch the groung of the circuit on the breadboard with a pinsette held in a bare had, the shift register goes crazy (it shifts by few bits). ATMega is NOT reset or anything, it stays in the correct state, LCD doesn't display garbage, it's just the 74HC00+74HC08+74HC164 circuitry what is "sensitive to touching". I also have intermittent problems programming the ATMega, when the programmer reads random device signature, but after a while this settles and I can continue working. No relays or motor or other inductive load connected. 

 

I connected all unused NAND and AND gate inputs to ground.

 

The circuit is powered by a switching network adapter 6V, with 7805 and a capacitor connected between it's output rails. I don't have 100n capacitors in parallel with my 74xxx IC's. 

 

I was wondering how this can be? Maybe if you tell me how this "phenomena" is called I could google for it myself, but most of the EMF articles talk about inductive load. I could understand that touching an unconnected pin of CMOS IC could do this, but responding to touching GND seems really weird to me :( 

 

Any ideas or hints?

 

 

This topic has a solution.

Last Edited: Sat. Feb 7, 2015 - 07:44 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'd suggest something isn't actually connected. I've had circuits that work until I reach for them. CMOS is REAL high impedance stuff.

If you don't know my whole story, keep your mouth shut.

If you know my whole story, you're an accomplice. Keep your mouth shut. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

as Torby says something is not connected properly.

Last Edited: Sat. Feb 7, 2015 - 11:05 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I don't have 100n capacitors in parallel with my 74xxx IC's. 

 

 

In addition to the above, you really need to add by-pass caps across the 74' chips.

 

Also, read the data sheet for the exact model 7805 you have.

IIRC, some require greater than 6 V Vin to give a stable 5 V output.

 

Do you have current limiting resistors in series with each LED you are lighting up?

 

Welcome to the Forum.

 

JC

 

  

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

A 7805 requires a minimum input of 7.6V to 7.8V, depending on the manufacturer. And it MUST have an output bypass cap. In some circumstances (generally stated as long input leads), it also needs an input cap.

 

Low input voltage should not cause oscillation, just an output less than 5V. Lack of output cap could. 

 

When you say "breadboard", do you mean one of those spring contact boards?

 

All this said, I'd still bet on Torby's suggestion. Your symptoms are classical for that. Check input enables and output latch strobe pins on the shift registers. Also check that everything is grounded that needs to be grounded.

 

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'd follow the advices above and check for ground faults first place. Maybe a loose jumper wire?

It always helps to have at least a 100nF de-coupling capacitor for each Vcc rail.

The clock pins may have a pull-up or pull-down resistor to anchor the voltage to stable levels between the clock edges.

A capacitor may be hooked up to the same pins with a 10-100 ohm resistance between cap and AVR, to minimize stress to the GPIO pin when the clock goes low and discharges the capacitor.

Also, it often helps keeping the clock wires well away from the noisy parts on the power supply: switcher IC or external FET, coil, free-wheel diode.

If this is just to drive an LCD or LEDs, you can take advantage of the so called "persistance of vision" (i.e. whatever happening faster than 30Hz is invisible to the eye), and reset/update the register at a faster rate to fix clock errors before the users can tell them.

while(!solution) {patience--;}

Last Edited: Mon. Feb 9, 2015 - 08:41 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thank you guys so much. What I did is that:

 

  1. I put 100nF ceramic by-pass capacitors across every IC's Vcc and Gnd. This itself didn't help but I know it's a good practice.
  2. I followed the G0NZ4LO's advice and put a 10nF cap from shift register's CLK to GND and 22 Ohm resistor from MCU to that CLK pin. This definitelly removed the circuit's sensitiveness to touch. It's surprising that I didn't find advice like that anywhere else.

 

What I'm still experiencing is that when I connect an USBASP programmer to the powered circuit, it disturbs the MCU state. I'm using MCU's MISO, MOSI, CLK as dedicated for ISP only. I have to press a reset button to reset the MCU and the circuit works perfect after that. My understanding is that the GND level somehow "shifts" by connecting to the computer's GND but I don't see why it would affects the MCU. Any theory behind that?

 

Thank you also for warm welcome to the forum ;)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Good to hear it worked!

 

Maybe the programmer is disturbing the circuit VCC/GND rails. You can rule out a ground loop by replacing the circuit power supply by a linear (transformer, not switch-mode) adapter, so the whole circuit will take the computer's USB ground as reference.

The Watchdog timer always helps.

while(!solution) {patience--;}