Current Control (ICC)

Integrated Current Controller

The ICC (Integrated Current Controller) is the primary current regulation system providing precise 15-bit current control.

ICC Architecture

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Current Control Loop:

    Setpoint β”€β”€β”€β–Άβ”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    (15-bit)     β”‚ Difference │────▢│Integrator│────▢│   PWM   β”‚
                 β”‚    Amp     β”‚     β”‚  (ICC)   β”‚     β”‚  Driver β”‚
                 β””β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜
                       β”‚                                   β”‚
                       β”‚    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                  β”‚
                       └─────  Current  β”‚β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚  Sense    β”‚        Output
                            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    PWM Frequency: Configurable via PERIOD register
    Dither Overlay: Optional current modulation
    Regulation: Closed-loop with integrator

Current Resolution

15-Bit Precision:

  • Single Mode: 0-2000 mA / 32767 steps = 0.061 mA/step
  • Parallel Mode: 0-4000 mA / 32767 steps = 0.122 mA/step

Setpoint Configuration

Formula:

1
2
TARGET = (I_desired Γ— 32767) / I_max
Where: I_max = 2000mA (single) or 4000mA (parallel)

Examples:

Desired Current TARGET Value Hex
100 mA 1638 0x0666
500 mA 8192 0x2000
1000 mA 16384 0x4000
1500 mA 24576 0x6000
2000 mA 32767 0x7FFF

PWM Frequency Control

PERIOD Register Configuration

1
2
3
4
5
Bits: 15   12  11   10    8 7              0
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚PWM_CTLβ”‚LOW β”‚PERIOD  β”‚   PERIOD      β”‚
     β”‚_PARAM β”‚FREQβ”‚  _EXP  β”‚    _MANT      β”‚
     β””β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Formula:

1
2
3
4
Standard: T_pwm = PERIOD_MANT Γ— 2^PERIOD_EXP Γ— (1/f_sys)
Low Freq: T_pwm = PERIOD_MANT Γ— 8 Γ— 2^PERIOD_EXP Γ— (1/f_sys)

Where f_sys β‰ˆ 8 MHz (internal clock)

Example Calculations:

MANT EXP Low Freq Frequency Period
100 0 No 80 kHz 12.5 Β΅s
100 4 No 5 kHz 200 Β΅s
50 6 Yes 312.5 Hz 3.2 ms

Dither Support

Dither Waveform

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    Current vs Time (Dither Enabled):

    I_max  ┐     β•±β–”β–”β–”β–”β–”β–”β–”β•²     β•±β–”β–”β–”β–”β–”β–”β–”β•²
           β”‚   β•±            β•² β•±            β•²
    I_set  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€O──────────────────
           β”‚                 β•² β•±            β•² β•±
    I_min  β”˜                  β•²___________β•±
           └────────────────────────────────────▢ Time
           ◄─────  T_dither  ─────▢

    Components:
    - Steps: Number of increments in quarter period
    - Flat: Hold time at peak/valley
    - Step Size: Amplitude of each increment

Configuration Registers

  1. DITHER_CLK_DIV: Reference clock period
  2. DITHER_STEP: Steps and flat period
  3. DITHER_CTRL: Step size and control

Dither Amplitude:

1
I_dither = STEPS Γ— STEP_SIZE Γ— 2A / 32767

Dither Period:

1
T_dither = [4Γ—STEPS + 2Γ—FLAT] Γ— t_ref_clk

Dither Use Cases

Application Configuration Purpose
Solenoid Positioning Small steps, high freq Precise position control
Valve Control Medium steps, low freq Smooth flow transitions
Noise Reduction Random steps Break up acoustic noise

Integrator Control

INTEGRATOR_LIMIT Register

1
2
3
4
5
Bits: 15 14              10 9              0
     β”Œβ”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚Rsβ”‚AUTO_LIM_VALUE   β”‚  LIM_VALUE      β”‚
     β”‚  β”‚     _ABS        β”‚    _ABS         β”‚
     β””β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Purpose:

  • Prevents integrator windup
  • Faster settling after setpoint changes
  • Two limits: Normal and Auto (after setpoint change)

Recommended Values:

  • Normal operation: 0x3FF (maximum)
  • Fast response: 0x1FF (reduced)
  • Auto-limit: 0x0FF (aggressive)

Current Measurement

Feedback Mechanism

1
2
3
4
5
6
7
    Measurement Path:

    Load Current ──▢ Sense ──▢ ADC ──▢ Filter ──▢ FB_I_AVG
                       β”‚
                       β”œβ”€β”€β–Ά Min/Max ──▢ FB_IMIN_IMAX
                       β”‚
                       └──▢ DC Calc ──▢ FB_DC

Feedback Registers (Per Channel)

Register Content Update Rate
FB_I_AVG Average current over dither period Dither period
FB_DC PWM duty cycle (0-100%) PWM period
FB_VBAT Average VBAT Configurable
FB_IMIN_IMAX Min/Max current Dither period

Parallel Operation

Channel Pairing

1
2
3
4
5
6
7
8
9
    Available Pairs:

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  CH0    β”‚   CH3   β”‚ ◀── Can be paralleled (4A)
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚  CH1    β”‚   CH2   β”‚ ◀── Can be paralleled (4A)
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚  CH4    β”‚   CH5   β”‚ ◀── Can be paralleled (4A)
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Configuration:

  1. Enter Config Mode
  2. Set CH_PAR_x_y bit in CH_CTRL
  3. Configure both channels identically
  4. Enter Mission Mode
  5. Enable both channels

Current Calculation (Parallel):

1
2
I_total = 4000mA Γ— TARGET / 32767
Max: 4000 mA (4A)

ICC Tuning Guidelines

Response Time vs Stability

1
2
3
4
5
6
7
8
    Fast Response          Stability
    (High Gains)           (Low Gains)

    ◄────────────────────────────────▢
    β”‚         β”‚          β”‚           β”‚
    Unstable  Aggressive  Balanced   Slow

    Recommended: Balanced (middle range)

Parameter Recommendations

Load Type PWM_CTRL_PARAM INT_THRESH Response
Resistive 0x8 0x100 Fast
Inductive (low L) 0x6 0x80 Medium
Inductive (high L) 0x4 0x40 Slow
Solenoid 0x5 0x60 Balanced

Tuning Process

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1. Start with default values
   β”œβ”€ PWM_CTRL_PARAM = 0x6
   β”œβ”€ INT_THRESH = 0x80
   └─ INTEGRATOR_LIMIT = 0x3FF

2. Observe step response
   └─ Apply setpoint step change

3. Adjust based on behavior
   β”œβ”€ Oscillation? β†’ Reduce PWM_CTRL_PARAM
   β”œβ”€ Too slow? β†’ Increase PWM_CTRL_PARAM
   └─ Overshoot? β†’ Reduce INT_THRESH

4. Fine-tune integrator limits
   └─ Reduce for faster settling