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; Tue, 29 Dec 2020 14:23: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 0BTMECgl009347; Tue, 29 Dec 2020 17:15:10 -0500 Received: from outgoing-exchange-5.mit.edu (OUTGOING-EXCHANGE-5.MIT.EDU [18.9.28.59]) by PCH.mit.edu (8.14.7/8.12.8) with ESMTP id 0BTMEBAY009319 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Tue, 29 Dec 2020 17:14:11 -0500 Received: from oc11exedge2.exchange.mit.edu (OC11EXEDGE2.EXCHANGE.MIT.EDU [18.9.3.18]) by outgoing-exchange-5.mit.edu (8.14.7/8.12.4) with ESMTP id 0BTMEAIO025379 for ; Tue, 29 Dec 2020 17:14:11 -0500 Received: from oc11expo7.exchange.mit.edu (18.9.4.12) by oc11exedge2.exchange.mit.edu (18.9.3.18) with Microsoft SMTP Server (TLS) id 15.0.1293.2; Tue, 29 Dec 2020 17:13:53 -0500 Received: from oc11exhyb5.exchange.mit.edu (18.9.1.110) by oc11expo7.exchange.mit.edu (18.9.4.12) with Microsoft SMTP Server (TLS) id 15.0.1365.1; Tue, 29 Dec 2020 17:14:10 -0500 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.176) by oc11exhyb5.exchange.mit.edu (18.9.1.110) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Tue, 29 Dec 2020 17:14:10 -0500 Received: from BN0PR04CA0105.namprd04.prod.outlook.com (2603:10b6:408:ec::20) by DM6PR01MB5338.prod.exchangelabs.com (2603:10b6:5:150::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.29; Tue, 29 Dec 2020 22:14:08 +0000 Received: from BN8NAM11FT041.eop-nam11.prod.protection.outlook.com (2603:10b6:408:ec:cafe::5e) by BN0PR04CA0105.outlook.office365.com (2603:10b6:408:ec::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.27 via Frontend Transport; Tue, 29 Dec 2020 22:14:08 +0000 Received: from mail-io1-f44.google.com (209.85.166.44) by BN8NAM11FT041.mail.protection.outlook.com (10.13.177.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.29 via Frontend Transport; Tue, 29 Dec 2020 22:14:08 +0000 Received: by mail-io1-f44.google.com with SMTP id m23so13324780ioy.2 for ; Tue, 29 Dec 2020 14:14:08 -0800 (PST) From: David VanHorn To: Microcontroller discussion list - Public. Sender: "piclist-bounces@mit.edu" Date: Tue, 29 Dec 2020 14:13:52 -0800 Subject: Re: [EE] Eliminating external noise through PS Thread-Topic: [EE] Eliminating external noise through PS Thread-Index: AdbeMS31bcN1GJ4GSAilicC0pIsAJg== Message-ID: 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> List-Help: List-Subscribe: , List-Unsubscribe: , In-Reply-To: <5FEB7356.7020408@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: Pass (protection.outlook.com: domain of gmail.com designates 209.85.166.44 as permitted sender) receiver=protection.outlook.com; client-ip=209.85.166.44; helo=mail-io1-f44.google.com; dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=mTy8y6J7I6Wn9zc/rVxuFmp5t8MhD57i7GhctI4B6xU=; b=lSBS0QIFOOxowWN0dt1EI9apFVBFhMOC8NHoL3MkBoivEHohD3nPClMTYU9BbZmc8y lUl6/3h4pq7YQtCPT9fd3lr9UFyFsl5V7hv9+ltNS++mRZJbA7MLY1pj/r7yYKS0w5tD 0+HYspmSsnS+zp+pXq1uZ5NsYjjkOo5SP9lI0aspnREy4/C9EHe4AIspzpuHPd9+tAW/ 6UYVeEjPzpvMsQLW5zsXg3qNxBwCvHesip9ZXrJbmjtDKRNK2locD4LRchr0DJGjnq2S 0pmkhOtOYrV+SqrTTrDknuLdgokefMolwrAbPUAbSiTjNheW8EG5yWwsLRZM18BZiLZQ nrMg== authentication-results: spf=pass (sender IP is 209.85.166.44) smtp.mailfrom=gmail.com; mit.edu; dkim=pass (signature was verified) header.d=gmail.com; mit.edu; dmarc=pass action=none header.from=gmail.com; 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-received: by 2002:a5e:8e07:: with SMTP id a7mr41257671ion.129.1609280048001; Tue, 29 Dec 2020 14:14:08 -0800 (PST) x-topics: [EE] x-content-filtered-by: Mailman/MimeDel 2.1.6 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 What's your reset circuit look like? High enough impedances here can cause these problems. On Tue, Dec 29, 2020, 11:22 AM 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), an= d > >>> it was (expectedly) very clean (on the scope). > >>> (b) disconnected both of the pump wires and plugged it into the femal= e > >>> 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 wer= e > >>> 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 voltag= e > >>>> 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 scop= e > >>> probe > >>>> makes a very effective antenna. Maybe your power rail is cleaner tha= n > 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 fr= om > >>>>> 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 cu= t > 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 suppl= y > >>> 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.jpg > >>>>>>> > >>>>>>> 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 conduct= ed > >>>>>> 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.jpg > >>>>>>> > >>>>>>> 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 di= d > not > >>>>>> help. > >>>>>>> Changing the power supply from an IRM-10-5 (industrial spec, 200m= V > >>>>>>> ripple) to MPM-10-5 (medical spec, 100mV ripple), helped reduce t= he > >>> 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.jpg > >>>>>>> http://orlandorobotbuilders.com/stuff/SMNoise/20201207-SMN-03.jpg > >>>>>>> > >>>>>>> FWIW, this is where it ended up... > >>>>>>> http://orlandorobotbuilders.com/stuff/SMNoise/20201207-SMN-04.jpg > >>>>>>> > >>>>>>> The noise is in the 7Mhz to 30Mhz range (prob even higher). > >>>>>>> I feel like smaller, low-ESR ceramic caps should help, but I doub= t > 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 .