This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DRV8353: 三相校准功能问题

Part Number: DRV8353

这个芯片初始化在设置CSA寄存器时,在配置其他bit的同时,使能了abc三相校准功能,为什么会导致采样不到abc三相的数据,但是可以采样到1.65V偏置电压,如果只设置CSA寄存器的abc校准,就可以采到数据,参考MIT cheetah电机控制程序。

  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待

  • 您好

    请参阅有关 CSA 自动校准的数据表。 对于 SPI 器件选项、也可以在运行时通过启用 AUTO_CAL 寄存器设置再次进行自动校准。 然后可以使用相应的 CSA_CAL_X 寄存器设置来命令执行自动校准、以重新运行自动校准例程。 在自动校准期间、所有放大器都将配置为最大增益设置值、以提高校准例程的精度。

  • 谢谢回答!我的问题是,设置CSACR寄存器时,为什么需要单独设置CSA_CAL_X 寄存器,才能读到电流数据?我在配置CSACR寄存器其他位时,一起写入了CSA_CAL_X 位,就会导致读不到电流,但是可以读到偏置电流;是因为写入CSA_CAL_X 时,其他配置都被更改了吗?校准完成后需要重新写入?另外还有一个问题就是您说的AUTO_CAL 寄存器,这个写0时,是不是代表写入CSA_CAL_X也无法通过SPI重新启动校准,必须写1启动后,写入CSA_CAL_X才能生效。我第一个问题中,并没有写AUTO_CAL 寄存器。

  • 您好

    您能否确认:在您的问题中、SOx 上通常没有输出。 只有在写入 CSA_CAL_X 时您才看到数据? 只要 SP 上存在电压、SN 引脚就应该有输出到 SOx 上、即使不写入 AUTO_CAL_X 也是我的理解。

  • 没有实际测试过SOx上面的电平,只是通过采样判断是否有数据;但是我现在唯一改变的就是:给 CSA_CAL_X写0,就能读到电流数据,写1就读不到数据,只能读到1.65V的偏置电压;我可以不可以这么理解,不管AUTO_CAL_X写不写1,只要CSA_CAL_X不为0,就会一直触发自动校准,必须要校准完成后,把CSA_CAL_X手动置0,因为现在表现出的现象是这样的

  • 您好

    仅当您将AUTO_CAL_X位设置为1时,才会进行自动校准。

    我认为这个问题在你的代码中的某个位置。 该器件将简单地根据以下公式输出SOx电压:

    然后,这些SOx值将路由到MCU并由MCU的ADC采样

    您是否怀疑设备损坏? 听起来好像是正常的。

  • 设备未损坏,我只是将CSA_CAL_X这三个bit置1后,没有置0,就会出现没有电流的情况;然后,不改变其他的条件,将CSA_CAL_X置0,就可以正常使用

  • 您好

    能否在0x07h寄存器中将CAL_MODE位设置为1? 这应将设备设置为其自动校准例行程序。

    如果此位设置为1,请告诉我该行为是什么。

  • 这个在我没有提问前就已经设置过了,结果是没有区别,只要设置了CSA_CAL_X为1,并且不清零的情况下,就没有电流,但是只要把CSA_CAL_X设置为0,就可以采到电流,所以我的结论是必须要校正完成后,再将CSA_CAL_X设置为0,因为校准结束后并不能自动清零