1
\$\begingroup\$

I have a switching step-down power supply SCM1301A, from which the entire circuit is powered, namely the microcontroller, op-amp, RS-485. I digitize the signal coming from the microwave module, having previously amplified and filtered it. The signal band I need is 5-1000Hz. Everything works fine until I start the exchange via the RS-485 interface. When exchanging via the RS-485 interface, strong noise appears in the signal. enter image description here I tried everything I could to combat this, but I still couldn’t find a solution... Next I will describe everything that I tried and how it affected:

  1. Noise if RS-485 does not work somewhere at the level of 10-15 units.
  2. If the power is 12 V and I start the exchange via RS-485 at a speed of 38400 Baud / s, then the noise will be 195-200 units. If the speed is 2400 baud/s, then the noise is 205 units. If the speed is 230400 Baud/s, then the noise is 45 units. Moreover, in the program I have a number of digital filters, where I divide the entire 5-1000Hz band into 5 200Hz bands. And I see how, as the exchange rate increases, the main noise peak also moves to a higher frequency.
  3. Next, I tried changing the supply voltage at the input of the switching stabilizer. The RS-485 exchange rate is always 38400 Baud/s. Power supply 10 V, noise 50 units. Power supply 12 V, noise 200 units. Power supply 24 V, noise 70 units. Power supply 30 V, noise 85 units.
  4. Moreover, if you look at what happens at the inductor of the switching stabilizer with a 12 V supply, there is no exchange via RS-485: Fig.1. The same thing only there is an exchange via RS-485: Fig. 2. It’s hard to see here, but there is a slight twitching of the signal in the area of ​​the maximum amplitude swing. enter image description here enter image description here
  5. Stabilizer output in the absence of exchange via RS-485: Fig.2. The same thing only with exchange via RS-485: Fig. 3. Here I did not notice any changes... enter image description here enter image description here
  6. I tried to connect 470uF Low ESR capacitors in parallel with capacitor C2, but this had no effect.
  7. If the RS-485 microcircuit is written from a separate source, the noise during the exchange completely disappears.
  8. Next, I raised my 3.3V supply to 3.9V and powered the RS-485 chip through the LDLN025M33R linear regulator. 3.9V is supplied to the input of the LDLN025M33R, and I saw 3.3V at the output. And yet there was still noise when exchanging via RS-485. Next, I powered the LDLN025M33R chip from a separate external 4.5V source. And when exchanging via RS-485, the noise completely disappeared.
  9. If you install an RC filter R = 100 Ohm, C = 1000 μF in front of the power input of the RS-485 microcircuit, then the noise becomes much less, but does not disappear completely.

Perhaps I forgot something, if you have any additional questions, write.

Additional Information: I ran a series of tests and compiled a table. Columns on the right show noise on ADC with RS485 BPS when running (0 for not running)

LDLN025M33R, SSP7903: LDO ; SCM1301A: Buck

What is done 0 1200 4800 19200 57600 230400
MCU/ANALOG: input 9-36V -> SCM1301A 5V -> LDLN025M33R 3.3V. RS-485: external 3.3V 2-3 3-4 5-6 4-5 3-4 2-3
MCU/ANALOG: input 9-36V -> SCM1301A 5V -> LDLN025M33R 3.3V. RS-485: input 9-36V –> SSP7903-3.3 3-5 18-20 30-32 17-18 9-10 4-5
MCU/ANALOG/RS-485: input 9-36V -> SCM1301A 5V -> LDLN025M33R 3.3V 4-5 62-63 109-110 78-79 46-47 12-13
MCU/ANALOG/RS-485: input 9-36V -> SCM1301A 3.3V 12-15 117-120 265-268 198-202 120-124 30-33
MCU/ANALOG/RS-485: input 9-36V -> SCM1301A 3.3V + 470µF solid capacitor in parallel with C2 13-15 124-127 280-285 210-215 130-133 37-39
MCU/ANALOG: input 9-36V -> SCM1301A 3.3V. RS-485: through a 10 Ohm resistor. 470µF solid capacitor in parallel with C2. LPF 34Hz. 12-15 90-95 180-195 69-71 29-31 12-15

The voltage did not change in all tests and is equal to 12V.

I attached part of the PCB layout. The board is double-sided. The second side is completely filled with grounding. enter image description here

\$\endgroup\$
11
  • \$\begingroup\$ Lines A and B connect to the RS-485 to USB converter. \$\endgroup\$
    – red15530
    Commented Mar 14 at 8:40
  • 1
    \$\begingroup\$ Can you explain how things are powered? To where you communicate with RS-485? Do devices on RS-485 bus share a common ground reference? Or are some devices powered with floating mains supplies? Or batteries? \$\endgroup\$
    – Justme
    Commented Mar 14 at 8:46
  • \$\begingroup\$ No ground wired on the SCM1301A ? \$\endgroup\$
    – Antonio51
    Commented Mar 14 at 8:47
  • \$\begingroup\$ @Justme I have UART to RS-485 on my board. Then, through pins A and B, it is connected to an RS-485 to USB converter to a PC. There is a program on the PC that communicates with the microcontroller via reception and transmission. Devices on the RS-485 line have a common ground, but whether it is there or not, the noise is the same. I tried to write my board from the battery, but the noise is still there. \$\endgroup\$
    – red15530
    Commented Mar 14 at 9:53
  • \$\begingroup\$ @Antonio51 I just made a mistake in the diagram. In fact, there is common land there. I'll fix the diagram now. \$\endgroup\$
    – red15530
    Commented Mar 14 at 9:57

1 Answer 1

3
\$\begingroup\$

A bit of ripple on your digital supply is normal when current drawn varies (for example when operating a RS485 transmitter, blinking a LED, etc). The switching converter then convert varying current draw into varying noise spectrum. The real issue is not preventing this, because that's not really possible, switching converter is going to do it anyway. Besides, MCU and RS485 don't need very clean power supply.

The issue is preventing this noise from getting into your analog circuit.

enter image description here

Power supply voltage is used as an input to your analog circuit.

The top right 3V3 is filtered by a 10µF cap, presumably a MLCC, with 50k impedance, which forms a lowpass filter with a cutoff of 0.3Hz. That should be good, although if C15 is a ceramic it will act as a piezo microphone, with the high impedance of R26 and 266 you may have some noise in the output from board vibratin.

Top left 3V3 is filtered by 150R+100µF, so the lowpass corner frequency is 10 Hz, but if this is a general purpose aluminium cap it will have ESR in the tens of ohms so supply noise will not be attenuated much. This is the most likely culprit.

On the bottom left 3V3 is output directly to power the sensor which may be sensitive to it.

There is also the question of the opamp's PSRR, which is probably not going to be that good at the noise frequency generated by the DC-DC.

The other hidden input is the MCU's ADC voltage reference. But the opamp on the right has quite a lot of gain which amplifies any noise picked up, so I think reference noise effects will be small compared to noise injected into the signal.

I'd say replace C11 with a low ESR model to diagnose. Then try powering the sensor with a clean 3V3 from a bench supply.

Can't see the layout, so no comment, but if the DC-DC is close to the analog circuit it can also pump noise into it via magnetic, capacitive, or common impedance coupling via ground.


enter image description here

Red is AC gain from input to output.

Green is AC gain from 3V3 powering the transistor to output.

Blue is AC gain from 3V3 powering the opamp's midsupply reference to output.

Due to the circuit's high gain, and the lack of PSRR in the input stage (the transistor gain stage has almost none), supply noise will appear amplified at the output, by a rather large factor, almost 25dB. So RS485 is not the problem, but it reveals the problem, which is sensitivity to power supply noise in the analog stage.

Noise due to the sensor's PSRR will also be amplifier by the circuit's gain, but I have no idea what the sensor is, so can't comment.

Suggestions:

  • Replace the transistor with an opamp having high PSRR in the frequency range of interest, or move the transistor's gain into the first opamp filter stage to eliminate the transistor.

  • Set the buck to something like 4-5V and use separate 3V3 LDOs for: 1) analog circuit, sensor, and MCU with RC filter ; 2) everything else.

  • Add electrolytic capacitor in parallel with C4

\$\endgroup\$
20
  • \$\begingroup\$ I would add some inductance to the filter of the analog circuit as well. \$\endgroup\$
    – EvertW
    Commented Mar 14 at 11:26
  • \$\begingroup\$ @bobflux C11 is a tantalum capacitor. Now I’ve added another 470 µF Low ESR capacitor in parallel to it. When exchanging via RS-485, the noise remained. I tried to power the microwave module from a separate linear power supply, the noise decreased, but did not disappear completely. Also, now I installed, set the output voltage to 4V on the pulse source, and then fed it to the linear source LDLN025M33R, and from the output of LDLN025M33R I powered the entire circuit, except for the RS-485 converter. The noise also decreased, but did not disappear completely. \$\endgroup\$
    – red15530
    Commented Mar 14 at 12:27
  • \$\begingroup\$ It decreased, but by how much? For this kind of debugging it helps to keep track of everything. You can add it to your question. I suggest to use a table with two columns: test condition and result. Also please post layout. You can also try to disable the switching converter and power the whole device with 3V3 from a LDO or a clean linear supply. Also please post layout. \$\endgroup\$
    – bobflux
    Commented Mar 14 at 13:06
  • \$\begingroup\$ @bobflux I tried to add a table with all the tests, but for some reason it does not display normally... I also added a printed circuit board. \$\endgroup\$
    – red15530
    Commented Mar 15 at 8:58
  • \$\begingroup\$ I tried to fix the table, looks OK. There's a LED on the board, but it's not in the schematic. I don't see a resistor in series which is weird. Is the LED used when noise occurs? Why I'm asking this: we're looking for something that draws varying supply current, so a blinking LED would definitely do that. There's also what looks like a wireless transmitter, is it active? \$\endgroup\$
    – bobflux
    Commented Mar 15 at 9:31

Not the answer you're looking for? Browse other questions tagged or ask your own question.