Received: from PCH.mit.edu (18.7.21.50) by mail.efplus.com (192.168.0.8) with Microsoft SMTP Server (TLS) id 8.3.485.1; Thu, 31 Dec 2020 14:33:05 -0800 Received: from PCH.MIT.EDU (localhost.localdomain [127.0.0.1]) by PCH.mit.edu (8.14.7/8.12.8) with ESMTP id 0BVMPKpN015436; Thu, 31 Dec 2020 17:26:00 -0500 Received: from outgoing-exchange-3.mit.edu (OUTGOING-EXCHANGE-3.MIT.EDU [18.9.28.13]) by PCH.mit.edu (8.14.7/8.12.8) with ESMTP id 0BVMPIxp015431 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Thu, 31 Dec 2020 17:25:18 -0500 Received: from oc11exedge2.exchange.mit.edu (OC11EXEDGE2.EXCHANGE.MIT.EDU [18.9.3.18]) by outgoing-exchange-3.mit.edu (8.14.7/8.12.4) with ESMTP id 0BVMP2d7006747 for ; Thu, 31 Dec 2020 17:25:18 -0500 Received: from w92extsm1.exchange.mit.edu (18.7.74.52) by oc11exedge2.exchange.mit.edu (18.9.3.18) with Microsoft SMTP Server (TLS) id 15.0.1293.2; Thu, 31 Dec 2020 17:24:55 -0500 Received: from oc11exhyb4.exchange.mit.edu (18.9.1.100) by w92extsm1.exchange.mit.edu (18.7.74.52) with Microsoft SMTP Server (TLS) id 15.0.1365.1; Thu, 31 Dec 2020 17:25:14 -0500 Received: from NAM04-CO1-obe.outbound.protection.outlook.com (104.47.45.56) by oc11exhyb4.exchange.mit.edu (18.9.1.100) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Thu, 31 Dec 2020 17:25:14 -0500 Received: from BN9PR03CA0753.namprd03.prod.outlook.com (2603:10b6:408:13a::8) by BY3PR01MB6739.prod.exchangelabs.com (2603:10b6:a03:36f::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.20; Thu, 31 Dec 2020 22:25:12 +0000 Received: from BN8NAM11FT043.eop-nam11.prod.protection.outlook.com (2603:10b6:408:13a:cafe::94) by BN9PR03CA0753.outlook.office365.com (2603:10b6:408:13a::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.19 via Frontend Transport; Thu, 31 Dec 2020 22:25:12 +0000 Received: from premium47-1.web-hosting.com (68.65.123.241) by BN8NAM11FT043.mail.protection.outlook.com (10.13.177.218) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.29 via Frontend Transport; Thu, 31 Dec 2020 22:25:12 +0000 Received: from rrcs-67-79-180-242.se.biz.rr.com ([67.79.180.242]:54427 helo=[192.168.1.108]) by premium47.web-hosting.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1kv6NW-004914-Nl; Thu, 31 Dec 2020 17:25:11 -0500 From: Neil To: Microcontroller discussion list - Public. Sender: "piclist-bounces@mit.edu" Date: Thu, 31 Dec 2020 14:25:04 -0800 Subject: Re: [EE] Eliminating external noise through PS Thread-Topic: [EE] Eliminating external noise through PS Thread-Index: AdbfxOhvRUYNcEP6QHu2XvxFAdziBQ== Message-ID: <5FEE4FC0.10604@narwani.org> References: <5FCFC00E.8040703@narwani.org> <004f01d6cf54$9da13a80$d8e3af80$@functech.com> <5FD3D1E9.8040605@narwani.org> <5FD6A0DC.4010801@narwani.org> <5FD6AEAF.6090505@narwani.org> <5FEB7356.7020408@narwani.org> <5FED1588.3050609@narwani.org> List-Help: List-Subscribe: , List-Unsubscribe: , In-Reply-To: <5FED1588.3050609@narwani.org> Reply-To: Microcontroller discussion list - Public. Accept-Language: en-US X-MS-Exchange-Organization-AuthAs: Anonymous X-MS-Exchange-Organization-AuthSource: TS500.efplus4.local X-MS-Has-Attach: X-Auto-Response-Suppress: All X-MS-Exchange-Organization-SenderIdResult: Pass X-MS-Exchange-Organization-PRD: mit.edu X-MS-TNEF-Correlator: received-spf: None (protection.outlook.com: narwani.org does not designate permitted sender hosts) dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=narwani.org ; s=default; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:To:References:Subject:Reply-To:Sender:Cc: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=U5ygSQXdfD3Qu+AeSlpqtW5hOxK9TNlVz5AnybeaN8A=; b=WKlHyofB5A95rWbUiJzIpdhodh WC8evw6f9DQkftdcg3/SKfsEjKgemRUKK81YU8MRC1EJRLrGQKQYglFWqNKVYxExACjx4DJ9WtZzY UTv43LJPmG5iR8iaNxPkzmAJZECHGglSzNKOaq4u0/QjRuiuxYpGWkzq/uGOydiiRuq0oE1BdYF+k FfoVBx+KH3jd/lqttwBWLxszu5g1nTmMD0EYVGlFT62trOQE7QvhLsOO+vm/pj2J/e74m0lk51XTl CjnWqlF+Eoz9g96+7h6YuRp45aXzhfVEmnsu4u6P05lhKnp8z4qM1UZYe67ggcvyYWHrhx+vei2f0 8+pWzeGw==; authentication-results: spf=none (sender IP is 68.65.123.241) smtp.mailfrom=narwani.org; mit.edu; dkim=pass (signature was verified) header.d=narwani.org;mit.edu; dmarc=bestguesspass action=none header.from=narwani.org; user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 errors-to: piclist-bounces@mit.edu list-id: "Microcontroller discussion list - Public." list-post: x-beenthere: piclist@mit.edu x-mailman-version: 2.1.6 x-source-args: x-source-dir: x-antiabuse: Sender Address Domain - narwani.org x-source: x-authenticated-sender: premium47.web-hosting.com: ca4@narwani.org x-topics: [EE] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Soooo.... yep, this was actually the reason for the last bit of noise I was seeing... the probe. Tried the paperclip ground again and it's 99% gone. Really appreciate everyone's help on this! I'll go back and calculate ideal values for the filters etc now. Happy New Year everyone! Cheers, -Neil. On 12/30/2020 7:04 PM, Neil wrote: > I had previously tried the paperclip-ground mod for the scope probe > (saw this from one of Alan Wolke's videos a long time ago) and it > didn't make much difference. I should really try this now, after all > the changes. > > Cheers, > -Neil. > > > > > > On 12/29/2020 2:36 PM, Jason White wrote: >> My experience developing "all discrete" (no microcontroller) motor >> driver >> PCBs is that any noise that is unaffected by filtering tends to be a >> measurement or environmental artifact. >> >> I'd recommend doubled checking your probe/scope grounding - it is an >> endless source of trouble and erroneous readings. I've found that often >> times problems in systems are a result of a combination of "innocent >> looking" and unrelated things that end up interacting in unexpected >> ways. >> >> On Tuesday, December 29, 2020, Neil wrote: >> >>> Happy holidays everyone. >>> >>> Okay, I got back to this recently and have a bunch of updates: >>> >>> For the tl;dr 'ers... I've got a lot of noise out, the processor does >>> not crash anymore, but 2 questions remain: >>> >>> - Should I have the AC-outlet ground wire, coming onto the PCB and used >>> as a shield? >>> >>> - If I hold the AC wire with my hand, the noise (as seen on the >>> oscilloscope) drops (noticeably). Shielding the AC wire does not have >>> the same effect, so what is happening here, and how can I use this to >>> help reduce the noise even more? >>> >>> >>> For the gory details, here's my summary of what I tried and found... >>> >>> For reference... >>> http://orlandorobotbuilders.com/stuff/SMNoise/20201224-SMN-08.jpg , and >>> noise is mostly in the few Mhz range and higher. >>> >>> - Ceramic cap across (DC) motor wires (right at the motor) helped a >>> bit. >>> - Low-pass filter helped minimally >>> - Pi filter was a bit better, but still small impact. >>> - Common mode choke (uncalculated, but should've been able to separate >>> 60Hz from Mhz-range noise) didn't help. I am new to these, but >>> apparently above some frequency the impedance drops again. >>> - Ferrite across AC side of motor wires helped minimally. >>> - Ferrite on incoming-power AC wires did not help >>> - Removed relay (and jumper across contacts to run the pump) to see if >>> noise was coming into board from that side, but nope. >>> - Started from scratch with a minimal setup -- the AC-DC PS (no PCB), >>> with wires soldered on for the incoming power and parallel wires to run >>> the pump, and a 1k load resistor on the PS output. Still a lot of noise >>> - Low-pass filter again helped reduce noise minimally. >>> - Capacitance multiplier helped noticeably. >>> - 2 more ceramic caps from each motor wire to ground/motor case (right >>> at the motor) helped noticeably. >>> - Twisted the AC wires to the motor tighter, and didn't really see any >>> difference. >>> - Back to original board, to use some of these, but too much voltage >>> drop on capacitance multiplier to be usable. I should calculate this >>> properly and find the right transistor for this. >>> >>> At this point, I have 3 @ 0.01uf ceramic caps at the motor and the pi >>> filter and the board isn't crashing, but I can still see some noise on >>> the scope, which I'd like to reduce even more. Going to try a >>> multi-stage pi/LC filter. >>> >>> But I'm curious how to use the "phenomenon" where holding the AC >>> wire in >>> my hand reduces noise noticeably, to help this. >>> >>> >>> Thanks, >>> -Neil. >>> >>> >>> >>> On 12/13/2020 7:15 PM, Neil wrote: >>>> That's a definite possibility at this point. The original circuit >>>> (prior version) worked great with 2 layers, but I needed 2oz copper to >>>> handle the pump current. >>>> Never version works just as great. Or I should say "worked", until >>>> they decided to switch from the AC pump to this DC pump. >>>> >>>> Cheers, >>>> -Neil >>>> >>>> >>>> >>>> On 12/13/2020 6:58 PM, Jason White wrote: >>>>> Neil, from the pictures it looks like you're using a 2 layer PCB. >>>>> Have >>> you >>>>> considered a 4 layer PCB? A continuous dedicated ground plane layer >>> would >>>>> drastically reduce the loop area (and thus susceptibility to EMI) of >>> your >>>>> traces. >>>>> >>>>> Otherwise, it may be worth considering moving the relays to a >>>>> separate >>>>> board/area. >>>>> >>>>> On Sunday, December 13, 2020, Neil wrote: >>>>> >>>>>> I strongly feel so, because in my early tests, I: >>>>>> (a) disconnected one of the pump wires (so the pump wouldn't >>>>>> run), and >>>>>> it was (expectedly) very clean (on the scope). >>>>>> (b) disconnected both of the pump wires and plugged it into the >>>>>> female >>>>>> side of a PC power cord, so the pump ran, but was connected to >>>>>> 120VAC >>>>>> from a different source. Very clean power again. >>>>>> In both cases, all else stayed the same including where the wires >>>>>> were >>>>>> draped, etc. >>>>>> >>>>>> In other tests, I moved the scope, power lines, etc and no change to >>> the >>>>>> noise on the line. >>>>>> >>>>>> Either way, I haven't done my other tests yet since I took the pump >>> with >>>>>> me, so I'll get to those this week. >>>>>> >>>>>> Cheers, >>>>>> -Neil. >>>>>> >>>>>> >>>>>> On 12/11/2020 7:37 PM, Jason White wrote: >>>>>>> Hi Neil, >>>>>>> >>>>>>> This may be a silly question: are you sure that some of these >>>>>>> voltage >>>>>>> spikes that you've captured on the scope are not artifacts of your >>>>>>> measurement setup? The loop formed by the ground wire/clip on a >>>>>>> scope >>>>>> probe >>>>>>> makes a very effective antenna. Maybe your power rail is cleaner >>>>>>> than >>> you >>>>>>> think - in which case the true problem might be elsewhere. >>>>>>> >>>>>>> -Jason White >>>>>>> >>>>>>> On Fri, Dec 11, 2020 at 3:11 PM Neil wrote: >>>>>>> >>>>>>>> Sorry, disappeared for a couple days, but some quick answers to >>>>>>>> everything for now, and my next steps: >>>>>>>> >>>>>>>> - Yes I have flyback diodes. Highlighted with yellow here, just >>> above >>>>>>>> the relays... >>>>>>>> http://orlandorobotbuilders.com/stuff/SMNoise/20201207-SMN-06.jpg >>>>>>>> - James & Russell, in that diagram also, I labeled the paths for >>> power. >>>>>>>> The 5V to the relays is pretty much dedicated and 5V is on the top >>>>>>>> layer, and (dedicated) ground for the relays on the bottom layer. >>> But >>>>>>>> yes, it's right up against the AC section, but as many components >>> have >>>>>>>> been removed now, I will push that far away. >>>>>>>> - The 3.3V regulator has been getting a bit warmer than I like, >>>>>>>> so I >>>>>>>> have been planning to use a buck converter instead. But maybe I >>> should >>>>>>>> run two 3.3V regulators instead? I would think that the buck >>> converter >>>>>>>> would be pass less of the noise through. >>>>>>>> - I ran over there quickly to pick up stuff and tried a crude >>>>>>>> (uncalculated) common-mode choke I made up from stuff I could >>>>>>>> find. >>> Did >>>>>>>> not make in dent in the noise coming through. >>>>>>>> See here... >>>>>>>> http://orlandorobotbuilders.com/stuff/SMNoise/20201207-SMN-07.jpg >>>>>>>> - I feel like Brent may be correct, that the noise may be >>>>>>>> coming from >>>>>>>> the relay side. The processor (ESP32) is resetting. I know it's >>> not a >>>>>>>> firmware issue as it had zero crashes with the previous pump. >>>>>>>> >>>>>>>> >>>>>>>> Adding some info: >>>>>>>> The previous pump was a huge AC pump. This new pump is >>>>>>>> actually DC, >>> but >>>>>>>> there's a bridge rectifier on the wires. So I'm now convinced >>>>>>>> that >>> the >>>>>>>> noise is coming from brushes. >>>>>>>> I brought the pump with me, and I have a new blank board. My plan >>> is to >>>>>>>> reproduce just enough of the circuit to see the noise, and I >>>>>>>> can cut >>> and >>>>>>>> re-route traces (the 5V & ground to the relays) to see if helps. >>>>>>>> I will also add a ceramic capacitor to the pump wires (right at >>>>>>>> the >>>>>>>> pump), and hope that helps. Plus twist the wires. >>>>>>>> >>>>>>>> I'll be back with some results. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> -Neil. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 12/10/2020 7:28 PM, FTL wrote: >>>>>>>>> This is almost too obvious, but in the schematic I do not see a >>> flyback >>>>>>>>> diode across the relay to suppress the back EMF when the relay is >>>>>> turned >>>>>>>>> off. The lack of diode would cause a serious spike in the 5V >>>>>>>>> supply >>>>>> when >>>>>>>> the >>>>>>>>> relay is turned off. >>>>>>>>> >>>>>>>>> Is the transistor being turned on hard enough to keep the >>>>>>>>> relay on >>>>>>>> properly. >>>>>>>>> If it is not fully on with no flyback diode, maybe it is >>> occasionally >>>>>>>>> releasing and causing big noise on the 5V bus. >>>>>>>>> >>>>>>>>>> -----Original Message----- >>>>>>>>>> From: piclist-bounces@mit.edu On >>>>>>>>>> Behalf >>> Of >>>>>>>> Neil >>>>>>>>>> Sent: December 8, 2020 11:04 AM >>>>>>>>>> To: Microcontroller discussion list - Public. >>>>>>>>>> Subject: [EE] Eliminating external noise through PS >>>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> I'm working on a device that takes 120VAC, converts to 5VDC >>>>>>>>>> with a >>>>>> PCB- >>>>>>>>>> mounted power supply, then further reduces that to 3.3VDC with a >>>>>> linear >>>>>>>>>> regulator. >>>>>>>>>> A 3.3V microcontroller switches a relay to power a 120VAC pump. >>>>>>>>>> Overview... >>>>>>>>>> http://orlandorobotbuilders.com/stuff/SMNoise/20201207-SMN-00.jp= g >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> All has been great until we switched to a specific pump, which >>> happens >>>>>>>> to >>>>>>>>>> generate a LOT of conducted noise, which passes through the >>>>>>>>>> 5V PS, >>> and >>>>>>>> the >>>>>>>>>> 3.3V regulator, and causing the microcontroller to crash. >>>>>>>>>> I did a bunch of tested and found that the noise is being >>>>>>>>>> conducted >>>>>>>>> through >>>>>>>>>> the wires back to the board through the PS, through the linear >>>>>>>> regulator, >>>>>>>>> and >>>>>>>>>> this is the 3.3V line... >>>>>>>>>> http://orlandorobotbuilders.com/stuff/SMNoise/20201207-SMN-01.jp= g >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I was over at someone else's place so did not have a lot of >>>>>>>>>> parts >>> with >>>>>>>> me, >>>>>>>>>> but... >>>>>>>>>> Adding a bunch more 0.1uf bypass capacitors all over the >>>>>>>>>> board did >>> not >>>>>>>>> help. >>>>>>>>>> Changing the power supply from an IRM-10-5 (industrial spec, >>>>>>>>>> 200mV >>>>>>>>>> ripple) to MPM-10-5 (medical spec, 100mV ripple), helped >>>>>>>>>> reduce the >>>>>> rate >>>>>>>>> of >>>>>>>>>> the crashing... but the ripple itself wasn't causing crashing. >>>>>>>>>> >>>>>>>>>> Adding (non-specific size) ferrites to the pump wires, and >>>>>>>>>> 120VAC >>>>>> input >>>>>>>>> wires >>>>>>>>>> did not help. >>>>>>>>>> I then tried to create a crude/uncalculated LC filter (which >>> whatever >>>>>>>>>> components I had on hand (33uh inductor and 1000uf capacitor, >>> should >>>>>> be >>>>>>>>>> low ESR), then a Pi filter (added 680 uF capacitor), and those >>> barely >>>>>>>> made >>>>>>>>> a >>>>>>>>>> dent. >>>>>>>>>> Eventually I added another 0.1uf capacitor to the output side of >>> the >>>>>> pi >>>>>>>>> filter >>>>>>>>>> and that helped enough to prevent the microcontroller crashing. >>>>>>>>>> But there is still a lot of noise on the 3.3V line... >>>>>>>>>> http://orlandorobotbuilders.com/stuff/SMNoise/20201207-SMN-02.jp= g >>>>>>>>>> >>>>>>>>>> http://orlandorobotbuilders.com/stuff/SMNoise/20201207-SMN-03.jp= g >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> FWIW, this is where it ended up... >>>>>>>>>> http://orlandorobotbuilders.com/stuff/SMNoise/20201207-SMN-04.jp= g >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> The noise is in the 7Mhz to 30Mhz range (prob even higher). >>>>>>>>>> I feel like smaller, low-ESR ceramic caps should help, but I >>>>>>>>>> doubt >>> it >>>>>>>> will >>>>>>>>> take >>>>>>>>>> out most of the noise. >>>>>>>>>> What is the right type of filter to eliminate this noise? >>>>>>>>>> >>>>>>>>>> Cheers, >>>>>>>>>> -Neil. >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive >>>>>>>>>> View/change your membership options at >>>>>>>>>> http://mailman.mit.edu/mailman/listinfo/piclist >>>>>>>> -- >>>>>>>> http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive >>>>>>>> View/change your membership options at >>>>>>>> http://mailman.mit.edu/mailman/listinfo/piclist >>>>>>>> >>>>>> -- >>>>>> http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive >>>>>> View/change your membership options at >>>>>> http://mailman.mit.edu/mailman/listinfo/piclist >>>>>> >>> -- >>> http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive >>> View/change your membership options at >>> http://mailman.mit.edu/mailman/listinfo/piclist >>> >> > -- http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .