主题中讨论的其他器件:TMS320F280049、 controlSUITE、 C2000WARE
你(们)好。
我正在寻找 SPRA946应用手册中使用的完整项目源代码。
它涉及到 LVDT 与 DSP 的接口。
DSP 是 TMS320F2810。 我想修改 TMS320F280049的代码。
有人可以帮帮我吗?
非常感谢!
纪尧姆
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.
你(们)好。
我正在寻找 SPRA946应用手册中使用的完整项目源代码。
它涉及到 LVDT 与 DSP 的接口。
DSP 是 TMS320F2810。 我想修改 TMS320F280049的代码。
有人可以帮帮我吗?
非常感谢!
纪尧姆
您好 Guillaume、
1-输入偏移消除和偏移校正之间有何差异
"偏移消除"是指来自换能器次级绕组的交流输入。 使用的解调方法只有在交流输入以零为中心时才有效。 由于我们的 ADC 具有0V 至+3V 的范围、我们希望信号以+1.5V 为中心。 实际上、硬件可能无法做到这一点、因此软件会在解调之前对测量的信号应用小偏移:
标称输入=(ADC_INPUT - InputOffset)<< 4;//标准化 ADC 读数
通过在4个完整的交流周期(160kHz 采样、5kHz 输入频率、128个样本[请参阅下面的 AVG_Buffer_length 定义])内对输入信号求平均值来计算变量"InputOffset"。
"OffsetCorrection"是用于校正最终位置测量中任何固定偏移的变量。 当系统被校准时、这个将由用户负载加载(见下面)。
2 -在计时器2中断功能页23中、您在哪里计算偏移校正变量? 可以提供代码吗?
在代码中、我刚才将其声明为:
_IQ 偏移校正= 4.02;//固定偏移校正
3-如何计算增益调整并将结果应用于 GainCorrection 变量?
与偏移类似、"GainCorrection"是用户在传感器校准时确定的固定数字。 我测试了:
_IQ GainCorrection = 10.3;//固定增益校正
该代码还允许线性映射(第25页的"cLinMap")来校正非线性增益。 除了固定的偏移和增益、这也会在校准期间存储。 代码在表中的点之间进行插值以查找偏移。 初始化为零的映射为:
//线性校正映射:
//条目是对位中"位移"的有符号修正
#pragma DATA_SECTION (cLinMap、"LinearityMap")
int cLinMap[LINMAP_LENG]={
0、//[0]-50 mm
0、//[1]-45 mm
0、//[2]-40 mm
0、//[3]-35 mm
0、//[4]-30 mm
0、//[5]-25 mm
0、//[6]-20 mm
0、//[7]-15 mm
0、//[8]-10 mm
0、//[9]-5 mm
0、//[10] 0 mm
0、//[11]+5 mm
0、//[12]+10 mm
0、//[13]+15 mm
0、//[14]+20 mm
0、//[15]+25 mm
0、//[16]+30 mm
0、//[17]+35 mm
0、//[18]+40 mm
0、//[19]+45 mm
0 //[20]+50 mm
};
静态 UINT 步长=(0xFFFF / LINMAP_LENGTH);//线性除法的大小
_IQ 行程;//更正了位移
头文件中有一些与之相关的#defines:
#define sine_cycle_length 32 //正弦查找表的长度
#define Quadr_length (sine_cycle_length>2)//一个象限的长度
#define Quad_Table_length (sine_cycle_length +象限_length)//正交表的总长度
#define AVG_buffer_length 128 //输入平均缓冲区
#define PHASE_BUFFER_LENGTH 32 //相位检测缓冲器的长度
#define PLECK_buffer_length 512 //平滑缓冲区的长度
#define LINMAP_LENGTH 21 //线性映射的长度
//正弦波查找表
extern int QuadratureTable[Quad_table_length];
本来会很高兴把这个项目寄给你,但无论如何,我希望这一点能澄清一点。 如果您有其他问题、请回帖。
此致、
Richard
您好 Richard、
谢谢! 工作正常! 我正在处理调制部分。 我对此有一些疑问。
1 -什么是 IQ 格式? 您对它有什么描述吗? 它就像正交? 您是否使用了?
2行中的"InputVoltage =(_IQ)((long) NormalInput<<5);//转换为全局 IQ 格式 您有一个在 Norminput 中包含数字数据的示例以及 InputVoltage 中的结果?
3-为什么需要将 NormalInput 的值乘以32?
我稍后将提出其他问题。
祝你度过美好的一天!
此致
纪尧姆