TroubleshootingArduino

CAN Shield killing PWM on Arduino Pin3

userHead Clyde.Webster 2023-09-09 13:05:01 484 Views0 Replies

I'm running into issues using the CAN V2.0 shield to drive some RMD X6 motors. The motor speed signal is coming in over PWM to PIN3 on an arduino uno from a wireless transceiver. When the motors are powered off I can check and see that the PWM signal is being read correctly, however; as soon as I turn motor power on my PWM signal tanks. Specially the nominal PWM value measured in microseconds sits at about 1500us, and when motor power comes on this drops to about 20us.

 

If I just hard code a value to send to my motors over CAN the motors perform as expected, so the CAN communications are working as expected, it's just that having the CAN on is somehow destroying the PWM value.

 

Wiring is simple in this case (picture attached), Arduino powered by computer, ground and PWM pin coming from receiver, and only CANH and CANL plugged into the CAN shield. All powered off a battery, however the motors are receiving power from a boost converter and the transceiver has it's own buck converter.

 

Resistance across the CAN line is measured at 60 Ohms.

 

Does anyone have any thoughts as to how the CAN shield could be messing with the PWM signal?

 

I also tried plugging the shield into an Arduino MEGA and using pins 18 and 19 to receive the PWM signal, and saw the same issue.