haloudama 发表于 2017-4-12 21:15

有偿求助-基于英飞凌1782的AD2S1210电机控制旋变位置解码

本人现在在调试电机控制程序,旋变芯片选用AD2S1210,控制芯片英飞凌TC1782,现在电机位置获取问题上遇到困难,本人起初参照1210芯片手册上的并行 配置模式时许调试位置程序,时序均参照芯片手册上的要求,时间大小和先后顺序均没有问题,然后结果是程序只能读取一次电机的位置,每次只有复位后才能继续读取更新的位置信息(仍然只能读取一次)。为此查阅了芯片手册上,貌似得出是因为没有进行sample更新位置和速度信息,但是配置模式的时序上没有sample这部分,所以选择在不打破原有时序要求的前提下,在程序的开始添加sample更新位置和速度,添加的结果是对于读取位置没有什么帮助,仍然是只能读取一次;为此又尝试了并行普通模式,这种方式的结果是每次都在变化(在电机不动,只上弱电的情况下);最后选用串口的IO模拟spi,但是由于现在的时间要求均是纳秒,模拟的时钟结果波形很乱,没有明显的方波趋势,读取也没有结果。
求助各位路过的大神,有做过这方面的帮忙指点一二,有这方面程序的也可以细聊

jiaojiao840626 发表于 2017-4-24 16:36

问题应该出在SPI通信上,在读取完当前的角度值后,需要随便发送一个数到SPI总线下,为读下个角度值做准备
static void read_angle_spi(void)/*resolver*/
{

if (0u == SSC0_STAT.B.BSY)
{
   reading_unsigned_tmp = ((0x1FFF) & (SSC0_usGetData()));
    position_angle=reading_unsigned_tmp>>1;
    SSC0_vSendData(0);//read the next angle
}
页: [1]
查看完整版本: 有偿求助-基于英飞凌1782的AD2S1210电机控制旋变位置解码