主题中讨论的其他器件:EVM430-FR6989、 TIDM-LC-WATERMTR
大家好!
我正在使用 MSP430进行 LC 传感器旋转检测、但在检测金属圆盘时灵敏度非常低、无金属圆盘和金属圆盘之间的差值电压为160mV。
i 使用 L =235uH (GT1128-0、GEMPHIL)且 C=470pF。
如何提高 LC 传感器的灵敏度?
谢谢。
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.
大家好!
我正在使用 MSP430进行 LC 传感器旋转检测、但在检测金属圆盘时灵敏度非常低、无金属圆盘和金属圆盘之间的差值电压为160mV。
i 使用 L =235uH (GT1128-0、GEMPHIL)且 C=470pF。
如何提高 LC 传感器的灵敏度?
谢谢。
您好,
您是否见过 https://www.ti.com/lit/slaa639?
您是否在两信号差值峰值处测量该160mV?
我对电磁阻尼的理解相当生锈、但金属圆盘中的感应电流是对振荡信号的阻尼效应的实际作用。 我预计使金属盘和 LC 传感器更接近会增加阻尼幅度。 对金属盘使用较高电导材料也会有所帮助。
此致、
布兰登·费舍尔
尊敬的 Brandon:
好的、我会将原理图和 PCB 布局发送给您。
您是否在代码中进入了任何低功耗模式? =>是
这是自定义软件吗? =>是的、这是客户软件。
请检查链接(PCB 布局、原理图、金属圆盘、PCB)。
链接: https://drive.google.com/file/d/1cRKrXxMYnjKaEvgf725NB359FCmSK9Ks/view?usp=sharing
谢谢。
LOC,
尊敬的 Brandon:
听起来可能是溢出问题。
=> I RESET 计数器每4次计数。
////////////////////////////////////////// 代码
Rotation_Cnt = ESI_getCounter1 ();
if ((Rotation_Cnt > 3)||(Rotation_Cnt <-3))
{
ESI_PSM_resetCounter (ESICNT2RST|ESICNT1RST|ESICNT0RST);
Rotation_Cnt += Surplus_Rotation_Cnt;
Integer_Rotation_Cnt = Rotation_Cnt / 4;
Surplus_Rotation_Cnt = Rotation_Cnt% 4;
//
FlowVolume += Integer_Rotation_Cnt;
}
谢谢
LOC,
感谢您共享文件 Loc、我将查看它们。
=> I RESET 计数器每4次计数。
////////////////////////////////////////// 代码
Rotation_Cnt = ESI_getCounter1 ();
if ((Rotation_Cnt > 3)||(Rotation_Cnt <-3))
{
ESI_PSM_resetCounter (ESICNT2RST|ESICNT1RST|ESICNT0RST);Rotation_Cnt += Surplus_Rotation_Cnt;
Integer_Rotation_Cnt = Rotation_Cnt / 4;
Surplus_Rotation_Cnt = Rotation_Cnt% 4;
//
FlowVolume += Integer_Rotation_Cnt;}
[/报价]这似乎应该在保持 Rotation_Cnt 受限、 Integer_Rotation_Cnt 的大小、多余 Rotation_Cnt 和 FlowVolume 方面发挥作用?
此致、
布兰登·费舍尔
尊敬的 Brandon:
您是否在程序中的任意时刻运行了一个重校准例程? 如果是、多长时间?
=>每10分钟设置一次 Recalib_ESI 函数。
这些故障需要多长时间才能开始发生?
=> 是随机的。 几天或几小时。
到目前为止、根据用户分享的内容、我看不出发生溢出或软件条件导致丢失周期的明显原因、但这些系统确实需要由于漂移而进行定期重新校准。
=>我不认为原因是溢出。 我检查了水表的体积、当它为 false (计数器值不增加)时、没有任何中断事件。 计数器将正常工作后,它丢失了几十到几百升。
=>您认为原因是 两个信号之间差值的峰值很小吗?
您好,
您的采样率是多少? 如果最大旋转次数超过了由采样率设置的上限、则可能会错过一些计数。 您的流速在此设置中是变化还是恒定?
=>我不认为原因是溢出。 我检查了水表的体积、当它为 false (计数器值不增加)时、没有任何中断事件。 计数器将正常工作后,它丢失了几十到几百升。
[/报价]只是为了澄清一下、您是说您在某个故障事件期间能够观察计数值和中断吗? 这会向我指示信号电平或配置可能有问题。
[/quote]=>您认为原因是 两个信号之间差值的峰值很小吗?
[/报价]这是可能的、但160mV 足够了、我 希望如果正确设置了 DAC 电平、它就能够进行区分。 不过、在系统运行时、峰峰值差异可能会有所不同。
此致、
布兰登·费舍尔
尊敬的 Brandon:
您的采样率是多少? 如果最大旋转次数超过了由采样率设置的上限、则可能会错过一些计数。 您的流速在此设置中是变化还是恒定?
=>同样的速率是72、它是恒定的。 最大旋转次数为2000个 周期/小时(2 m3/h)=> 0.55个周期/秒(0.55升/秒 )
只是为了澄清一下、您是说您在某个故障事件期间能够观察计数值和中断吗? 这会向我指示信号电平或配置可能有问题。
=>是的、我可以通过 NFC 读取器读取计数器的值和中断状态。 当我检查计数器的值不改变、但是水表正在运行(金属盘正在运行)时、我可以检查 NFC 读取器没有发生任何中断事件。 我会将我的配置发送给您(请检查链接: esi_configuration.c)。
不过、在系统运行时、峰峰值差异可能会有所不同。
=>如果你说"你的峰间差异可能会变化,而系统运行",为什么计数器可以再次工作,因为 它丢失了几十到几百升。
谢谢。
此致、
LOC,
尊敬的 Brandon:
您未使用 ESI_TSM_copyTable 函数或 ESI_TSM/PSM_copyTable 函数是否有原因? 您在使用这些时是否遇到问题?
=>我使用了 TIDM-LC-WATERMTR V1中的 PSMtable 和 TSMtable、 由于要直接向寄存器进行写入、因此我没有使用 ESI_TSM_copyTable
您是否使用 FlowESI GUI 生成 TSM/PSM 表?
=>是、但我不使用 FLowESI GUI Generate 的 TSM_TABLE。 您认为我需要尝试使用 FLowESI GUI 中的 TSM_table 吗?
//TMStable FLowESI Generate (可堆叠 FLowESI 生成)
uint16_t gTSMTable[]={
0x0400、// DAC=OFF、CA=OFF、1xACLK
0x202C + CHANNEL_0_SELECTION、// DAC=OFF、CA=OFF、5xESICLK、EXCITATION
0x0404 + CHANNEL_0_SELECTION、// DAC=OFF、CA=OFF、1xACLK
0x0024 + CHANNEL_0_SELECTION、// DAC=OFF、CA=OFF、1xESIFCLK、可调延迟
0x0024 + CHANNEL_0_SELECTION、// DAC=OFF、CA=OFF、1xESIFCLK、可调延迟
0x0024 + CHANNEL_0_SELECTION、// DAC=OFF、CA=OFF、1xESIFCLK、可调延迟
0x0024 + CHANNEL_0_SELECTION、// DAC=OFF、CA=OFF、1xESIFCLK、可调延迟
0x0024 + CHANNEL_0_SELECTION、// DAC=OFF、CA=OFF、1xESIFCLK、可调延迟
0xF134 + CHANNEL_0_SELECTION、// DAC=ON、CA=ON、31xESIFCLK、
0x5974 + CHANNEL_0_SELECTION、// DAC=ON、CA=ON、启用输出锁存器、12xESICLK
0X0401 + CHANNEL_0_SELECTION、// DAC=OFF、CA=OFF、1xACLCK、内部阻尼
0x202C + CHANNEL_1_SELECTION、// DAC=OFF、CA=OFF、5xESICLK、EXCITATION
0x0404 + CHANNEL_1_SELECTION、// DAC=OFF、CA=OFF、1xACLK
0x0024 + CHANNEL_1_SELECTION、// DAC=OFF、CA=OFF、1xESIFCLK、可调延迟
0x0024 + CHANNEL_1_SELECTION、// DAC=OFF、CA=OFF、1xESIFCLK、可调延迟
0x0024 + CHANNEL_1_SELECTION、// DAC=OFF、CA=OFF、1xESIFCLK、可调延迟
0x0024 + CHANNEL_1_SELECTION、// DAC=OFF、CA=OFF、1xESIFCLK、可调延迟
0x0024 + CHANNEL_1_SELECTION、// DAC=OFF、CA=OFF、1xESIFCLK、可调延迟
0xF134 + CHANNEL_1_SELECTION、// DAC=ON、CA=ON、31xESIFCLK、
0x5974 + CHANNEL_1_SELECTION、// DAC=ON、CA=ON、启用输出锁存器、12xESICLK
0x0200、//停止
};
//////////////////////////////////// TIDM-LC-WATERMTR V1可设置 TMStable
//ESI_TSM_copyTable (gTSMTable、sizeof (gTSMTable));
ESITSM0 = 0X0400;// DAC=OFF、CA=OFF、1xACLK、用于 ACLK 同步
ESITSM1 = 0x202C;// DAC=OFF、CA=OFF、5xESICLK、激励 CH.0
ESITSM2 = 0x0404;// DAC=OFF、CA=OFF、1xACLK CH.0
ESITSM3 = 0x0024;// DAC=OFF,CA=OFF,1xESIFCLK,延迟可调通道0
ESITSM4 = 0x0024;// DAC=OFF,CA=OFF,1xESIFCLK,延迟可调通道0
ESITSM5 = 0x0024;// DAC=OFF,CA=OFF,1xESIFCLK,延迟可调通道0
ESITSM6 = 0x0024;// DAC=OFF,CA=OFF,1xESIFCLK,延迟可调通道0
ESITSM7 = 0x0024;// DAC=OFF,CA=OFF,1xESIFCLK,延迟可调通道0
ESITSM8 = 0xF134;// DAC=ON、CA=ON、31xESIFCLK、CH.0
ESITSM9 = 0x5974;// DAC=on、CA=on、输出锁存器启用、12xESICLK CH.0
ESITSM10 = 0X0401;// DAC=OFF、CA=OFF、1xACLCK、内部阻尼 CH.0
ESITSM11 = 0x20AD;// DAC=OFF、CA=OFF、5xESICLK、励磁 CH.1
ESITSM12 = 0x0485;// DAC=OFF、CA=OFF、1xACLK CH.1
ESITSM13 = 0x00A5;// DAC=OFF,CA=OFF,1xESIFCLK,延迟可调通道1
ESITSM14 = 0x00A5;// DAC=OFF,CA=OFF,1xESIFCLK,延迟可调通道1
ESITSM15 = 0x00A5;// DAC=OFF,CA=OFF,1xESIFCLK,延迟可调通道1
ESITSM16 = 0x00A5;// DAC=OFF,CA=OFF,1xESIFCLK,延迟可调通道1
ESITSM17 = 0x00A5;// DAC=OFF,CA=OFF,1xESIFCLK,延迟可调通道1
ESITSM18 = 0xF1B5;// DAC=ON、CA=ON、31xESIFCLK CH.1
ESITSM19 = 0x59F5;// DAC=ON、CA=ON、输出锁存器启用、12xESICLK CH.1
ESITSM20 = 0x0200;//停止
谢谢。
此致、
LOC,
您好,
=>是、但我不使用 FLowESI GUI Generate 的 TSM_TABLE。 您认为我需要尝试使用 FLowESI GUI 中的 TSM_table 吗?
[/报价]是的、如果您还没有、我会尝试一下。
出于好奇心、这个设置是否与这个问题有关、或者您是否在多个电路板上看到过这个设置?
是否可以将磁盘移到更近的位置进行临时测试? 似乎我们已经检查了这里的大多数其他潜在项目。 我知道您的外壳使用了一段固定的距离、但如果您能够找出一种解决方法、它会告诉您振幅是否确实是问题所在。
此致、
布兰登·费舍尔