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.
工具/软件:Code Composer Studio
现在我想使用Instaspine-infed.Obviation.The fast encdoer不能很好地,伺服马达控制。
我们需要增量编码器或绝对编码器来测量电气角度。
现在我选择一个基于BISS协议的绝对编码器。
我使用TMS320F 2.8069万M和FPGA实现伺服电机控制。
FPGA读取绝对编码器值,并通过SPI总线将数据发送至2.8069万。
现在我有一些问题和这项计划。
1. 2.8069万和FPGA方案是否合理?
2.我不知道如何使用abssolute编码器,它提供的是电动角度,而不是快速软件编码器。
//生成电机电气角度
ANGLE_PU = EST_getAngle_PU (obj->estHandle);
3. 2.8069万通过SPI从FPGA读取电气角度。
2.8069万读取程序是否可以使用SPI中断?
如何将SPI读取程序添加到instaspine-in送?
谢谢
谢谢,Sean。
1.我发现有人使用 McBSP 读取带BIS-C接口的绝对编码器。
您认为哪种方法更好?
2.请详细说明如何使用绝对位置编码器值作为电气角度,而不 是在lab12中使用iIncremental编码器。
我在lab12b中阅读该程序。
在ctrlQEP.h中,ANGLE_PU等于传感器 电子角度。
//生成电机电气角度
ANGLE_PU = EST_getAngle_PU (obj->estHandle);
//从传感器更新电气角度
ANGLE_PU =电子角度;
电角由 ENC_calcElectAngle()函数计算。
//计算电气角度
ENC_calcElectAngle (encHandle,HAL_getQepPosnCounts (halHandle));
void ENC_calcElectAngle (ENC_HANDLE encHandle,UINT32_t可能计数)
{
ENC_Obj * enc;
uINT32_t临时;
//创建对象指针以进行操作
ENC =(ENC_Obj *) encHandle;
//计算机械角度
temp = posnCounts*en茨->mech_angle_gain;
//添加校准偏移
temp += enc->enc_zero_offset;
//转换为电气角度
temp = temp * enc->num_pole_pairs;
//环绕1.0 (Q24)
temp &=((UINT32_t) 0x00ffffff);
//存储编码器电气角度
ENC->enc_elec_angle =(_IQ)温度;
//更新滑动角度
enc->enc_slip角度= enc_slip角度+-->增量滑移;
//环绕1.0 (Q24)
ENC->enc_slip角度&=((UINT32_t) 0x00ffff);
//添加打滑补偿
temp = temp + enc -> enc_slip角度;
//环绕1.0 (Q24)
temp &=((UINT32_t) 0x00ffffff);
//存储编码器磁力角
ENC->enc_magnetic_angle =(_IQ) temp;
返回;
}// ENC_calc_elec_angle()函数结束
我知道 如何处理电机和绝对编码器之间的对齐。
但我不知道如何将 绝对编码器值设置为 ANGLE_PU,
我只需要将绝对编码器更改为Iq (24)?
请给我一个手~
谢谢~