Tool/software:
Hi,
I am running into an issue where I can't get the proper precision when running the drivers in either Automicrostepping Mode or Silent Step Mode. For this application, we are using the DRV8462 driver to run a stepper motor that is connected to a grit roller via timing belt. The grit roller is used to feed in plastic film. We calibrate the motor through the firmware by figuring out the proper steps/mm using an external rotary encoder controlled by an Arduino. We want the Auto Microstepping mode and/or Silent Step Mode because it allows us to run the motor at the speeds we want and at an acceptable noise level. At both settings, they consistently fail the calibration step, and the failure mode appears random (ie: rotary encoder ticks do not correspond to the distance travelled in a linear or correlatable way). However, the interesting part is that when I run the driver with these settings turned off, it consistently passes the calibration process - the main drawback here is that the motor runs too noisy. So 2 main questions come out:
1) What could be the reasons for this discrepancy in performance?
2) What are ways we can get the precision we want and bring down the overall noise level?
Let me know if you have any additional questions. Below is more background information of the calibration process and Project Facts. Thanks in advanced!
---------------------------------------------------------------------------------------
The process after setting up the encoder onto the machine is:
1. Set arbitrary steps/mm value.
2. Tell motor to go a certain distance (50mm in this case)
3. Count how many ticks the encoder counted.
4. Convert the number to ticks and arbitrary steps/mm to the actual distance travelled.
5. Recalculate the new steps/mm value.
6. Verification steps: tell motor to go same distance as in step 2.
7. Count how many ticks the encoder counted.
8. Verify the number of encoder ticks corresponds to the distance travelled within our allowable tolerance.
9. If it is within the allowable tolerance, set the steps/mm value. If it is not, then it is a fail.
Notes: The motor turns at approximately 400 RPM (which comes out to about 500mm/min of paper feeding). Also, we have successfully used this encoder and calibration process for another application.
Other Project Facts:
-We are building a custom PCB for a cutting machine that is driven by 2 bipolar steppers motors (one in the x-axis the other in the y-axis. For the purpose of this, only the y-axis motor is applicable with datasheet attached).
-We are using the DRV8462 motor drivers in SPI mode to take advantage of some of the features available in SPI mode.
-The microcontroller is an Arduino clone, and the firmware is a modified GRBL code (the main modification is adding SPI communication)
-Before making and designing the custom PCB, we tested with the evaluation board hooked up to an Arduino board. The evaluation board was configured using the web based GUI, and the firmware was just the normal GRBL code. It worked fine.
-The cutting machine is using a 48V power supply.