1、我们需要在电机控制的每次FOC计算周期(中断周期125us),要快速访问到旋变的状态数据是否可用,125us是我们一次电机FOC控制的时间,角度速度的读取都在这个时间,大量的调节控制算法全在这个里面,我们能接受故障读取处理的时间约在10us左右。125us还不能全占满了,占满了的话,系统在125us中断外需要处理的很多工作无法正常(如调试CAN数据获取,和其它控制通讯等),所以125us能使用80us是极限能接受的情况。
a、现在8M SCLK下,32bit的时钟周期占时为4us,加上CRC校验数据就位总计需耗时10us;连读3寄存器需要耗时4*10us=40us。(多个故障分别分析判断处理的时间暂时未算,这个时间也不少。 )
b、现在120M主频下,IO读取角度和速度时间(含PRD Even parity时间)各为4us,总计8us。
c、我们的FOC算法,在不同模式处理时间长短不同,占时较长的模式时间约占70–80us。
d、如果在1ms中断中来获取PGA411故障状态,由于125us中断原因,1ms中断中故障读取时间长,在一个1ms周期无法完成,需要2-3ms才能完成,电机IGBT过流超过1ms会爆管。
所以这个SPI故障读取时间对我们来说实在是太长。
2、对于PGA411:
a、在sin,cos信号有接线松脱,故障报出要有及时性,不然电机高速运转,出现此情况会出问题。
b、在sin、cos信号有干扰,能否读到介于故障和正常之间的状态,这样便于发出warning,而不是一下子就是fault。
user151383853:
你可以试试调整一下读取的时序, 比如 pwm 中断一开始就启动 SPI
信号变差是有警告状态的
user5378836:
哈喽,我也在用PGA411做电机控制,我在用HIL上触发正/余弦对地短路(用示波器确认对地短)之后发现,PGA411的faultpin无输出高电平,同时用SPI诊断指令去读取相应寄存器也没有查到相应的故障掩码,请问是我的故障诊断流程有误还是其他问题呢?谢谢!