MC33926 Single Motor Driver

Hi guys. I have my single motor MC33926 driver configured with an arduino. I have logged some sample current feedback from the motor to the arduino. For some reason, there seems to be a lot of noise in my current data, and I have no idea why.

The attached image shows the un-scaled raw data coming from my arduino. Is this normal, or is there some filtering required for the feedback pin?






Some points:

  1. How is the Arduino voltage separated from the motor? Perhaps there is not enough filtering? Try adding a 220 uH inductor in series, and a 1000 uF capacitor in parallel, with the voltage supply to the Arduino, close to the board. Or use a common-mode choke.

  2. Perhaps the current is actually spiky? You might get aliasing reading when PWM is on or off, for example?

  3. What happens if you actually filter the input pin? Start with a 1k resistor and 10 uF capacitor for an RC filter with corner frequency of about 150 Hz and see how that goes.

  4. What is the connection for ground and signal to the Arduino? You may want to use an explicit co-ax or twisted-wire connection for both signal and ground, and tie it to the analog ground pin and analog input pin directly. (This is easier on breadboard Arduinos than on the PCB ones, as the analog ground just goes to ground plane)

In general, I’ve found the Arduino analog ins to be very finicky and sensitive to many kinds of noise, both on the signal itself, and on input voltage.

Some points:

[quote]1) How is the Arduino voltage separated from the motor? Perhaps there is not enough filtering? Try adding a 220 uH inductor in series, and a 1000 uF capacitor in parallel, with the voltage supply to the Arduino, close to the board. Or use a common-mode choke.

  1. Perhaps the current is actually spiky? You might get aliasing reading when PWM is on or off, for example?

  2. What happens if you actually filter the input pin? Start with a 1k resistor and 10 uF capacitor for an RC filter with corner frequency of about 150 Hz and see how that goes.

  3. What is the connection for ground and signal to the Arduino? You may want to use an explicit co-ax or twisted-wire connection for both signal and ground, and tie it to the analog ground pin and analog input pin directly. (This is easier on breadboard Arduinos than on the PCB ones, as the analog ground just goes to ground plane)

In general, I’ve found the Arduino analog ins to be very finicky and sensitive to many kinds of noise, both on the signal itself, and on input voltage.[/quote]

  1. I have the Arduino powered by my computer USB so that I can data log.

  2. For this plot I had my D2 pin set to HIGH, and my D1 pin set to LOW. From what I understood from the spec, this should driving the motor without any pulse width modulation in this setting.

  3. I will give this a try.

  4. Right now I just have the ground and Feedback connected with a jumper. I will try using a twisted pair to see if that is any better.