SLVAFO8A April   2024  – May 2024 DRV8214 , DRV8234

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction: Need for Sensorless Designs
  5. 2Ripple Counting − Concept
    1. 2.1 Ripple Counting Algorithm Details
  6. 3Case Study: Robotic Wheel Drive
    1. 3.1 Robotic Wheel Motor Operating Conditions
    2. 3.2 Tuning Parameters for Ripple Counting
      1. 3.2.1 Resistance Parameters
      2. 3.2.2 KMC and KMC_SCALE
        1. 3.2.2.1 Tuning KMC_SCALE
        2. 3.2.2.2 Tuning KMC
    3. 3.3 Robotic Wheel Motor with Ripple Counting
      1. 3.3.1 Inrush and Steady State Performance
        1. 3.3.1.1 Motor Speed Calculation
      2. 3.3.2 Soft Start
      3. 3.3.3 Loaded Conditions
  7. 4Challenges and Workarounds
    1. 4.1 Low Average Currents
    2. 4.2 Motor Inertia During Stop
    3. 4.3 Inrush
    4. 4.4 High Load Conditions
  8. 5Summary
  9. 6References
  10. 7Revision History

Low Average Currents

Operation at low average current presents challenges due to the reduced signal to noise ratio (SNR). Usually, this happens at:

  1. Low duty cycle during PWM
  2. Low value of motor current's DC component

As shown in Figure 4-1, the current ripples are highly distorted at low average motor current. The device is unable to distinguish between noise and current ripples. For the vacuum robot wheel motor example, this value was observed to be 90mA. The waveform was obtained by setting the PWM duty cycle to 30% at 11V.

 Low Current
                    Performance Figure 4-1 Low Current Performance

The possible workarounds to improve accuracy are listed as follows:

  1. Set FLT_GAIN_SEL to 11b to utilize the full signal range. This assists the digital filter in differentiating between noise and current ripples.
  2. If possible, lower the supply voltage and increase the PWM duty cycle such that average current remains the same. This improves the current ripple waveform.
  3. The SPEED register value fluctuates during the tuning process, thereby facilitating erroneous KMC. Tweak the value of KMC to check if performance improvement is yielded.
  4. Tweak the values of EC_FALSE_PER and EC_MISS_PER registers to see if tuning improves. For a detailed description, refer to the data sheet of DRV8234. As an example, Figure 4-2 shows the performance when EC_FALSE_PER = 10b and EC_MISS_PER = 10b from the default values of 01b. Table 4-1 calculates the accuracy in this case.
     Tweaking Error
                            Corrector Parameters Figure 4-2 Tweaking Error Corrector Parameters
  5. Re-tune the values for INV_R, INV_R_SCALE, KMC, and KMC_SCALE. Make sure that the registers are tuned as per instructions in Section 3.2.1 and Section 3.2.2.
  6. As mentioned in section 8.2.3.1.2.2.2 of the data sheet for DRV8234, multiple pairs of tuned values for KMC and KMC_SCALE exist. Choose another possible pair.
  7. Turn off the error corrector by setting DIS_EC = 1b. This also leads to improved performance as shown in Figure 4-3.
     Error Corrector Turned
                            off Figure 4-3 Error Corrector Turned off
Table 4-1 Improved Accuracy During Low Currents
Parameter 30% Duty Tweaked Error Corrector Registers Error Corrector turned off
Encoder Counts 16 32 32
RC_OUT Counts 28 48 49
Accuracy 116%(1) 100% 102%(2)
Accuracy > 100% indicates that the algorithm counted some extra ripples. The percentage error can be calculated by subtracting the accuracy from 100. Hence, error at 30% duty cycle operation ios 16% over 4 revolutions.
Error when the error corrector is turned off comes down to 2%.