我在 DRV8323S 上运行失调电压校准时遇到问题。 当我将 CAL 引脚拉至高电平时、等待约2ms 让驱动器内部校准完成、并通过在约122ms 内平均4096个 ADC 样本来执行我自己的校准、然后将 CAL 引脚再次拉至低电平、SOx 引脚上的电压会发生变化、因此失调电压校准无法消除失调电压。 我使用的是 MOSFET VDS 检测模式、如数据表第44页和第45页所述。
我附上了一个显示 CAL 引脚(CH3)和 SOA 电压(CH1)的屏幕截图。 器件启用后约12ms、CAL 引脚被拉至高电平、然后执行软件校准序列、CAL 被拉至低电平并启用低侧 MOSFET。 问题是此时 SOA 引脚上的电压下降了一个位、这会导致测得的电流出现偏移。 SOA 电压看起来有"噪声"、这是由于 ADC 内部采样电容器充电所致、这是正常现象。
整个波形 | 放大了 CAL 被拉低的部分 |
我尝试了以下步骤来尝试解决此问题、但没有成功:
- 使用 SPI 设置校准位
- 通过 SPI 读回寄存器可确认寄存器已成功写入
- 将 IDRIVE 设置设置设为最小值
- 它会在低侧 FET 导通的情况下执行校准
- 在 CAL 引脚为低电平且所有 FET 均关闭的情况下进行校准(效果与 CAL 引脚为高电平时相同)
- 在没有 RDS (on)电流感应的情况下进行校准、然后再启用它
- 在校准时和未连接电机
- 已验证 VREF 电压是否稳定(3.30V)
- 验证 VCP - VM 电压稳定(11.0V)
- 经验证的 SNA - SHA 电压(Vds)为零(0.0mV)
- 2个不同的板都存在相同的问题
所有三个 CSA 在校准后都会发生 SOx 电压偏移。
在校准之前、通过 SPI 向器件发送以下命令:
drv8323communicate(0b0001101110001000, spi_buf); // unlock registers, set gate drive current for hs
drv8323communicate(0b0010000010001000, spi_buf); // set gate drive current for ls
drv8323communicate(0b0001000000100001, spi_buf); // set 3x pwm mode, clear fault
drv8323communicate(0b0010100000000000, spi_buf); // set ocp deglitch to 2us, ocp level to 0.06v, dead time to 50ns, ocp latched fault
drv8323communicate(0b0011011111100000, spi_buf); // set rdson current sense, 40v/v csa gain
在尝试找到解决方案时、我还注意到、如果我缩短启用器件和将 CAL 引脚拉至高电平之间的12ms 延迟、CSA 校准误差会更大。 将延迟增加到12ms 后、似乎没有提高校准精度。
我将使用 BSZ0901NS MOSFET 进行 RDS (ON)电流检测、以防情况发生重大。 我已经验证、当 IDRIVE 设置为260/MOSFET 时、520mA 的栅极或漏极引脚上没有振铃或过冲。 此 MOSFET 的 RDS (on)在25摄氏度下为1.7毫欧、在150摄氏度下为2.7毫欧、我计划使用在温度传感器上执行软件增益补偿。
从我执行的测试来看、放大器输入的内部短路似乎无法正常工作(因为当所有 FET 都关断且放大器在内部短路时也会发生)、这会导致该问题。 很遗憾,我尝试了很多解决办法,都失败了,我再也不想了。
这是我看到的问题的根本原因吗、有人能建议解决此问题的方法以便我能够正确执行失调电压校准吗?