-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Current Measurements
In revision H, the sense resistor is 0.5 Ohms, Vsense is 0, and current scaling (CS) is 0x13. This approaches dangerously close to depleting of the super caps per this comment.
{Rsense=0.5, Vsense=1, CS=0x1F} pulls about 1.37 W from the 12V rail:
At 80% worse-case efficiency and 2 W max power draw, this brings us 2-1.37/0.8 = 0.2875W under max permissible power draw.
If we want more current , {Rsense=0.47, Vsense=1, CS=0x1F} pulls 1.47W:
At 80% worse-case efficiency and 2 W max power draw, this brings us 2-1.47/0.8 = 0.1625W under max permissible power draw.
Acoustic Noise
With respect to acoustic noise, {Rsense=0.5, Vsense=1, CS=0x1F} and {Rsense=0.47, Vsense=1, CS=0x1F} are similar to {Rsense=0.5, Vsense=0, CS=0x13} (Rev H). I explored this parameter space, and my conclusion is that the most significant factor on acoustic noise is how much current is drawn by the stepper/driver. The more current that the stepper motor driver pulls while running, the more acoustic noise there is.
Here are the tests I did:
- Changing Vsense while controlling stepper motor driver current draw (by changing Rsense): no audible noise change
- Changing Vsense while controlling stepper motor driver current draw (by changing CS): no audible noise change
- Changing Vsense while keeping Rsense and current scaling the same: yes audible noise change
and:
- Changing CS while controlling stepper motor driver current draw (by changing Rsense): no audible noise change
- Changing CS while controlling stepper motor driver current draw (by changing Vsense): no audible noise change
- Changing CS while keeping Rsense and Vsense the same: yes audible noise change
I didn't test Rsense as an independent variable because my idea was to choose CS and Vsense to minimize acoustic noise and choose Rsense to limit current draw to appropriate levels. However, As long as we constrain current draw to the most amount of current that can be drawn without draining the supercaps, there isn't much we can do about acoustic noise.
Conclusion
The options I've presented are
- {Rsense=0.47, Vsense=1, CS=0x1F}
- {Rsense=0.5, Vsense=1, CS=0x1F}
- {Rsense=0.5, Vsense=0, CS=0x12} (already implemented in 73a83c5)
We could also Vsense=0, and use a higher sense resistor (~0.75 Ohms), but since we're power-limited by the USB port and a higher sense resistance would unnecessarily dissipate more power that could otherwise go to the motor, I propose setting Vsense=1. This is what the TMC2130 datasheet says about Vsense:
The low sensitivity setting (high sense resistor voltage, vsense=0) brings best and most robust current regulation, while high sensitivity (low sense resistor voltage, vsense=1) reduces power dissipation in the sense resistor. The high sensitivity setting reduces the power dissipation in the sense resistor by nearly half.
Here's the datasheet's recommendation regarding selecting sense resistor value:
Choose the sense resistor value so that the maximum desired current (or slightly more) flows at the maximum current setting (IRUN = %11111).
If we want to follow the datasheet's recommendation, {Rsense=0.47, Vsense=1, CS=0x1F} is probably the best option. However, if I'm being honest, I'm not sure there's a discernible significant difference between any of these options.