Part Number:TMS320F28027FOther Parts Discussed in Thread:MOTORWARE, DRV8305
现在正在使用Motorware里的例程
C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\boostxldrv8305_revA\f28x\f2802xF\projects
发现初始化 DRV8305 的程序 并没有往cotrol 寄存器里写,只是从DRV8305里把所有寄存器全部读出来,如下图
请问这些例程中,是如何写DRV8305的,如内部的增益,死区,模式等等,谢谢
Yale Li:
好的,我看一下
,
Yale Li:
在所有motorware的例程中,都是通过handle来对object进行操作[1]:
在proj_lab07.c的第470行是对DRV8305进行操作的地方:
Charles Ji 说:
只是从DRV8305里把所有寄存器全部读出来,如下图
这个是main函数的第282行。
从第297行到第493行是后台运行的 for(;;) 循环,里面主要是第306行到483行的 while() 循环,在系统运行正常的情况下,来做相关运算,并通过上述第470行的语句,将相关参数通过SPI配置到DRV8305。
如果发生了什么错误,从最内层开始说,
第323行到第333行,会失能控制器,失能系统,关闭PWM输出。之后的估算器相关的代码做完相关处理之后,便退出大的while循环;
之后进一步保证封锁PWM输出,重新以缺省参数配置控制器,电机的运行识别标志置0;
程序停在第300行,等待人为干预。—
参考文档:
[1]file:///C:/ti/motorware/motorware_1_01_00_18/docs/motorware_software_architecture.pdf 2.3 Handles
,
Charles Ji:
谢谢,但我看,第470行 写入DRV8305 的变量 ,都是从8305中读出来的(第282行,和 472行),感觉是将8305中的数读出来又写了进去,没有进行真正的初始化写操作(如 设置 gate driver peak sink current,PWM Mode,Dead time)
,
Yale Li:
如我之前所说,都是通过handle来进行操作的。你具体看进去每一个函数就知道了。