Author Topic: Signal integrity of digital and analog signals between high-current PCBs  (Read 208 times)

0 Members and 2 Guests are viewing this topic.

Offline tinfeverTopic starter

  • Regular Contributor
  • *
  • Posts: 179
  • Country: us
  • I like to make life harder for myself
I’m designing the power system for a robot and have a couple questions about mitigating signal integrity problems between the battery management system (BMS), boost converter, and main controller. I’ve attached a block diagram of the system and describe it further down.

My problem is that, under very high motor load, the boost converter is erroneously turning off and oscillating between on and off. I think this is caused by ground potential difference/noise between the boards causing the boost converter board’s controller enable (SYS_EN) signal to briefly appear low, signaling it to turn off. When I hard wire the boost converter to always be on and remove the signal cable, the problem goes away. When I shortened the power wires between the BMS and boost converter from 18 inches to 6 inches, the problem became less common and required even higher motor currents to trigger.

My questions are:
  • What is the most robust way to transmit digital (GPIO and SPI) and analog signals (1 kHz bandwidth, 0-2.5 V range, tolerable error up to 25 mV) between high current PCBs with moderate ground potential difference?
  • Eventually, the boost converter and BMS will be stacked and will use board-to-board connectors for power and signals. I think this will substantially reduce the ground potential difference. Should I still use some sort of isolation or differential signaling between the stacked PCBs?
  • I had a similar problem with the boost converter erroneously turning on under high load due to interference on the boost command signal that I fixed by adding an optocoupler (LTV-816). Since this isn’t actually isolating anything, I think it just makes the BMS boost command input very low impedance. Would a 150 R pull-down resistor on the BMS input pin have had the same effect?

Right now, I think the best solution would be to not have the signal ground wire directly connecting the ground planes of each board to eliminate the ground loops. Then, for digital signals, I think I could use digital isolators, or I could use RS485 transceivers to convert to differential signaling. For analog signals, I think I could treat them like differential signals with the signal ground wire as the negative input and use a difference amplifier like an INA500 to convert them back to single ended on the BMS board. The analog signals aren’t high-precision or high-bandwidth.

More about the system:

The system consists of a 5S li-ion battery pack connected to a BMS PCB which has a microcontroller on it. The BMS supplies a boost converter which supplies both the servo drive and main controller for the robot. When the main controller determines the boost converter should be enabled, it sends a boost command signal (standard 3.3V GPIO) to the BMS MCU. The BMS MCU then enables the boost controller (SYS_EN) and the appropriate number of phases (PH1_EN, PH2_EN) on the boost converter board using more GPIO. In the future, there will be analog phase current and temperature signals sent from the boost converter back to the BMS. The BMS sends telemetry over SPI to the main controller and this currently works fine, likely because the data is verified with a checksum and any erroneous data is dropped.

Right now, the various PCBs are connected with about 6 inches of wire between each, which adds resistance to the ground path and exacerbates the problem. Under high motor load, I’ve measured (using a differential probe) up to about 0.9 V between in the grounds of the BMS and servo drive. I also measured over 5 A returning through the signal ground between the main controller and the BMS.
 

Online moffy

  • Super Contributor
  • ***
  • Posts: 2903
  • Country: au
"What is the most robust way to transmit digital (GPIO and SPI) and analog signals (1 kHz bandwidth, 0-2.5 V range, tolerable error up to 25 mV) between high current PCBs with moderate ground potential difference?"

Use differential signaling, you can use RS485 drivers and receivers.
 

Offline aeg

  • Frequent Contributor
  • **
  • Posts: 399
  • Country: us
change the topology to eliminate the ground offset
 

Online xvr

  • Frequent Contributor
  • **
  • Posts: 873
  • Country: ie
    • LinkedIn
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf