8.4.2.5 Supply Tracking Limiters with Brown Out Prevention
The TAS2564 monitors battery voltage (VBAT) and along with the audio signal to automatically decrease gain when the audio signal peaks exceed a programmable threshold. This helps prevent clipping and extends playback time through end of charge battery conditions. The limiters threshold can be configured to track the monitored voltage below a programmable inflection point with a programmable slope. A minimum threshold sets the limit of threshold reduction from the voltage tracking. Configurable attack rate, hold time and release rate are provided to shape the dynamic response of each limiter. If the ICLA is enabled the actual attenuation is based on the ICLA configuration using the calculated attenuation value of all devices on the selected ICLA bus.
A Brown Out Prevention (BOP) feature provides a priority input to provide a fast response to transient dips in the battery supply (VBAT) which at end of charge conditions that can cause system level brown out. When the selected supply dips below the brown-out threshold the BOP will begin reducing gain at a configurable attack rate. When the VBAT supply rises above the brownout threshold, the BOP will begin to release after the programmed hold time. During a BOP event the limiter updates will be paused. This is to prevent a limiter from releasing during a BOP event. The VBAT limiter is enabled by setting the LIMB_EN bit high.
Table 51. VBAT Tracking Limiter Enable
LIMB_EN |
VALUE |
0
|
Disabled (default) |
1
|
Enabled |
The limiter has a configurable attack rate, hold time and release rate, which are available via the LIMB_ATK_RT[2:0], LIMB_HLD_TM[2:0], LIMB_RLS_RT[2:0] register bits. The limiter attack and release step sizes can be set by configuring the LIMB_ATK_ST[1:0] and LIMB_RLS_ST[1:0] register bits. The rates are based on the number of audio samples and actual time values can be calculated by multiplying by 1/fs. For example the attack rate of 4 samples at 48 ksps would be approximately 83 µs.
Table 52. Limiter Attack Rate
LIMB_ATK_RT[2:0] |
ATTACK RATE (samples/step) |
ATTACK RATE @ 48 ksps (~µs) |
0x0
|
1 |
20 |
0x1
|
2 (default) |
42 |
0x2
|
4 |
83 |
0x3
|
8 |
167 |
0x4
|
16 |
333 |
0x5
|
32 |
666 |
0x6
|
64 |
1300 |
0x7
|
128 |
2700 |
Table 53. Limiter Hold Time
LIMB_HLD_TM[2:0] |
HOLD TIME (samples/step) |
HOLD TIME @ 48ksps (ms) |
0x0
|
0 |
0 |
0x1
|
1920 |
40 |
0x2
|
4800 |
100 |
0x3
|
9600 |
200 |
0x4
|
19200 |
400 |
0x5
|
48000 |
1000 |
0x6
|
96000 (default) |
2000 |
0x7
|
192000 |
4000 |
Table 54. Limiter Release Rate
LIMB_RLS_RT[2:0] |
Release Rate (samples/step) |
RELEASE RATE @ 48 ksps (ms) |
0x0
|
10 |
0.2 |
0x1
|
20 |
0.4 |
0x2
|
40 |
0.8 |
0x3
|
80 |
1.7 |
0x4
|
160 |
3.3 |
0x5
|
320 |
6.7 |
0x6
|
640 (default) |
13.3 |
0x7
|
1280 |
26.7 |
Table 55. Limiter Attack Step Size
LIMB_ATK_ST[1:0] |
STEP SIZE (dB) |
00
|
0.25 |
01
|
0.5 (default) |
10
|
1 |
11
|
2 |
Table 56. Limiter Release Step Size
LIMB_RLS_ST[1:0] |
STEP SIZE (dB) |
00
|
0.25 |
01
|
0.5 (default) |
10
|
1 |
11
|
2 |
A maximum level of attenuation applied by the limiters and brown out prevention feature is configurable via the LIM_MAX_ATN register. This attenuation limit is shared between the features. For instance, if the maximum attenuation is set to 6 dB and the limiters have reduced gain by 4 dB, the brown out prevention feature will only be able to reduce the gain further by another 2 dB. If the limiter or brown out prevention feature is attacking and it reaches the maximum attenuation, gain will not be reduced any further.
The limiter max attenuation LIM_MAX_ATN represent the limit in a 1.X format. To calculate the value to write to the 4 registers by apply the following formula to the desired dB using equation LIMB_MAX_ATN = round(10^(-dB/20)*2^31).
Table 57. Limiter Max Attenuation
LIM_MAX_ATN[31:0] |
ATTENUATION (dB) |
0x7214 82C0
|
-1 |
...
|
... |
0x2D6A 866F
|
-9 (default) |
...
|
... |
0x1326 DD71
|
-16.5 |
The limiter begins reducing gain when the output signal level is greater than the limiter threshold. The limiter can be configured to track selected supply below a programmable inflection point with a minimum threshold value. Figure 38 below shows the limiter configured to limit to a constant level regardless of the selected supply level. To achieve this behavior, set the limiter maximum threshold to the desired level using LIM_TH_MAX. Set the limiter inflection point using LIM_INF_PT below the minimum allowable supply setting. The limiter minimum threshold register LIM_TH_MIN does not impact limiter behavior in this use case.
The VBAT limiter threshold max LIMB_TH_MAX and min LIMB_TH_MIN registers represent the limit in a 5.X format. To calculate the value to write to the 4 registers by apply the following formula to the desired threshold voltage using the equation LIMB_TH_MAX or LIMB_TH_MIN = round(Volts*2^27).
Table 58. VBAT Limiter Maximum Threshold
LIMB_TH_MAX[31:0] |
THRESHOLD (V) |
0x1400 0000
|
2.5 |
...
|
... |
0x4800 0000
|
9 (default) |
...
|
... |
0x7C00 0000
|
15.5 |
Table 59. VBAT Limiter Minimum Threshold
LIMB_TH_MIN[31:0] |
THRESHOLD (V) |
0x1400 0000
|
2.5 |
...
|
... |
0x2000 0000
|
4 (default) |
...
|
... |
0x7C00 0000
|
15.5 |
The VBAT limiter inflection point LIMB_INF_PT represent the limit in a 4.X format. To calculate the value to write to the 4 registers by apply the following formula to the desired infection voltage using the equation LIMB_INF_PT = round(Volts*2^28).
Table 60. VBAT Limiter Inflection Point
LIMB_INF_PT[31:0] |
THRESHOLD (V) |
0x2000 0000
|
2 |
...
|
... |
0x34CC CCCD
|
3.3 (default) |
...
|
... |
0x3000 0000
|
6 |
Figure 39 shows how to configure the limiter to track selected supply below a threshold without a minimum threshold. Set the LIM_TH_MAX register to the desired threshold and LIM_INF_PT register to the desired inflection point where the limiter will begin reducing the threshold with the selected supply. The LIMP_SLOPE[1:0] and LIMB_SLOPE[1:0] register bits can be used to change the slope of the limiter tracking the respective PVDD and VBAT supply.The LIMB_SLOPE[1:0] register bits can be used to change the slope of the limiter tracking the VBAT supply. The default value of 1 V/V will reduce the threshold 1 V for every 1 V of drop in the supply voltage. More aggressive tracking slopes can be programmed if desired. Program the LIM_TH_MIN below the minimum the selected supply to prevent the limiter from having a minimum threshold reduction when tracking the selected supply.
The VBAT limiter tracking slope LIMB_SLOPE[31:0] represent the limit in a 4.X format. To calculate the value to write to the 4 registers by apply the following formula to the desired infection voltage using equation LIMB_SLOPE = round(slope(V/V)*2^28).
Table 61. Limiter VBAT Tracking Slope
LIMB_SLOPE[31:0] |
SLOPE (V/V) |
0x1000 0000
|
1 (default) |
...
|
... |
0x4000 0000
|
4 |
To achieve a limiter that tracks the selected supply below a threshold, configure the limiter as explained in the previous example, except program the LIM_TH_MIN register to the desired minimum threshold. This is shown in Figure 40 below.
The TAS2564 also employs a Brown Out Prevention (BOP) feature that serves as a low latency priority input to the limiter engine that begins attacking the VBAT supply dipping below the programmed BOP threshold. This feature can be enabled by setting the BOP_EN register bit high. It should be noted that the BOP feature is independent of the limiter and will function if enabled, even if the limiter is disabled. The BOP threshold is configured by setting the threshold with register bits BOP_TH.
Table 62. Brown Out Prevention Enable
BOP_EN |
VALUE |
0
|
Disabled |
1
|
Enabled (default) |
The Brownout prevention threshold BOP_TH represent a threshold in a 4.X format. To calculate the value to write to the 4 registers by apply the following formula to the desired brownout threshold using equation BOP_TH = round(Volts*2^28).
Table 63. Brown Out Prevention Threshold
BOP_TH[31:0] |
VBAT THRESHOLD (V) |
0x0000 000 - 0x1FFF FFFF
|
Reserved |
0x2000 0000
|
2.5 |
...
|
... |
0x2E66 6666
|
2.9 (default) |
...
|
... |
0x2000 0000
|
4 |
0x2000 0001 - 0xFFFF FFFF
|
Reserved |
The BOP feature has a separate attack rate BOP_ATK_RT, attack step size BOP_ATK_ST and hold time BOP_HLD_TM from the battery tracking limiter. The BOP feature uses the LIMB_RLS_RT register setting to release after a brown out event. The rates are based on the number of audio samples and actual time values can be calculated by multiplying by 1/fs. For example the attack rate of 4 samples at 48 ksps would be approximately 83 µs.
Table 64. Brown Out Prevention Attack Rate
BOP_ATK_RT[2:0] |
ATTACK RATE (samples/step) |
ATTACK RATE @ 48 ksps (~µs) |
0x0
|
1 |
20 |
0x1
|
2 |
42 |
0x2
|
4 |
83 |
0x3
|
8 |
167 |
0x4
|
16 |
333 |
0x5
|
32 |
666 |
0x6
|
64 |
1300 |
0x7
|
128 |
2700 |
Table 65. Brown Out Prevention Attack Step Size
BOP_ATK_ST[1:0] |
STEP SIZE (dB) |
00
|
0.5 |
01
|
1 (default) |
10
|
1.5 |
11
|
2 |
Table 66. Brown Out Prevention Hold Time
BOP_HLD_TM[2:0] |
HOLD TIME (ms) |
0x0
|
0 |
0x1
|
10 |
0x2
|
25 |
0x3
|
50 |
0x4
|
100 |
0x5
|
250 |
0x6
|
500 (default) |
0x7
|
1000 |
The TAS2564 can also shutdown the device when a brown out event occurs if the BOP_MUTE register bit is set high. For the device to continue playing audio again, the device must transition through a SW/HW shutdown state. Setting the BOP_INF_HLD high will cause the limiter to stay in the hold state (for example never release) after a cleared brown out event until either the device transitions through a mute or SW/HW shutdown state or the register bit BOP_HLD_CLR is written to a high value (which will cause the device to exit the hold state and begin releasing). This bit is self clearing and will always readback low. Figure 42 below illustrates the entering and exiting from a brown out event.
Table 67. Shutdown on Brown Out Event
BOP_MUTE |
VALUE |
0
|
Don't Shutdown (default) |
1
|
Mute then shutdown |
Table 68. Infinite Hold on Brown Out Event
BOP_INF_HLD |
VALUE |
0
|
Use BOP_HLD_TM after Brown Out event (default) |
1
|
Do not release until BOP_HLD_CLR is asserted high |
If the TAS2564 is configured to hold the brownout event until cleared the attenuation will remain until BOP_HLD_CLR register clear is performed. This should be performed by setting the BOP_HLR_CLR bit high, reading the register and then setting the BOP_HLD_CLR back to low.
Table 69. BOP Infinite Hold Clear
BOP_HLD_CLR |
VALUE |
0
|
Don't clear (default) |
1
|
Clear event |
A hard brownout level can be set to shutdown the TAS2564 if the BOP cannot mitigate the drop in battery voltage VBAT. This will shutdown the device and should not be used if the BOP_MUTE is enable. The brownout shutdown will only function if brownout engine is enabled using BOP_EN.
Table 70. Brown Out Shutdown Enable
BOSD_EN |
VALUE |
0
|
Disabled (default) |
1
|
Enabled |
The Brownout prevention shutdown threshold BOSD_TH represent a threshold in a 5.X format. To calculate the value to write to the 4 registers by apply the following formula to the desired brownout threshold using equation BOSD_TH = round(Volts*2^27).
Table 71. Brown Out Shutdown Threshold
BOSD_TH[31:0] |
VBAT THRESHOLD (V) |
0x2000 0000
|
2.5 |
...
|
... |
0x2B33 3333
|
2.7 (default) |
...
|
... |
0x3FFF FFFF
|
3.99 |