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.
大家好、
我的客户希望在正弦/余弦传感器器件中使用280049、我想知道在这种情况下、我们是否有任何资源或库可以使用。
我的客户仅使用传感器 TAS2440、输出信号为 Sin 和 Cos、并且希望计算用于电机控制的角度
问题:
谢谢!
简森
简森
有关正弦/余弦库的本应用手册可能会有所帮助。 我查看了应用手册、其中确实包含角度计算信息。
遗憾的是、作者不再在 TI 工作、因此我们当前回答问题的能力有限。 请查看它是否对您的客户有所帮助。
此致
Lori
您好、Lori、
我对这个库有一些疑问、
由于我不使用 eQEP、我可以使用精细角度吗?
我发现数据的输入是 uint16 (ADC 转换的结果)、我想知道它的输入是怎样的? 0~3.3V 正弦/余弦?
谢谢
简森
简森
在第1.3.2.2节-表1中显示了库的不同模式。 在模式0和1中、精细角度和粗角在软件中计算、不使用 eQEP。
正弦/余弦编码器通常将信号输出为差分输出。 必须将其连接到差分放大器、才能向 MCU 的 ADC 产生单个信号。
我知道具有以下 连接的3个硬件参考:
注意:3的设计指南包含有关正弦/余弦编码器的详细信息。
您好、Lori、
感谢您的回复。
实际上、我仔细查看了该代码、但仍然有一些问题。
代码中的偏移量需要校正什么?
例如、我的信号输入是0~2048的正弦/余弦。 运行代码后、我可以得到1024的偏移量、这是正确的。 但是、在计算角度时、无法计算正确的角度。 我的理解是1024将用作中心点、即0、2048对应于最大值1、0对应于最小值-1。 然后、在反正切操作中、可以计算正确的0~1 (表示角度的 pu)。值、0~360度)。 但我发现、当我输入0时、相应的 sincorr=-1.5。 当我输入2048时、使用 sincorr=-0.5。 因此、我认为只有在输入为(1024~5120)时才能计算正确的角度值、是这样吗?
PS 我正在使用以下公式进行计算
// fineAngle =_IQ15frac (_IQ15mpy (_IQ15 (4.0)、_IQ15atan2PU (p->coscorr、p->sincorr)));//精细角度为4x、以匹配 QEP 边沿计数器
fineAngle =_IQ15atan2pu (p->coscorr、p->sincorr);//无需 eQEP
如果我想使用此库计算1024~3072的正弦/余弦输入、我该怎么办? (1024对应于-1、3072对应于1以计算角度)
非常感谢
简森
简森
遗憾的是、本代码和应用手册的作者不再在 TI 工作。 我们目前回答问题的能力有限。 如果我能更好地理解、我将在下周初做进一步的研究和回应。
此致
Lori
您好、Lori、
非常感谢您的帮助、我认真研究了此代码。
我认为问题是这样的
代码转换 ADC 输入。
如果 ADC 输入为0~4096、则下巴对应于输出-1~1、这很好。 但是、由于我们的输入信号目前不一定是0~4096 μ A。
例如、正弦和余弦的输入为1024~3072、而下巴的输出为-0.5~+0.5。 这不符合预期。 我正在考虑如何将1024~3072缩放到0~4096。 将输入最大值和最小值设为-1~1。 那么、这应该可以解决问题。您对此有什么意见
//如下所示的代码。输入0~4096输出-1~1
ch0in =(_iq15)((long) p->sindata << 4)-_IQ15 (1.0);//在12位模式下对齐 MSB
ch1in =(_iq15)((long) p->cosdata << 4)-_IQ15 (1.0);
感谢你的帮助
简森
简森
编码器如何连接到 C2000? 接口是否会放大和电平转换差分信号以创建 C28x ADC 的单端输入?
Lori