找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9058|回复: 3
收起左侧

LDC1314电感检测的单片机源程序+PCB原理图(含线圈)中文资料下载

[复制链接]
ID:410569 发表于 2018-10-16 15:33 | 显示全部楼层 |阅读模式
LDC1312-Q1/LDC1314-Q1 适用于电感检测的多通道 12 位电感数字转换器 (LDC)1 特性

制作出来的LDC1314电感检测系统设计实物图如下:
0.jpg 贴片飞线.jpg 程序效果.png

Altium Designer画的LDC1314电路原理图和PCB图如下:(51hei附件中可下载工程文件)
0.png

LDC1314线圈pcb自己可以做,配103电容:
0.png

LDC1314的单片机源程序如下:
  1. /*24Mhz,460800波特率*/
  2. /**********上位机串口发送寄存器地址下位机发送此寄存器数值***********/
  3. /**********************
  4. 适用芯片:
  5. STC15F2K60S2系列
  6. STC15L2K60S2系列
  7. STC15W4K32S4系列
  8. STC12C5A60S2系列(用6-24MHz晶振都可)
  9. **********************/
  10. /***
  11. 没配置不是所有寄存器值都是手册上的那个值目前就发现0x08,0x09 等少量会一样
  12. **/
  13. //#include<152k.h>
  14. #include<154k.h>
  15. #include<INTRINS.h>
  16. #define uchar unsigned char
  17. #define uint  unsigned int  
  18. #define ulong unsigned long
  19. sbit SCL    =P1^7;          //时钟
  20. sbit SDA    =P1^6;          //数据
  21. sbit SD     =P1^5;
  22. sbit INTB   =P1^4;
  23. uchar l,add_1;
  24. #define MAIN_Fosc 24000000L   //定义主时钟
  25. #define Baudrate1 460800L        
  26. #define UART1_BUF_LENGTH 4        //接收缓冲位数
  27. uchar  TX1_Cnt;    //发送计数
  28. uchar  RX1_Cnt;    //接收计数
  29. bit B_TX1_Busy; //发送忙标志        
  30. uchar  idata RX1_Buffer[UART1_BUF_LENGTH]; //接收缓冲
  31. uchar code smb[]="0123456789ABCDEF*#.+-";
  32. void PrintString1(uchar *puts) //发送一个字符串
  33. {
  34.     for (; *puts != 0;  puts++)     //遇到停止符0结束
  35.     {
  36.         SBUF = *puts;
  37.         B_TX1_Busy = 1;
  38.         while(B_TX1_Busy);
  39.     }
  40. }
  41. void    UART1_config()    //使用Timer1做波特率.
  42. {

  43.     TR1 = 0;
  44.     AUXR &= ~0x01;      //S1 BRT Use Timer1;
  45.     AUXR |=  (1<<6);    //Timer1 set as 1T mode
  46.     TMOD &= ~(1<<6);    //Timer1 set As Timer
  47.     TMOD &= ~0x30;      //Timer1_16bitAutoReload;
  48.     TH1 = (uchar)((65536UL - (MAIN_Fosc / 4) / Baudrate1) / 256);
  49.     TL1 = (uchar)((65536UL - (MAIN_Fosc / 4) / Baudrate1) % 256);
  50.     ET1 = 0;    //禁止中断
  51.     INT_CLKO &= ~0x02;  //不输出时钟
  52.     TR1  = 1;         
  53.     SCON = (SCON & 0x3f) | 0x40;    //UART1模式, 0x00: 同步移位输出, 0x40: 8位数据,可变波特率, 0x80: 9位数据,固定波特率, 0xc0: 9位数据,可变波特率
  54. //  PS  = 1;    //高优先级中断
  55.     ES  = 1;    //允许中断
  56.     REN = 1;    //允许接收
  57.     P_SW1 &= 0x3f;
  58.     P_SW1 |= 0x00;      //UART1 switch to, 0x00: P3.0 P3.1, 0x40: P3.6 P3.7, 0x80: P1.6 P1.7 (必须使用内部时钟)
  59.     B_TX1_Busy = 0;
  60.     TX1_Cnt = 0;
  61.     RX1_Cnt = 0;
  62. }
  63. void UART1_int (void) interrupt 4  // 描述: UART1中断函数。
  64. {
  65.     if(RI)
  66.     {
  67.         RI = 0;
  68.         RX1_Buffer[RX1_Cnt] = SBUF;
  69.         if(++RX1_Cnt >= UART1_BUF_LENGTH)   RX1_Cnt = 0;    //防溢出
  70.     }

  71.     if(TI)
  72.     {
  73.         TI = 0;
  74.         B_TX1_Busy = 0;
  75.     }
  76. }
  77. void Delay5us()
  78. {
  79.         unsigned char i;

  80.         i = 50;
  81.         while (--i);
  82. }
  83. void Delay5us1()
  84. {
  85.         unsigned char i;

  86.         i = 25;
  87.         while (--i);
  88. }
  89. void Delay5us2()
  90. {
  91.         unsigned char i;

  92.         i = 22;                                   
  93.         while (--i);
  94. }
  95. void iicxie7(uchar a,uint b)              //写寄存器
  96. {
  97.         uchar i;
  98.         uchar xa[7];//机器地址
  99.         uchar xb[8];//寄存器地址
  100.         uchar bH[8];//寄存器高8位
  101.         uchar bL[8];//寄存器低8位        
  102.         for(i=0;i<7;i++)//机器地址        //
  103.         {
  104.                 xa[i]=(0x2a&(1<<(6-i)))>>((6-i));
  105.         }
  106.         for(i=0;i<8;i++) //寄存器地址
  107.         {
  108.                 xb[i]=(a&(1<<(7-i)))>>((7-i));
  109.         }
  110.         for(i=0;i<8;i++) //寄存器高8位
  111.         {
  112.                 bH[i]=((b/256)&(1<<(7-i)))>>((7-i));
  113.         }
  114.         for(i=0;i<8;i++) //寄存器低8位
  115.         {
  116.                 bL[i]=((b%256)&(1<<(7-i)))>>((7-i));
  117.         }
  118.         //起始信号
  119.         SDA = 1;                    //拉高数据线
  120.     SCL = 1;                    //拉高时钟线
  121.     Delay5us();                 //延时
  122.     SDA = 0;                    //产生下降沿
  123.     Delay5us();                 //延时
  124.     SCL = 0;                    //拉低时钟线
  125.         Delay5us();                 //延时               
  126.         //发器件地址
  127.         for(i=0;i<7;i++)
  128.         {
  129.                 SDA =xa[i];              //送数据口
  130.                 SCL = 1;                //拉高时钟线                 
  131.                 Delay5us();             //延时
  132.         SCL = 0;                //拉低时钟线
  133.         Delay5us();             //延时        
  134.         }
  135.         //发写信号
  136.         SDA = 0;                //送数据口         
  137.         SCL = 1;                //拉高时钟线
  138.         Delay5us();             //延时
  139.     SCL = 0;                //拉低时钟线
  140.     Delay5us();             //延时        
  141.         //读信号  
  142.         SCL = 1;                //拉高时钟线
  143.         SDA=1;
  144.         
  145.         Delay5us();             //延时
  146.     SCL = 0;                //拉低时钟线
  147.     Delay5us();             //延时        
  148.         //发寄存器地址
  149.         for(i=0;i<8;i++)
  150.         {        
  151.                 SDA =xb[i];              //送数据口         
  152.                 SCL = 1;                //拉高时钟线
  153.                 Delay5us();             //延时
  154.         SCL = 0;                //拉低时钟线
  155.         Delay5us();             //延时        
  156.         }
  157.         //读信号  
  158.         SCL = 1;                //拉高时钟线  
  159.         SDA=1;
  160.         
  161.         Delay5us();             //延时
  162.     SCL = 0;                //拉低时钟线
  163.     Delay5us();             //延时        
  164.         //发寄存器高8位
  165.         for(i=0;i<8;i++)
  166.         {        
  167.                 SDA =bH[i];              //送数据口         
  168.                 SCL = 1;                //拉高时钟线
  169.                 Delay5us();             //延时
  170.         SCL = 0;                //拉低时钟线
  171.         Delay5us();             //延时        
  172.         }
  173.         //读信号  
  174.         SCL = 1;                //拉高时钟线  
  175.         SDA=1;
  176.         
  177.         Delay5us();             //延时
  178.     SCL = 0;                //拉低时钟线
  179.     Delay5us();             //延时        
  180.         //发寄存器低8位
  181.         for(i=0;i<8;i++)
  182.         {        
  183.                 SDA =bL[i];              //送数据口         
  184.                 SCL = 1;                //拉高时钟线
  185.                 Delay5us();             //延时
  186.         SCL = 0;                //拉低时钟线
  187.         Delay5us();             //延时        
  188.         }
  189.         //读信号  
  190.         SCL = 1;                //拉高时钟线  
  191.         SDA=1;
  192.         
  193.         Delay5us();             //延时
  194.     SCL = 0;                //拉低时钟线
  195.     Delay5us();             //延时               
  196.         //结束信号
  197.         SDA = 0;                    //拉低数据线
  198.     SCL = 1;                    //拉高时钟线
  199.     Delay5us();                 //延时
  200.     SDA = 1;                    //产生上升沿
  201.     Delay5us();                 //延时
  202. }         
  203. uint iicfs7(uchar a,b)        //读器件寄存器
  204. {

  205.         uchar i;
  206.         uchar xa[7];
  207.         uchar xb[8];
  208.         uchar REG_data_H,REG_data_L;         
  209.         for(i=0;i<7;i++)
  210.         {
  211.                 xa[i]=(a&(1<<(6-i)))>>((6-i));
  212.         }
  213.         for(i=0;i<8;i++)
  214.         {
  215.                 xb[i]=(b&(1<<(7-i)))>>((7-i));
  216.         }
  217.         //起始信号
  218.         SDA = 1;                    //拉高数据线
  219.     SCL = 1;                    //拉高时钟线
  220.     Delay5us();                 //延时
  221.     SDA = 0;                    //产生下降沿
  222.     Delay5us();                 //延时
  223.     SCL = 0;                    //拉低时钟线
  224.         Delay5us();                 //延时               
  225.         //发器件地址
  226.         for(i=0;i<7;i++)
  227.         {
  228.                 SDA =xa[i];              //送数据口
  229.                 SCL = 1;                //拉高时钟线                 
  230.                 Delay5us();             //延时
  231.         SCL = 0;                //拉低时钟线
  232.         Delay5us();             //延时        
  233.         }
  234.         //发写信号
  235.         SDA = 0;                //送数据口         
  236.         SCL = 1;                //拉高时钟线
  237.         Delay5us();             //延时
  238.     SCL = 0;                //拉低时钟线
  239.     Delay5us();             //延时        
  240.         //读信号  
  241.         SCL = 1;                //拉高时钟线
  242.         SDA=1;
  243.         
  244.         Delay5us();             //延时
  245.     SCL = 0;                //拉低时钟线
  246.     Delay5us();             //延时        
  247.         //发寄存器地址
  248.         for(i=0;i<8;i++)
  249.         {        
  250.                 SDA =xb[i];              //送数据口         
  251.                 SCL = 1;                //拉高时钟线
  252.                 Delay5us();             //延时
  253.         SCL = 0;                //拉低时钟线
  254.         Delay5us();             //延时        
  255.         }
  256.         //读信号  
  257.         SCL = 1;                //拉高时钟线  
  258.         SDA=1;
  259.         
  260.         Delay5us();             //延时
  261.     SCL = 0;                //拉低时钟线
  262.     Delay5us();             //延时        

  263.         //起始信号
  264.         SDA = 1;                    //拉高数据线
  265.     SCL = 1;                    //拉高时钟线
  266.     Delay5us();                 //延时
  267.     SDA = 0;                    //产生下降沿
  268.     Delay5us();                 //延时
  269.     SCL = 0;                    //拉低时钟线
  270.         Delay5us();                 //延时               
  271.         //发器件地址
  272.         for(i=0;i<7;i++)
  273.         {
  274.                 SDA =xa[i];//送数据口         
  275.                 SCL = 1;                //拉高时钟线
  276.                 Delay5us();             //延时
  277.         SCL = 0;                //拉低时钟线
  278.         Delay5us();             //延时        
  279.         }
  280.         //发读信号
  281.         SDA = 1;                //送数据口         
  282.         SCL = 1;                //拉高时钟线
  283.         Delay5us();             //延时
  284.     SCL = 0;                //拉低时钟线
  285.     Delay5us();             //延时        
  286.         //读信号  
  287.         SCL = 1;                //拉高时钟线
  288.         
  289.         Delay5us();             //延时
  290.     SCL = 0;                //拉低时钟线
  291.     Delay5us();             //延时        
  292.         //读数据高8位
  293.         SDA = 1;                    //使能内部上拉,准备读取数据,
  294.     for (i=0; i<8; i++)         //8位计数器
  295.     {
  296.         REG_data_H <<= 1;
  297.         SCL = 1;                //拉高时钟线
  298.         Delay5us1();             //延时
  299.         REG_data_H |= SDA;             //读数据  
  300.                 Delay5us2();
  301.                              
  302.         SCL = 0;                //拉低时钟线
  303.         Delay5us();             //延时
  304.     }
  305.         //发信号  
  306.         SDA=0;                                        //发低电平给1314
  307.         SCL = 1;                //拉高时钟线
  308.         Delay5us();             //延时
  309.     SCL = 0;                //拉低时钟线
  310.     Delay5us();             //延时
  311.         //读数据低8位
  312.         SDA = 1;                    //使能内部上拉,准备读取数据,
  313.     for (i=0; i<8; i++)         //8位计数器
  314.     {
  315.         REG_data_L <<= 1;
  316.         SCL = 1;                //拉高时钟线
  317.         Delay5us1();             //延时
  318.         REG_data_L |= SDA;             //读数据
  319.                 Delay5us1();              
  320.         SCL = 0;                //拉低时钟线
  321.         Delay5us();             //延时
  322.     }
  323.         //发信号  
  324.         SDA=1;                                        //发高电平给1314
  325.         SCL = 1;                //拉高时钟线
  326.         Delay5us();             //延时
  327.     SCL = 0;                //拉低时钟线
  328.     Delay5us();             //延时
  329.         //结束信号
  330.         SDA = 0;                    //拉低数据线
  331.     SCL = 1;                    //拉高时钟线
  332.     Delay5us();                 //延时
  333.     SDA = 1;                    //产生上升沿
  334.     Delay5us();                 //延时

  335. //        return (REG_data_H);
  336. //        return (REG_data_L);
  337.         return (REG_data_L+REG_data_H*256);        
  338. }


  339. void main(void)
  340. {
  341.     P0M1 = 0;   P0M0 = 0;   //设置为准双向口
  342.     P1M1 = 0;   P1M0 = 128;   //设置为准双向口
  343.     P2M1 = 0;   P2M0 = 0;   //设置为准双向口
  344.     P3M1 = 0;   P3M0 = 0;   //设置为准双向口
  345.     P4M1 = 0;   P4M0 = 0;   //设置为准双向口
  346.     P5M1 = 0;   P5M0 = 0;   //设置为准双向口
  347.     P6M1 = 0;   P6M0 = 0;   //设置为准双向口
  348.     P7M1 = 0;   P7M0 = 0;   //设置为准双向口
  349.     SDA = 1;                    //拉高数据线
  350.     SCL = 1;                    //拉高时钟线
  351.     UART1_config();    // 使用Timer1做波特率.
  352.     EA = 1; //允许总中断
  353.     PrintString1("!\r\n");
  354.     iicxie7(0x08,0x04d6);
  355.     iicxie7(0x10,0x000a);
  356.     iicxie7(0x14,0x1002);
  357.     iicxie7(0x19,0x0000);
  358.     iicxie7(0x1b,0x020c);
  359.     iicxie7(0x1e,0x9000);
  360.     iicxie7(0x1a,0x0104);
  361.     while (1)
  362.     {
  363.         uchar n1,n2,n3,n4,n5;
  364.         uint add_1,i;     
  365.         add_1=iicfs7(0x2a,n1);        
  366.         n2=add_1%10000/1000;
  367.         n3=add_1%1000/100;
  368.         n4=add_1%100/10;
  369.         n5=add_1%10;
  370.         SBUF=smb[n2];B_TX1_Busy=1;while(B_TX1_Busy);
  371.         SBUF=smb[n3];B_TX1_Busy=1;while(B_TX1_Busy);
  372.         SBUF=smb[n4];B_TX1_Busy=1;while(B_TX1_Busy);
  373.         SBUF=smb[n5];B_TX1_Busy=1;while(B_TX1_Busy);
  374.         PrintString1("****\r\n");
  375.         i=0;
  376.            while(i!=40000)    //当延迟用太快会死机
  377.         {
  378.             i++;
  379.             if((TX1_Cnt != RX1_Cnt) && (!B_TX1_Busy))   //收到寄存器地址数据
  380.             {
  381.                 n1 = RX1_Buffer[TX1_Cnt];   
  382.                 if(++TX1_Cnt >= UART1_BUF_LENGTH)   TX1_Cnt = 0;
  383. ……………………

  384. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


    适用于汽车电子 应用
    具有符合 AEC-Q100 标准的下列结果:


    •                                          器件温度 1 级:-40°C 至 +125°C 的环境运行温度范围
    •                                          器件人体放电模式 (HBM) 静电放电 (ESD) 分类等级 2
    •                                          器件组件充电模式 (CDM) ESD 分类等级 C5
  •                        易于使用 – 配置要求极低
  •                        单个 IC 最多可测量四个传感器
  •                        具备多条通道,支持对环境和老化条件进行补偿
  •                        多通道远程感测,可将系统成本降至最低
  •                        与中等分辨率和高分辨率选项引脚兼容
    •                                          LDC1312-Q1/LDC1314-Q1:2/4 通道 12 位 LDC
    •                                          LDC1612-Q1/LDC1614-Q1:2/4 通道 28 位 LDC
  •                        支持 1kHz 至 10MHz 的宽传感器频率范围
  •                        功耗:
    •                                          35μA(低功耗休眠模式)
    •                                          200nA(关断模式)
  •                        由 3.3V 电压供电运行
  •                        支持内部或外部基准时钟
  •                        抗直流磁场和磁铁干扰
             简化电路原理图
2 应用
  •                        汽车按钮和旋钮
  •                        线性和旋转编码器
  •                        滑块按钮
  •                        工业与汽车中的金属探测
  •                        流量计
3 说明
LDC1312-Q1 和 LDC1314-Q1 分别是用于电感感测解决方案的 2 通道和 4 通道 12 位电感数字转换器 (LDC)。由于具备多通道且支持远程感测,LDC1312-Q1 和 LDC1314-Q1 能以最低的成本和功耗实现高性能且可靠的电感感测。此类产品使用简便,仅需要传感器频率处于 1kHz 至 10MHz 的范围内即可开始工作。由于支持的传感器频率范围 1kHz 至 10MHz 较宽,因此还支持使用非常小的 PCB 线圈,从而进一步降低感测解决方案的成本和尺寸。
                       器件信息(1)
元件型号
封装
封装尺寸(标称值)
LDC1312-Q1
WSON (12)
4.00 mm × 4.00 mm
LDC1314-Q1
WQFN (16)
4.00 mm × 4.00 mm
  •           要了解所有可用封装,请见数据表末尾的可订购产品附录。
       测量精度与目标距离间的关系
目录
1功能.
2应用
3描述
4修订历史。
5描述持续
6针的配置和功能。
7规格
绝对最大额定参数
ESD评级
4 修订历史记录
5 说明 (续)
LDC1312-Q1 和 LDC1314-Q1 提供匹配良好的通道,可实现差分测量与比率测量。因此,设计人员能够利用一个通道来补偿感测过程中的环境条件和老化条件,例如温度、湿度和机械漂移。得益于易用、低能耗、低系统成本等特性,这些产品有助于设计人员大幅改进现有传感解决方案,从而为所有市场(尤其是消费品和工业应用)中的产品引入全新的感测 功能。相比同类感测技术,电感感测具有更高的性能、可靠性和灵活性,而且系统成本与功耗更低。
LDC1312-Q1 和 LDC1314-Q1 能够通过 I2C 接口轻松进行配置。双通道 LDC1312-Q1 采用 WSON-12 封装,四通道 LDC1314-Q1 采用 WQFN-16 封装。
6引脚的配置和功能
7规格
7.1绝对最大额定参数


MIN          MAX
单位
VDD
供电电压
               5
V
Vi
引脚电压
–0.3      VDD+0.3
V
IA
INx引脚输入电流
–8            8
MA
ID
引脚输入数字电流
–5            5
MA
Tj
接点温度
–55          150
°C
Tstg
保存温度范围
–65          150
°C
绝对最大额定参数下压力之外上市可能会造成永久性损坏设备。这些只是压力等级,并不意味着功能的设备操作这些或任何其他条件下超过推荐的操作条件。长时间暴露在absolute-maximum-rated条件可能影响设备的可靠性。
7.2 ESD评级

单位

静电放电

Human-body model (HBM), per AEC Q100-002(1)
±2000
v

Charged-device model (CDM), perAEC Q100-011
±750
7.3建议操作条件
除非另有说明,所有限制确保在TA = 25°C,VDD = 3.3 V
7.4热性能信息
7.5电特性
Unless otherwise specified, all limits ensured for TA = 25°C, VDD = 3.3 V
7.6时间特征

MIN     NOM    MAX
单位
tWAKEUP苏醒时间
                   2
ms
tWD-TIMEOUT传感器恢复时间
          5.2
ms
7.7开关特性——I2C
7.8典型的特征
常见的测试条件(除非特别说明)传感器感应:2层,32 /层,14毫米直径,PCB电感L = 19.4μH,RP = 5.7 k?2 MHz;传感器电容器:330 pF 1%齿轮/ NP0;目标:铝、1.5毫米厚度;通道=通道0(连续模式);CLKIN = 40 MHz,CHx_FIN_DIVIDER = 0 x1,CHx_FREF_DIVIDER = 0 x001 CH0_RCOUNT = 0 xffff SETTLECOUNT_CH0 = 0 x0100 RP_OVERRIDE = 1,AUTO_AMP_DIS = 1,DRIVE_CURRENT_CH0 x9800 = 0
8.细节描述
8.1概述
导电带接触对象交流电磁(EM)字段将诱发字段等变化,可以使用一个传感器检测到一个电感器。方便,一个电感器和电容器,可以用来构造一个L-C谐振器,也被称为一个L-C槽,可以用来产生一个新兴领域。L-C槽的情况下,磁场扰动的影响是一个明显的转变的电感传感器,可以观察到共振频率的转变。使用这一原则,LDC1312/1314 inductance-to-digital转换器(LDC)措施LC谐振器的振荡频率。设备输出一个数字值与频率成正比。这个频率测量可以被转换成一个等效电感
8.2原理框图
LDC1312 / LDC1314由前端谐振电路驱动程序,紧随其后的是一个多路复用器序列通过活动渠道,连接他们的核心措施和数字化传感器频率(fSENSOR)。核心使用参考频率(fREF)测量传感器的频率。fREF来自一个内部参考时钟(振荡器)或外部提供的时钟。每个通道的数字化输出正比于fSENSOR / fREF的比率。I2C接口是用来支持设备配置和传输数字化主机处理器的频率值。LDC可以放置在关闭模式,节省电流,利用SD销。INTB销可能配置通知主机系统状态的变化。
8.3特性描述
8.3.1时钟构架
图11显示了LDC的时钟分隔器和多路复用器
计时图
LDC1314 only
在图11中关键的时钟是fIN,fREF fCLK。fCLK选择从内部时钟源或外部时钟源(CLKIN)。频率测量参考时钟,fREF来源于fCLK来源。TI建议精密应用程序使用一个外部主时钟提供所需的稳定性和精度要求的应用程序。内部振荡器可用于需要低成本的应用程序,不需要精度高。fINx时钟来自传感器频率通道x,fSENSORx。fREFx和fINx必须满足表1中列出的需求,取决于fCLK(主时钟)是内部或外部.
表一时钟配置要求
模式
时钟输入源
有效的fREFx范围(MHz
有效的finx范围
设置CHx_FIN_DIVIDE R
设置CHx_SETTLECO
设置CHx_RCOUNT
多通道
内部
fREFx < 55
< fREFx /4
≥ b0001 (2
> 3
> 8
外部
fREFx < 40

单通道
外部或内部
fREFx < 35

通道2和3只用于LDC1314
如果fSENSOR≥8.75 MHz,那么CHx_FIN_DIVIDER必须≥2
表2显示所有通道时钟配置寄存器
              表2时钟配置寄存器
通道        时钟       寄存器        领域范围                数值
8.3.2多通道和单通道操作
LDC的多通道方案允许用户保存板空间和支持灵活的系统设计。例如,温度漂移可以经常导致组件值转变,导致传感器的谐振频率的变化。使用2号传感器作为参考提供了消除温度变化的能力。当在多渠道经营模式时,顺序LDC样品活动频道。在单通道模式下,LDC样品单通道,这是可选择的。表3显示的是用于配置寄存器和值单通道或多通道模式。
      表3单和多通道配置寄存器
模式                        寄存器              范围                     数值
每个通道的数字化传感器测量(DATAx)代表传感器频率参考频率的比值。代表一个16位的12位元数据输出结果:DATAx / 212 = fSENSORx / fREFx
传感器的频率可以计算出:
表4显示了包含固定点采样值的寄存器为每个通道。
             表4LDC1314/1312示例数据寄存器
当LDC序列通过多渠道的渠道模式,每个频道的住时间间隔是三部分的总和:传感器激活时间+转换时间+频道切换延迟
传感器激活时间的沉降量传感器振荡稳定所需时间,如图12所示。解决等待时间是可编程的,应该设置为一个值是足够长的时间来允许稳定的振荡。解决等待时间通道x是由:tSx =(CHX_SETTLECOUNT?16)/ fREF
表5显示了配置的寄存器和价值观沉淀时间为每个通道
         通道0      通道0转换                 通道1开关延迟
        传感器激活
                    图12多通道模式排序
                                          振幅校正
                  表5所示沉降时间寄存器配置
任何通道的SETTLECOUNT x必须满足:CHx_SETTLECOUNT≥QSENSORx×fREFx /(16×fSENSORx)
?fSENSORx =频率的传感器通道x
?fREFx =参考频率通道x
?QSENSORx =品质因数的传感器在x频道,可以计算
轮最高结果到下一个整数(例如,如果方程4推荐的最小值为6.08,项目注册7或更高)。L RP和C值可以通过使用德州仪器的WEBENCH?的线圈设计。转换时间表示的数量参考时钟周期用来测量传感器的频率。是设定的CHx_RCOUNT注册通道。任何通道的转换时间x:tCx =(CHx_RCOUNT?16 + 4)/ fREFx
引用计数的值必须选择支持所需数量的有效位(第三)。详情,请参阅应用程序注意优化L LDC161x和LDC1101测量分辨率
          表6所示转换时间配置寄存器,通道0 - 3
典型的信道切换延迟时间之间的转换和传感器的激活的开始后续的渠道是:通道切换延迟= 692 ns + 5 / fref
LDC的确定性转换时间允许数据轮询以固定时间间隔。数据准备国旗(DRDY)也可用于中断驱动系统设计(见寄存器的状态寄存器描述地图)。
一个偏移值可能会从每个数据值减去补偿频率偏移或样本数据的动态范围最大化。应< fSENSORx_MIN / fREFx偏移值。否则,抵消可能是如此巨大,以至于掩盖了lsb的改变。
                 表7所示频率偏移寄存器
在内部,LDC措施与16位分辨率,而转换输出字宽度只有12位。系统中传感器信号变化小于满量程的25%范围内,LDC可以报告转换结果与高分辨率设置输出增益。通道输出增益是适用于所有设备。输出获得可用于应用2比特,3-bit,或4比特转向输出代码为所有渠道,允许访问4 lsb的最初的16位的结果。样品的最高有效位获得时移出。不要使用输出增益如果任何活跃的位元通道切换,的位元通道将会丢失当获得应用。
                  表8所示寄存器输出增益
例子:如果一个通道的转换结果是0 x07a3,OUTPUT_GAIN = 0 x0,输出代码为0 x07a报道。如果OUTPUT_GAIN设置为0 x3在同等条件下,输出代码为0 x7a3报道。原来的4位元(0 x0)不再是可访问的。图14显示了部分的16位样本报告为每个可能的增益设置。
               图14转换数据输出增益
传感器的频率可以由:
?DATAx =转换由于DATA_CHx寄存器
?CHx_OFFSET =抵消OFFSET_CHx寄存器的值集
?OUTPUT_GAIN RESET_DEVICE =输出倍增系数设置。OUTPUT_GAIN注册
8.3.3当前驱动器控制寄存器
表9中列出的寄存器用来控制传感器驱动电流。最后一列的表9中列出的建议应遵循。
自动校准模式是用来确定一个固定的最优传感器驱动电流传感器的设计。这种模式应该只用于在系统原型。
auto-amplitude校正试图保持传感器振荡幅度1.2 v和1.8 v之间通过调整传感器驱动电流之间的转换。启用auto-amplitude校正时,输出数据可能显示non-monotonic行为由于驱动电流的调整。Auto-amplitude校正精度应用程序只建议。
高传感器电流驱动模式可以使驱动传感器线圈与马> 1.5通道0,只有在单通道模式。可以使用此功能时,传感器RP k?低于1。HIGH_CURRENT_DRV寄存器位设置为b1启用这个模式。
                   表9所示当前驱动器控制寄存器
如果RP值的传感器连接到x频道是已知的,可以用来选择表10位的值将被编程到CHx_IDRIVE领域的通道。如果测量RP(传感器和目标之间的最大间距)介于两个表的值,使用当前降低值与RP表10。所有渠道,使用一个相同的传感器/目标配置应该使用相同的IDRIVE价值。
                   表10最大测量RP CHx_IDRIVE值
  测量RP(k?)   CHx_IDRIVE注册字段值,二进制(比特(十五11))    标称电流(μA)
如果不知道RP,以下步骤为自动校准可用于配置所需的驱动电流,要么在系统原型,或在正常启动如果可行:
1.设定目标的最大计划操作距离传感器。
2.设备进入睡眠模式通过设置配置。SLEEP_MODE_EN b0。
3.所示。项目所需的值SETTLECOUNT RCOUNT通道的值。
4所示.启用自动校准通过设置RP_OVERDRIVE_EN b0。
5.把设备从睡眠模式通过设置配置。SLEEP_MODE_EN b1。
6.允许执行至少一个测量装置,与目标稳定(固定)最大工作范围。
7.所示。读取通道从适当的电流驱动价值DRIVE_CURRENT_CHx寄存器(x1f x1e地址                    0,0,0 x20,或0 x21),CHx_INIT_DRIVE领域(位6)。保存这个值。
8.启动期间的正常操作模式,免于CHx_INIT_DRIVE位字段值写入Chx_IDRIVE位字段(比特十五11)。
9.在正常的操作模式,RP_OVERRIDE_EN必须设置为b1强迫固定当前驱动器。
如果当前驱动器导致振荡幅度大于1.8 v,内部ESD钳位电路将变得活跃。这可能导致传感器频率变化,输出值不再代表一个有效的系统状态。如果当前驱动器设置在一个较低的价值,
系统的信噪比性能将下降,在接近于零的目标区间,振荡可能完全停止,输出样本值将所有0。
8.3.4设备状态寄存器
表11中列出的寄存器可以用来读取设备状态
                 表11所示状态寄存器
通道
寄存器
范围
数值
全部
STATUS, addr 0x18
12个字段可以包含各种状态位(15:0)
请参考寄存器映射部分的描述个体的状态位。
全部
ERROR_CONFIG, addr 0x19

12个字段可用于配置错误报告(15:0)
请参考寄存器映射部分的描述单个比特错误配置。
看到状态和ERROR_CONFIG寄存器描述寄存器映射部分。这些寄存器可以触发一个中断配置某些事件的INTB销。必须满足下列条件:
1.错误或状态寄存器必须揭露通过启用相应的寄存器在ERROR_CONFIG寄存器
2.必须启用INTB函数通过设置配置。INTB_DIS为0
当状态寄存器中的一些字段设置,整个状态寄存器内容举行,直到读或者直到DATA_CHx寄存器读。阅读也de-asserts INTB。
中断是通过下列事件:
1。进入睡眠模式
2。加电复位()
3。设备进入关闭模式断言(SD)
4。S / W重置。
5.I2C读状态寄存器的读取状态寄存器将清除任何错误状态设置在状态ERR_CHAN字段和de-assert INTB
设置寄存器配置。INTB_DIS b1禁用INTB函数和持有INTB销高。
8.3.5输入Deglitch过滤器
上面的输入deglitch滤波器抑制EMI和振铃传感器频率。它不影响转换结果,只要其带宽配置上面的最大传感器频率。输入deglitch MUX_CONFIG过滤器可以配置。DEGLITCH注册字段如表12所示。为获得最佳性能,TI建议选择设置超过传感器振荡频率最低。例如,如果最大传感器频率为2.0 MHz,选择MUX_CONFIG。DEGLITCH = b100(3.3兆赫)。
8.4设备功能模式
8.4.1启动模式
当LDC的权力,它进入睡眠模式和将等待配置。一旦设备配置,退出睡眠模式通过设置配置。SLEEP_MODE_EN b0。
TI建议配置LDC在睡眠模式。如果需要更改设置在LDC,返回设备睡眠模式,修改相应的寄存器,然后退出睡眠模式。
8.4.2正常(转换)模式
当操作在正常(转换)模式,LDC是定期采样传感器的频率(s)和生成活动频道(s)的示例输出。
8.4.3睡眠模式
进入睡眠模式通过设置配置。SLEEP_MODE_EN注册字段为1。在这种模式下,设备的配置维护。退出睡眠模式,设置配置。SLEEP_MODE_EN注册字段为0。后设置配置。SLEEP_MODE_EN b0,传感器激活第一转换将在16384年之后开始弗林特时钟周期。在睡眠模式I2C接口功能,以便注册可以执行读取和写入。在睡眠模式,则不执行转换。此外,进入睡眠模式将清晰的转换结果,任何错误条件和de-assert INTB销。
8.4.4关闭模式
SD销设置为高时,LDC将进入关闭模式。关机模式是最低的功率状态。退出关闭模式,设置SD销为低。进入关闭模式将返回所有寄存器的默认状态。
在关闭模式,则不执行转换。此外,进入关闭模式将清除任何错误条件和de-assert INTB销。当设备处于关闭状态,不能读或写的设备通过I2C接口。
8.4.4.1重置
RESET_DEV.RESET_DEV LDC可以重置通过编写。任何活动转换将停止,所有寄存器值将返回默认值。这个寄存器位将始终返回0 b时阅读。
8.5编程
LDC设备使用一个I2C接口访问控制和数据寄存器。
8.5.1 I2C接口规范
LDC使用一个扩展开始顺序与I2C寄存器的访问。I2C接口的最大速度是400 kbit / s。这个序列遵循标准I2C 7位奴隶地址后面跟着一个8位字节指针寄存器设置寄存器地址。当ADDR销设置低,LDC I2C地址是0 x2a;当ADDR销设置高,LDC I2C x2b地址是0。ADDR销不能改变状态后LDC退出关闭模式。
8.6注册地图
8.6.1登记列表
字段表示只保留必须书面表示值,否则可能发生设备操作不当。R / W列显示相应的读写状态字段。R / W的条目显示读和写能力,“R”表明只读的,和一个“W”表示只写。
图17注册表
8.6.2地址0 x00 DATA_CH0
                  图18地址0 x00 DATA_CH0
说明:R / W =读/写;R =只读;- n =值后重置
表13地址0 x00 DATA_CH0字段描述
   
字段
类型
重置
描述
15
CH0_ERR_UR
R
0
通道0转换Under-range错误标志。通过读取bit。
14
CH0_ERR_OR
R
0
通道0转换整个范围错误标志。
13
CH0_ERR_WD
R
0
通道0转换看门狗超时错误标志。通过阅读。
12
CH0_ERR_AE
R
0
通道0转换看门狗超时错误标志。通过阅读。
11
DATA0[11:0]
R
0000 0000 0000
通道0转换结果

8.6.17
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset
说明::R / W =读/写;R =只读;- n =值后重置
Field Descriptions
字段描述
Table 28.   表28。
Bit 字节
  Field 字段
Type 类型
Reset重置
Description描述





Channel 3 Conversion Settling The LDC will use this settling time to allow the LC sensor to stabilize before initiation of a conversion on Channel 3.
通道3转换解决LDC将使用这个沉淀时间允许LC传感器稳定之前启动一个转换频道3。
If the amplitude has not settled prior to the conversion start, an Amplitude error will be generated if reporting of this type of error is enabled
如果振幅没有解决转换开始前,将生成一个振幅错误如果启用了这种类型的错误报告
0x0000: Settle Time (tS3)= 32 ÷ fREF3 0x0001: Settle Time (tS3)= 32 ÷ fREF3 0x0002- 0xFFFF: Settle Time (tS3)= (CH3_SETTLECOUNT?16) ÷ fREF3
0 x0000:解决时间(tS3)= 32÷fREF3 0 x0001:解决时间(tS3)= 32÷fREF3 0 x0002 - 0 xffff:解决时间(tS3)=(CH3_SETTLECOUNT?16)÷fREF3


8.6.18
Figure 34   图34
RESERVED   保留
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset
传说:R / W =读/写;R =只读;- n =值后重置
Table 29  表29
RESERVED   保留
Channel 0 Input Divider Sets the divider for Channel 0 input.
通道0输入分频器设置分频器通道输入0。
Must be set to ≥2 if the Sensor frequency is ≥ 8.75MHz b0000: Reserved.
必须设置为≥2如果传感器频率≥8.75 mhz b0000:保留。
Do not use.    不要使用
CH0_FIN_DIVIDER≥b0001: fin0 = fSENSOR0/CH0_FIN_DIVIDER
CH0_FIN_DIVIDER≥b0001:fin0 = fSENSOR0 / CH0_FIN_DIVIDER
Reserved.保留   Set to b00.设置为b00
Channel 0 Reference Divider Sets the divider for Channel 0 reference.
通道0参考分频器设置分频器通道0参考。
Use this to scale the maximum conversion frequency.
使用这个规模最大的转换频率。
b00’0000’0000: Reserved.
b00‘0000’0000:保留。
Do not use.   不要使用
CH0_FREF_DIVIDER≥b00’0000’0001: fREF0 = fCLK/CH0_FREF_DIVIDER
CH0_FREF_DIVIDER≥b00‘0000’0001:fREF0 = fCLK / CH0_FREF_DIVIDER


P30
8.6.19            
Figure 35.图35
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset
传说:R / W =读/写;R =只读;- n =值后重置
Description  描述


Channel 1 Input Divider.     通道1输入分频器。

Sets the divider for Channel 1 input.  为通道1分频器的输入。

Used when the Sensor frequency is greater than the maximum FIN. b0000: Reserved.
时使用的传感器的频率大于最大FIN. b0000:保留。

Do not use.   不要使用

CH1_FIN_DIVIDER≥b0001: fin1 = fSENSOR1/CH1_FIN_DIVIDER
CH1_FIN_DIVIDER≥b0001:fin1 = fSENSOR1 / CH1_FIN_DIVIDER




Channel 1 Reference Divider.   通道1参考分频器。

Sets the divider for Channel 1 reference.    设置分频器通道1参考。

Use this to scale the maximum conversion frequency.    使用这个规模最大的转换频率。

b00’0000’0000: Reserved.
b00‘0000’0000:保留。
Do not use.    不要使用。



8.6.20
Table 31   表31
Description描述
Channel 2 Input Divider.通道2输入分频器。

Sets the divider for Channel 2 input.设置分频器通道2的输入。

Must be set to ≥2 if the Sensor frequency is ≥ 8.75MHz.必须设置为≥2如果传感器频率≥8.75 mhz。
b0000: Reserved.    b0000:保留。
Do not use.不要使用
CH2_FIN_DIVIDER≥b0001: fIN2 = fSENSOR2/CH2_FIN_DIVIDER
CH2_FIN_DIVIDER≥b0001:fIN2 = fSENSOR2 / CH2_FIN_DIVIDER
Reserved.保留。Set to b00设置为b00
Channel 2 Reference Divider.    通道2参考分频器。
Sets the divider for Channel 2 reference.   设置分频器通道2参考。
Use this to scale the maximum conversion frequency.   使用这个规模最大的转换频率。
b00’0000’0000: Reserved.b00‘0000’0000:保留。
Do not use.不要使用。
CH2_FREF_DIVIDER ≥ b00’0000’0001: fREF2 = fCLK/CH2_FREF_DIVIDER
CH2_FREF_DIVIDER≥b00‘0000’0001:fREF2 = fCLK / CH2_FREF_DIVIDER

P31
8.6.21
Table 32     表32
Description描述
Channel 3 Input Divider.   通道3输入分频器。
Sets the divider for Channel 3 input.   设置分频器通道3的输入。
Must be set to ≥2 if the Sensor frequency is ≥ 8.75MHz.   必须设置为≥2如果传感器频率≥8.75 mhz。
b0000: Reserved.  b0000:保留。
Do not use   .不要使用。
CH3_FIN_DIVIDER≥b0001: fIN3 = fSENSOR3/CH3_FIN_DIVIDER
CH3_FIN_DIVIDER≥b0001:fIN3 = fSENSOR3 / CH3_FIN_DIVIDER
Reserved.保留。Set to b00设置为b00
Channel 3 Reference Divider.   通道3参考分频器。
Sets the divider for Channel 3 reference.    设置分频器通道3参考。
Use this to scale the maximum conversion frequency.   使用这个规模最大的转换频率。

b00’0000’0000: reserved CH3_FREF_DIVIDER ≥ b00’0000’0001: fREF3 = fCLK/CH3_FREF_DIVIDER
b00‘0000’0000:保留CH3_FREF_DIVIDER≥b00‘0000’0001:fREF3 = fCLK / CH3_FREF_DIVIDER

8.6.22
Table 33   表33
Description  描述
Error Channel Indicates which channel has generated a Flag or Error.
误差通道显示的通道产生一个标志或错误。
Once flagged, any reported error is latched and maintained until either the STATUS register or the DATA_CHx register corresponding to the Error Channel is read.
标记后,任何报道错误锁定和维护直到状态寄存器或DATA_CHx寄存器对应错误读取通道。
b00: Channel 0 is source of flag or error.
b00:通道0是国旗或错误的来源。
b01: Channel 1 is source of flag or error.
b01:通道1是国旗或错误的来源。
b10: Channel 2 is source of flag or error (LDC1314 only).
b10:通道2是国旗或错误(仅LDC1314)的来源。

b11: Channel 3 is source of flag or error (LDC1314 only
b11:通道3的国旗或错误(LDC1314只有来源

Conversion Under-range Error b0: No Conversion Under-range error was recorded since the last read of the STATUS register.
转换b0 Under-range错误:没有转换Under-range错误记录自上次读取状态寄存器。
b1: An active channel has generated a Conversion Under-range error.
b1:一个活跃的通道产生一个转换Under-range错误。
Refer to STATUS.
指地位。
ERR_CHAN field to determine which channel is the source of this error.
ERR_CHAN字段来确定哪些通道是这个错误的来源。
Conversion Over-range Error.    转换整个范围的错误。
b0: No Conversion Over-range error was recorded since the last read of the STATUS register.
b0:没有转换里程误差记录自上次读取状态寄存器。
b1: An active channel has generated a Conversion Over-range error.
b1:生成一个活跃的频道转换整个范围的错误。
Refer to STATUS.指地位。
ERR_CHAN field to determine which channel is the source of this error.
ERR_CHAN字段来确定哪些通道是这个错误的来源。
P32
Description    描述
Watchdog Timeout Error b0: No Watchdog Timeout error was recorded since the last read of the STATUS register.
看门狗超时错误b0:没有看门狗超时错误记录自上次读取状态寄存器。
b1: An active channel has generated a Watchdog Timeout error.
b1:一个活跃的通道产生一个看门狗超时错误。
Refer to STATUS.指地位。
ERR_CHAN field to determine which channel is the source of this error.
ERR_CHAN字段来确定哪些通道是这个错误的来源。
Amplitude High Error b0: No Amplitude High error was recorded since the last read of the STATUS register.振幅高错误b0:没有高振幅误差记录自上次读取状态寄存器。
b1: An active channel has generated an Amplitude High error.
b1:一个活跃的通道产生一个幅度高的错误。
Refer to STATUS.   指地位。
ERR_CHAN field to determine which channel is the source of this error.
ERR_CHAN字段来确定哪些通道是这个错误的来源。
Amplitude Low Error b0: No Amplitude Low error was recorded since the last read of the STATUS register.
振幅低错误b0:没有振幅低错误记录自上次读取状态寄存器。

b1: An active channel has generated an Amplitude Low error.
b1:一个活跃的通道产生一个幅度低误差。
Refer to STATUS.   指地位。
ERR_CHAN field to determine which channel is the source of this error.
ERR_CHAN字段来确定哪些通道是这个错误的来源。
Zero Count Error b0: No Zero Count error was recorded since the last read of the STATUS register.
零计数错误b0:没有零计数错误记录自上次读取状态寄存器。
b1: An active channel has generated a Zero Count error.
b1:一个活跃的通道产生一个零计数错误。
Refer to STATUS.   指地位。
ERR_CHAN field to determine which channel is the source of this error.
ERR_CHAN字段来确定哪些通道是这个错误的来源。
Data Ready Flag.    数据准备好了国旗。
b0: No new conversion result was recorded in the STATUS register.
b0:没有新的转换结果被记录在状态寄存器。
b1: A new conversion result is ready.
b1:一个新的转换结果是准备好了。
When in Single Channel Conversion, this indicates a single conversion is available.
在单通道转换,这表明一个转换是可用的。

When in sequential mode, this indicates that a new conversion result for all active channels is now available.在连续的模式,这表明一个新的转换结果对于所有活跃渠道现在是可用的。

Channel 0 Unread Conversion b0: No unread conversion is present for Channel 0.
通道0未读转换b0:没有未读转换为0频道。
b1: An unread conversion is present for Channel 0.
b1:存在一个未读的转换通道0。
Read Register DATA_CH0 to retrieve conversion results.
读寄存器DATA_CH0检索转换结果。
Channel 1 Unread Conversion b0: No unread conversion is present for Channel 1.
通道1未读转换b0:没有未读转换为通道1。
b1: An unread conversion is present for Channel 1.
b1:存在一个未读的转换通道1。
Read Register DATA_CH1 to retrieve conversion results
读寄存器DATA_CH1检索转换结果
Channel 2 Unread Conversion b0: No unread conversion is present for Channel 2.
通道2 b0未读转换:没有未读转换通道2。
b1: An unread conversion is present for Channel 2.
b1:存在一个未读的转换通道2。
Read Register DATA_CH2 to retrieve conversion results (LDC1314 only)
读寄存器DATA_CH2检索转换结果(仅LDC1314)


Channel 3 Unread Conversion b0: No unread conversion is present for Channel 3.
通道3未读转换b0:没有未读转换频道3。
b1: An unread conversion is present for Channel 3.
b1:存在一个未读的转换通道3。
Read Register DATA_CH3 to retrieve conversion results (LDC1314 only)
读寄存器DATA_CH3检索转换结果(仅LDC1314)
8.6.23
Table 34   表34
Description    描述
Under-range Error to Output Register b0: Do not report Under-range errors in the DATA_CHx registers.
Under-range错误输出寄存器b0:不要Under-range DATA_CHx寄存器中的错误报告。
b1: Report Under-range errors in the DATA_CHx.
b1:报告Under-range DATA_CHx中的错误。
CHx_ERR_UR register field corresponding to the channel that generated the error.
CHx_ERR_UR注册字段对应通道生成错误。
Over-range Error to Output Register b0: Do not report Over-range errors in the DATA_CHx registers.
整个范围错误输出寄存器b0:不要里程DATA_CHx寄存器中的错误报告。

b1: Report Over-range errors in the DATA_CHx.
b1:里程DATA_CHx中的错误报告。
CHx_ERR_OR register field corresponding to the channel that generated the error.
CHx_ERR_OR注册字段对应通道生成错误。
Watchdog Timeout Error to Output Register b0: Do not report Watchdog Timeout errors in the DATA_CHx registers.
看门狗超时错误输出寄存器b0:不要DATA_CHx寄存器中看门狗超时错误报告。
b1: Report Watchdog Timeout errors in the DATA_CHx.
DATA_CHx b1:报告看门狗超时错误。
CHx_ERR_WD register field corresponding to the channel that generated the error.
CHx_ERR_WD注册字段对应通道生成错误。
Amplitude High Error to Output Register b0:Do not report Amplitude High errors in the DATA_CHx registers.
振幅高误差输出寄存器b0:不要报告振幅高DATA_CHx寄存器中的错误。
b1: Report Amplitude High errors in the DATA_CHx.
b1:报告振幅高DATA_CHx中的错误。
CHx_ERR_AE register field corresponding to the channel that generated the error.
CHx_ERR_AE注册字段对应通道生成错误。
Amplitude Low Error to Output Register b0: Do not report Amplitude High errors in the DATA_CHx registers.振幅低误差输出寄存器b0:不要报告振幅高DATA_CHx寄存器中的错误。

b1: Report Amplitude High errors in the DATA_CHx.
b1:报告振幅高DATA_CHx中的错误。
CHx_ERR_AE register field corresponding to the channel that generated the error
CHx_ERR_AE注册字段对应通道生成错误
Under-range Error to INTB b0: Do not report Under-range errors by asserting INTB pin and STATUS register.
Under-range错误INTB b0:不要Under-range错误的报告断言INTB销和状态寄存器。
b1: Report Under-range errors by asserting INTB pin and updating STATUS.
b1:Under-range错误的报告断言INTB销和更新状态。
ERR_UR register field.
ERR_UR注册字段。
Over-range Error to INTB b0: Do not report Over-range errors by asserting INTB pin and STATUS register.
里程错误INTB b0:不要里程错误的报告断言INTB销和状态寄存器。
b1: Report Over-range errors by asserting INTB pin and updating STATUS.
b1:里程错误的报告断言INTB销和更新状态。

ERR_OR register field.  ERR_OR注册字段。

Watchdog Timeout Error to INTB b0: Do not report Under-range errors by asserting INTB pin and STATUS register.
看门狗超时错误INTB b0:不要Under-range错误的报告断言INTB销和状态寄存器。

b1: Report Watchdog Timeout errors by asserting INTB pin and updating STATUS.
b1:看门狗超时错误的报告断言INTB销和更新状态。

ERR_WD register field.ERR_WD注册字段。

Amplitude High Error to INTB b0: Do not report Amplitude High errors by asserting INTB pin and STATUS register.
振幅高误差INTB b0:不要振幅高错误的报告断言INTB销和状态寄存器。

b1: Report Amplitude High errors by asserting INTB pin and updating STATUS.
b1:振幅高错误的报告断言INTB销和更新状态。

ERR_AHE register field.    ERR_AHE注册字段。

Amplitude Low Error to INTB b0: Do not report Amplitude Low errors by asserting INTB pin and STATUS register.
振幅低误差INTB b0:不要振幅低错误的报告断言INTB销和状态寄存器。

b1: Report Amplitude Low errors by asserting INTB pin and updating STATUS.
b1:振幅低错误的报告断言INTB销和更新状态。

ERR_ALE register field.ERR_ALE注册字段。

Zero Count Error to INTB b0: Do not report Zero Count errors by asserting INTB pin and STATUS register.
零计数错误INTB b0:不要零计数错误的报告断言INTB销和状态寄存器。

b1: Report Zero Count errors by asserting INTB pin and updating STATUS.
b1:零计数错误的报告断言INTB销和更新状态。

ERR_ZC register field.
ERR_ZC注册字段。

Data Ready Flag to INTB b0: Do not report Data Ready Flag by asserting INTB pin and STATUS register.
数据准备好了国旗INTB b0:不要报告数据准备国旗声称INTB销和状态寄存器。

b1: Report Data Ready Flag by asserting INTB pin and updating STATUS.
b1:报告数据准备好了国旗声称INTB销和更新状态。

DRDY register field.
DRDY注册字段。

P34
8.6.24
Description    描述
Active Channel Selection Selects channel for continuous conversions when MUX_CONFIG.
积极的通道选择选择通道连续MUX_CONFIG时转换。

SEQUENTIAL is 0.顺序是0。

b00: Perform continuous conversions on Channel 0 b01: Perform continuous conversions on Channel 1 b10: Perform continuous conversions on Channel 2 (LDC1314 only) b11: Perform continuous conversions on Channel 3 (LDC1314 only
b00:执行连续转换频道0 b01:执行连续转换频道1 b10:执行连续转换频道2(仅LDC1314)b11:执行连续转换频道3(LDC1314只有

睡眠模式使进入或退出低功耗睡眠模式。
b0:设备是活跃的。
b1:设备处于睡眠模式
传感器覆盖使卢比提供控制传感器当前驱动器转换期间用于Ch. x,基于CHx_IDRIVE领域的程序价值。b0:覆盖了b1:RP覆盖
传感器激活模式选择。为传感器的初始化设置模式。
b0:全电流激活模式——LDC将推动最大传感器电流传感器激活时间短。
b1:低功率激活模式——LDC使用价值设定在DRIVE_CURRENT_CHx传感器激活能耗降到最低。
自动传感器振幅校正禁用设置此位将禁用自动振幅校正算法和停止CHx_INIT_IDRIVE字段的更新。
b0:自动振幅校正
b1:启用自动振幅校正是禁用的。
推荐精度的应用程序。
选择参考频率源
b0:使用内部振荡器作为参考频率
b1:从CLKIN销提供参考频率。
保留。设置为b0
INTB禁用
b0:INTB销时将断言状态寄存器的更新。
b1:INTB销不会断言状态寄存器的更新
高电流传感器驱动
b0:LDC将推动所有渠道与普通传感器电流(1.5 ma max)。
b1:LDC将推动0与当前频道> 1.5 ma。
不支持这种模式如果AUTOSCAN_EN = b1(多通道模式)
保留b00 0001
8.6.25
Table 36
描述
自动扫描模式使b0:连续转换配置的单通道选择。ACTIVE_CHAN注册字段。MUX_CONFIG b1:自动扫描转换选择。RR_SEQUENCE注册字段。
自动扫描序列配置配置多路复用通道序列。LDC将执行一个转换序列中的每个通道选择,然后重新启动序列不断。b00:Ch0 Ch1
b01:Ch0 Ch1,Ch2(仅LDC1314)
b10:Ch0,Ch1,Ch2,Ch3(仅LDC1314)
b11:Ch0 Ch1
保留。必须设置为00 0100 0001
输入deglitch滤波器带宽。选择设置超过振荡坦克振荡频率最低。
b001:1 mhz
b100:3.3 mhz
b101:10 mhz
b111:33 mhz
8.6.26
表37
描述
设备复位写b1重置装置。总是回读0。
保留。设置为b0000
输出增益控制
00:收益= 1(0位转变)
01:收益= 4(2位转变)
10:收益= 8(3位转变)
11:收益= 16(4位转变)
保留,将b0 0000 0000
P36
8.6.27
描述
通道0 L-C传感器驱动电流这个字段定义了驱动电流期间使用的沉淀+转换时间通道0传感器时钟。RP_OVERRIDE_EN必须设置为1。
通道0传感器这个领域当前驱动器存储初始驱动电流计算初始振幅校正阶段。是更新后的振幅校正阶段传感器时钟如果AUTO_AMP_DIS字段没有设置。
保留
表39
描述
通道1 L-C传感器驱动电流这个字段定义了驱动电流通道1的沉淀+转换时间期间使用传感器时钟。RP_OVERRIDE_EN必须设置为1
通道1传感器这个领域当前驱动器存储初始驱动电流计算初始振幅校正阶段。是更新后的振幅校正阶段传感器时钟如果AUTO_AMP_DIS字段没有设置
保留
P37
表40
描述
通道2 L-C传感器驱动电流这个字段定义要使用的驱动电流在沉淀+转换时间的通道2传感器时钟。RP_OVERRIDE_EN必须设置为1。
通道2传感器这个领域当前驱动器存储初始驱动电流计算初始振幅校正阶段。是更新后的振幅校正阶段传感器时钟如果AUTO_AMP_DIS字段没有设置。
保留
8.6.30
表41
描述
通道3 L-C传感器驱动电流这个字段定义要使用的驱动电流在沉淀+转换时间的通道3传感器时钟。RP_OVERRIDE_EN必须设置为1。
通道3传感器这个领域当前驱动器存储初始驱动电流计算初始振幅校正阶段。是更新后的振幅校正阶段传感器时钟如果AUTO_AMP_DIS字段没有设置。
保留
P38
8.6.31
表42
Manufacturer ID = 0x5449
制造商x5449 ID = 0
P39
9应用和实现
请注意
信息在以下应用程序部分不是TI组件规范的一部分,和TI不保证其准确性或完整性。TI的客户负责为他们的目的确定组件的适用性。客户应该验证和测试他们的设计实现确认系统功能。
9.1应用程序信息
9.1.1操作理论
9.1.1.1导电物体在一个新兴领域
一个交流电流流过电感器将生成一个交流磁场。如果一个导电材料(如金属物体,带进附近的电感,磁场会产生循环电流(涡流)表面的导体。
      导电目标
      图49。导体在交流磁场
距离的涡流是一个函数,大小和组成的指挥。涡流产生的磁场,反对原传感器感应产生的场。这种效果相当于一组耦合电感器,传感器感应的涡流的初级绕组和目标对象代表了次级电感。之间的耦合电感是一个函数的传感器电感、电阻率,距离,大小和形状的导电目标。二次绕组的电阻和电感引起的涡流可以建模为一个电阻和电感组件距离依赖第一面(线圈)。图49显示了一个简化的电路模型的耦合线圈传感器和目标。
9.1.1.2 L-C谐振器
可以生成一个EM字段使用L-C谐振器,或L-C坦克。一个拓扑L-C罐是一种并行RL-C建设,如图50所。
应用程序信息(继续)
               军事耦合
目标电阻                线圈串联电阻(Rs)
      图50。电L-C油箱传感器的模型
可以构造一个振荡器通过选频电路(谐振器),获得块在一个封闭的循环。振荡的标准是:(1)环路增益> 1,(2)闭环相移2π的弧度。R-L-C谐振器提供了频率选择性和贡献相移。在共振,被动元件的阻抗(L和C)取消,只留下RP,电路中的损耗(电阻)元素。电压幅值最大化。RP可以用来确定传感器驱动电流。较低的RP需要一个更大的传感器电流保持恒定的振荡幅度。传感器的振荡频率是由:
?C是传感器电容(CTANK + CPAR)
?L是电感
?Q是谐振腔的品质因数。
问可以近似:?RS在哪里交流电感的串联电阻吗
P41
应用程序信息(继续)
德州仪器WEBENCH设计工具可以用于线圈设计、RP的参数值、L和C计算。见http://www.ti.com/webench。RP是一个函数的目标距离、目标材料,和传感器特性。图51显示RP成正比传感器和目标之间的距离。图代表一个14 mm直径PCB线圈(23,4-mil跟踪宽度,4-mil痕迹之间的间距,1盎司铜厚度,FR4)。
         图51。例RP与距离14 mm PCB线圈和2毫米厚的不锈钢的目标
是很重要的配置LDC当前驱动器,这样传感器仍将振荡最小RP值。例如,如果目标距离最近的系统响应如图51是1毫米,然后k?LDC RP值是5。目标是保持足够的传感器可以测量振荡电压,这样传感器频率即使在最低工作距离。有关详细信息,请参阅部分电流驱动控制寄存器设置当前驱动器。
是衡量LDC的电感:
           
?L(d)测量电感传感器,传感器线圈和目标之间的距离d?Linf传感线圈的电感不导电目标(在无穷远目标)?M(d)是互感?fSENSOR =传感器振荡频率传感器线圈和目标之间的距离d?C = CTANK + CPAR 52(11)图显示了一个示例的变化传感器的频率和电感作为距离的函数为14毫米直径PCB线圈(23,4-mil跟踪宽度,4-mil痕迹之间的间距,1盎司铜厚度,FR4)。
应用程序信息(继续)
图52。例子传感器频率、电感与目标距离14 mm PCB线圈和1.5毫米厚铝的目标
没有磁性材料,如黑色金属和铁氧体电感变化,因此测量的频移,只取决于电流的几何图形。温度漂移主要是电感的物理扩张和其他机械系统组件温度改变电流的几何图形。注意,额外的传感器的温度漂移电容器也必须考虑。
在温度效应和温度补偿的额外信息,看到LDC1000温度补偿(SNAA212)
9.2典型的应用程序
使用LDC1312多通道实现的例子。这个例子是代表一个轴向位移应用程序,目标运动的垂直于这个平面线圈。第二通道可用于邻近的第二个目标,也可以用于温度补偿的参考线圈连接
                           图53。多通道应用程序——LDC1312示例
典型的应用程序(继续)
9.2.1设计要求
?设计实例中传感器0用于距离测量和传感器1用于温度补偿:
?使用WEBENCH线圈设计
?目标距离= 0.1厘米
?距离分辨率目标直径= 1厘米= 0.2μm?
?目标材料=不锈钢(SS416)
?PCB层线圈的数量= 2
?应用程序需要500 sps(TSAMPLE = 2000μs)
9.2.2详细设计过程
目标距离,分辨率和直径作为输入WEBENCH设计传感器线圈,产生的线圈设计是一个2层,面积2.5平方厘米,直径1.77厘米,39。RP的值、L和C:RP = 6.6 kΩ,L = 43.9μH,使用L和C,C = 100 pF。fSENSOR = 1/2π√(LC)= 1/2π√(43.9 * 10 - 6 * 100 * 10 - 12)= 2.4 MHz使用一个主时钟40 MHz的系统应用于CLKIN销设置内部时钟频率允许的灵活性。传感器线圈连接通道0(IN0A和IN0B针)。LDC供电后,它会在睡眠模式。项目注册如下(例子设置寄存器通道0只;通道1寄存器可以使用相同的配置):
1。设置分隔器的通道0。(一)因为传感器freqeuncy小于8.75 MHz,传感器分频器可以设置为1,这意味着设置字段CH0_FIN_DIVIDER 0 x1。默认情况下,fIN0 = fSENSOR = 2.4 mhz。(b)的设计约束fREF0 > 4×fSENSOR。20 MHz参考频率满足这个约束,所以参考分频器应设置为2。这是通过设置0 x02 CH0_FREF_DIVIDER字段。陈(c)的组合值。0分频器(0 x14英寸)= 0 x1002登记。
2。项目的结算时间通道0。线圈的计算Q是10(见多通道和单通道操作)。(a)CH0_SETTLECOUNT≥问×fREF0 /(16×fSENSOR0)→5.2,围捕6。提供保证金占系统公差、选择更高的值为10。
(b)注册0应该设定至少10 x10。
(c)解决时间:(10 x 16)/ 20000000 = 8μs陈
(d)的值。0 SETTLECOUNT x000a注册(0 x10)0。
3所示。通道切换延迟是~ 1μs fREF = 20 MHz(见多通道和单通道操作)
4所示。设置转换时间编程的参考计数通道0。转换时间的预算是:TSAMPLE -沉淀时间通道切换延迟= 1000 - 8 - 1 = 991μs
(a)以确定转换时间寄存器的值,使用下面的方程和求解CH0_RCOUNT:转换时间(tC0)=(CH0_RCOUNT?16)/ fREF0。
(b)这导致CH0_RCOUNT值1238十进制(四舍五入)
(c)设置CH0_RCOUNT x04d6注册(0()0。
5。使用默认值ERROR_CONFIG注册(地址0 x19)。默认情况下,不启用中断
6。传感器驱动电流:设置CH0_IDRIVE字段值,读值使用RP = 6.6 kΩ表10。在这种情况下,IDRIVE值应该设置为18(十进制)。INIT_DRIVE当前字段应该设置为0 x00。的总价值DRIVE_CURRENT_CH0寄存器(addr 0 x1e)= 0 x9000。
7所示。程序MUX_CONFIG寄存器
(a)设置AUTOSCAN_EN b1一点启用连续模式
(b)组RR_SEQUENCE b00上启用数据转换两个通道(通道0,通道1)
(c)设置DEGLITCH b100设置输入DEGLITCH滤波器带宽为3.3 mhz,设置超过最低频率振荡槽。(d)的总价值MUX_CONFIG x820c注册(地址0 x1b)是0
8。最后,程序配置寄存器如下:
ACTIVE_CHAN字段设置为b00选择通道0。
    (b)SLEEP_MODE_EN字段设置为b0,使转换。
(c)设置RP_OVERRIDE_EN b1禁用自动校准。
(d)设置SENSOR_ACTIVATE_SEL = b0,完全在传感器激活当前驱动器   (e)AUTO_AMP_DIS字段设置为b1禁用auto-amplitude校正
(f)REF_CLK_SRC字段设置为b1使用外部时钟源。
(g)其他字段设置为默认值。
(h)合并后的配置寄存器的值(地址0 x1a)= 0 x1601。然后读取转换结果通道0和通道1每1000μs从地址0 x00和0 x02登记。
9.2.2.1推荐初始注册配置值
基于部分中的示例配置详细设计过程中,以下推荐注册写入序列:
表44。推荐初始注册配置值(单通道操作)
地址
寄存器名称
评论
0x08
0x04D6
RCOUNT_CH0
引用计数的计算时间需求(1增殖)和解决需求
0x10
0x000A

SETTLECOUNT_ CH0

最低结算时间选择的传感器
0x14

0x1002

CLOCK_DIVIDER S_CH0
CH0_FIN_DIVIDER = 1, CH0_FREF_DIVIDER = 2
0x19

0x0000
ERROR_CONFIG
可以更改默认报告状态和错误条件
0x1B
0x020C
MUX_CONFIG
使Ch 0(连续模式),设置输入deglitch带宽为3.3 mhz
0x1E

0x9000

DRIVE_CURREN T_CH0

集传感器驱动电流在
ch 0
0x1A
0x1601
CONFIG
选择活动频道= ch 0,禁用auto-amplitude校正和autocalibration,使全在传感器激活当前驱动器,选择外部时钟源,醒来设备开始转换。去年因为这个寄存器写必须发生设备配置是不允许在LDC活跃模式。
表45。推荐初始注册配置值(多通道操作)
地址
寄存器名称
评论
0x08
0x04D6
RCOUNT_CH0
引用计数的计算时间需求(1增殖)和解决需求
0x09
0x04D6
RCOUNT_CH1
引用计数的计算时间需求(1增殖)和解决需求
0x10

0x000A
SETTLECOUNT_ CH0

最低结算时间选择的传感器
0x11

0x000A

SETTLECOUNT_ CH1
最低结算时间选择的传感器
0x14

0x1002

CLOCK_DIVIDER S_CH0

CH0_FIN_DIVIDER = 1, CH0_FREF_DIVIDER = 2

0x15
0x1002
CLOCK_DIVIDER S_CH1

CH1_FIN_DIVIDER = 1, CH1_FREF_DIVIDER = 2
0x19
0x0000
ERROR_CONFIG
可以更改默认报告状态和错误条件
0x1B
0x820C
MUX_CONFIG
使Ch 0和Ch 1(序贯模式),设置输入deglitch带宽为3.3 mhz
0x1E

0x9000

DRIVE_CURREN T_CH0
集传感器驱动电流在ch 0
0x1F

0x9000

DRIVE_CURREN T_CH1

集传感器驱动电流在ch 1
表45。推荐初始注册配置值(多通道操作)(继续)
地址
寄存器名称
评论
0x1A
0x1601
CONFIG
禁用auto-amplitude校正和自动校准,使当前驱动器在传感器激活,选择外部时钟源,醒来设备开始转换。去年因为这个寄存器写必须发生设备配置是不允许在LDC活跃模式。
9.2.2.2电感自已谐振频率
     每一个电感器都有分布的寄生电容,这是依赖于建筑和几何学。自已谐振频率(SRF)的电抗电感取消电抗的寄生电容。以上SRF,感应器将电电容器。由于寄生电容不是控制或稳定,TI建议:fSENSOR < 0.8×fSR。
          图54。例子线圈电感与频率
如图54岁的电感器有一个在6.38 MHz SRF;因此,电感器不应高于0.8×6.38 MHz,操作或5.1 MHz。
9.2.3应用曲线
常见的测试条件(除非特别说明):
?传感器感应:2层,32 /层,14毫米直径,PCB电感L = 19.4μH,RP = 5.7 k?2 MHz
?传感器电容器:330 pf 1%齿轮/ NP0
?目标:铝、1.5毫米厚度
?通道=通道0(连续模式)
?CLKIN = 40 MHz,CHx_FIN_DIVIDER = 0 x01 CHx_FREF_DIVIDER = 0 x001
?CH0_RCOUNT = 0 xffff SETTLECOUNT_CH0 = 0 x0100
?RP_OVERRIDE = 1,AUTO_AMP_DIS = 1,DRIVE_CURRENT_CH0 x9800 = 0
图55。典型的输出代码与目标距离(0到14毫米)
图56。在距离与目标距离测量精度(0到10毫米)
10电源建议
?LDC要求在2.7 V和3.6 V电压供应的多层陶瓷绕过X7R电容器μf VDD和接地插脚之间的建议。如果供应位于LDC超过几英寸,可能需要额外的散装电容除了陶瓷旁路电容器。电解电容器的值为10μf是一个典型的选择。
?最优位置最接近的VDD和接地终端设备。应注意尽量减少循环区域由旁路电容器连接,VDD终端,集成电路的接地端子。参见图57和图58布局示例。
11布局
11.1布局的指导方针
避免长时间的传感器连接到LDC痕迹。短痕迹减少寄生参数传感器之间的电感器,并提供更高的系统性能。
11.2布局的例子
图57图60显示LDC1312评价模块(维生素)布局。
布局示例(继续)
     图57。示例PCB布局:顶层(信号)
    图58。1例PCB布局:中间层(接地)
    图59。示例PCB布局:中间层2(权力)
   图60。示例PCB布局:底层(信号)
12设备和文档支持
12.1设备支持
12.1.1开发支持
相关链接,请参见如下:?德州仪器WEBENCH工具
12.2文档支持
12.2.1相关的文档
相关文档,请参阅如下:?LDC1000温度补偿(SNAA212)
12.3社区资源
以下链接连接到TI社区资源。相关内容提供了“是”各自的贡献者。他们不能构成TI规范和不一定反映TI的观点;看到TI的使用条款。
TI E2E?网络社区TI的Engineer-to-Engineer(E2E)社区。为了培养工程师之间的协作。在e2e.ti.com上,你可以问的问题,分享知识,探索思想和帮助解决问题的工程师。
设计支持“透明国际”的设计支持快速找到有用的E2E论坛设计支持工具和联系信息技术支持。
12.4相关链接
下面的表46列表快速访问链接。类别包括技术文档、支持和社区资源,工具和软件,快速访问示例或购买。
表46。

12.5商标
E2E是德州仪器公司的商标。WEBENCH是德州仪器公司的注册商标。所有另外的商标是他们的各自的主人的财产。
12.6静电放电谨慎
这些设备内置的ESD保护有限。领导应该一起做空或设备放置在导电泡沫在存储或处理,以防止静电损坏MOS盖茨。
12.7术语表
SLYZ022 - TI术语表。这个术语表列出并解释术语、缩写和定义。
13机械、包装、和公开信息定货
下面的页面包括机械、包装、和公开信息定货。这些信息是最新的数据用于指定设备。这些数据是可以不经通知自行调整和修订的文档。基于浏览器的版本的数据表,请参考左边的导航。
包装信息

0.png

完整的Word格式文档51黑下载地址:
LDC1314驱动程序.zip (12.64 MB, 下载次数: 66)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:245808 发表于 2018-10-17 09:26 | 显示全部楼层
谢谢楼主的分享!
回复

使用道具 举报

ID:65956 发表于 2018-11-15 10:39 | 显示全部楼层
我以为是测电感线圈的,原来不是,不过也值得参考一下
回复

使用道具 举报

ID:451506 发表于 2019-5-12 23:14 | 显示全部楼层
谢谢楼主的分享,我们学校正好组织的比赛就要用这个芯片~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表