作者:ruishao520 | 来源:互联网 | 2023-09-16 12:37
关键词:LDC1314,电感传感器,金属传感器,中文手册
【声明:本博文参考TI官方手册翻译而成,旨在帮助大家快速了解这款芯片,如翻译有误欢迎评论指出,转载需注明来源!】
以下是我对TI官方手册的人肉翻译,截取了其中的关键部分,有助于大家更好的撸底层驱动和排查硬件问题。
相关博客:【LDC1314】金属传感器(电感传感器)的调试技巧
首先,是引脚位的定义与说明:
引脚 | 引脚类型 | 描述 |
脚位 | 名称 |
1 | SCL | 输入 | IIC时钟输入;开漏输出;需要电阻上拉到逻辑高电平 |
2 | SDA | 输入/输出 | IIC数据输入输出;开漏输出;需要电阻上拉到逻辑高电平 |
3 | CLKIN | 输入 | 外部参考时钟输入,如果使用芯片内部振荡器则连接到GND |
4 | ADDR | 输入 | IIC地址选择端;当输入低电平则IIC地址为0x2A;当输入高电平则IIC地址为0x2B;此输入端不可悬空 |
5 | INTB | 输出 | 可配置中断输出引脚;推挽输出;无需上拉 |
6 | SD | 输入 | 强休眠(Shutdown)输入脚;低电平时为一般工作状态,高电平时进入休眠状态;此输入端不可悬空 |
7 | VDD | 正电源 | 正极电源(+3.3V) |
8 | GND | 负电源 | 地电位 |
9 | IN0A | 模拟 | 外部LC传感器0 |
10 | IN0B | 模拟 | 外部LC传感器0 |
11 | IN1A | 模拟 | 外部LC传感器1 |
12 | IN1B | 模拟 | 外部LC传感器1 |
13 | IN2A | 模拟 | 外部LC传感器2 |
14 | IN2B | 模拟 | 外部LC传感器2 |
15 | IN3A | 模拟 | 外部LC传感器3 |
16 | IN3B | 模拟 | 外部LC传感器3 |
17 | DAP | 固定 | 连接到地电位 |
供电部分
- 正常情况在+3.3V下工作;
- 典型工作电流 2.1mA;
- 休眠(SLEEP_MODE_EN=b1)模式最大 60uA;
- 强休眠(SD = Vdd)最大 1uA
传感器部分
- 传感器最大电流驱动 1.5mA(HIGH_CURRENT_DRV = 0)
- 传感器电阻Rp = 1~100kΩ
- 高电流驱动模式(仅限通道0)最大电流 6mA(HIGH_CURRENT_DRV = 1 )
- 传感器谐振频率1KHz~10MHz
- 最大振幅1.8V
- 最高精度12bit
- 最大采样率(单通道持续转换,IIC时钟频率@400kHz)为13.3ksps
- 传感器引脚输入电容约为4pF
数字信号引脚部分
- INTB引脚低电平≤0.4V
- INTB引脚高电平≥2.4V
I2C通讯部分(节选)
综述
LDC1314是一种电感-数字转换器(LDC),用于测量多个LC谐振器的谐振频率。该装置输出与频率成比例的数字值,有12位精度,测得的频率可以换算成等效电感值,或者用来测量可导电物体的运动,内部时钟可以减少系统功耗,外接时钟可以改善测量噪声,每个通道的测量转换时都可以设置,长转换时间可以提供更高的测量精度。对器件的配置通过 400 kbit/s 的 I2C总线配置,ADDR可选择I2C地址,唯一必要的外部元件是旁路电容和I2C的上拉电阻。
功能块示意图
- 传感器的谐振频率为ƒSENSOR,芯片的参考时钟频率为ƒREF,测量得到的数字量 = K* (ƒSENSOR/ƒREF),K>0
- SD拉高可使芯片进入强休眠模式以降低功耗
- INTB可以被配置用来通知主机返回芯片的系统状态改变
多通道和单通道
- LDC1314可以配置单通道持续采样或者多通道序列采样
- 当工作在多通道模式下,芯片会持续序列采样被选中的多个通道;
- 当工作在单通道模式下,芯片会连续采样被选中的通道。
可调节的转换时间
- 转换时间长则测量精度高,转换时间可以设置为3.2us~26.2ms(一个16位寄存器)
数字信号增益
- 输出只有12位精度,但是内部信号支持通过增益设置产生16位输出
- 传感器启动与故障配置
- 为了最小化噪声影响,传感器开始测量应该确保在传感器振幅稳定之后,芯片提供每个通道一个可调的的启动时间(1.2us~26.2ms)通过 SETTLECOUNTx 寄存器
- 芯片提供一个内部滤波器,以减弱来自外部噪声源的干扰
参考时钟
- 芯片内部时钟为43MHz,如需高精度测量,请使用外部晶振
- 芯片提供数字分频器给参考时钟和传感器输入,确保频率可以被LDC核接受,每个通道都有一个分频器
- 更高的参考频率提供更高的采样精度和采样率
传感器电流驱动控制
- 传感器线圈工作有损耗,需要芯片的能量注入来维持传感器振幅恒定,芯片通过一个匹配LC振荡器频率的交变电流提供能量
- 必须设置驱动电流大小以确保振幅在1.2V~1.8V
- 每个通道通过 IDRIVEx 寄存器可以独立设置电流大小为16uA~1.6mA
- 芯片也可以自主决定合适的电流等级,甚至动态的调节电流通过 RP_OVERRIDE_EN 功能
传感器状态监视器
- 芯片支持将传感器状态通过I2C接口传出,传出条件:
- 传感器振幅超范围
- 传感器未起振
- 新转换数据就绪
- 转换出错
设备功能模式
- 启动模式
- 芯片上电,会进入休眠模式等待配置,一旦设备配置完成(设置CONFIG.SLEEP_MODE_EN = b0)将退出休眠开始转换
- 推荐在休眠模式配置参数,配置完毕退出休眠模式
- 休眠模式
- 通过设置CONFIG.SLEEP_MODE_EN = b1 进入此模式
- 在此模式设备配置会保存,但不会开始转换
- 设置完成后,设置CONFIG.SLEEP_MODE_EN = b0 进入工作模式,注意,第一次转换在16384÷ƒINT(其实就是16384个转换周期) 后开始
- 在休眠模式中读写寄存器均能生效,但在进入休眠模式时会清除所有转换结果,错误情况,以及重新配置INTB引脚
- 一般模式
- 强休眠模式
- SD = H 时,芯片进入强休眠模式,这是最低功耗状态
- SD = H->L时,芯片退出强休眠模式,进入休眠模式,并将所有寄存器恢复默认值
- 允许在此模式修改ADDR引脚
- 复位
- RESET_DEV.RESET_DEV = b1 时设备复位,转换立即停止,所有寄存器恢复默认,这个寄存器比特位永远只会读到0
- 编程
- 芯片通过I2C接口访问和控制寄存器,推荐的配置过程是进入休眠模式,设置合适的寄存器值,再进入工作模式
- 转换结果寄存器必须在工作模式读取
寄存器地址
ADDRESS | NAME | DEFAULT VALUE | DESCRIPTION |
0x00 | DATA0 | 0x0000 | Channel 0 Conversion Result and Error Status |
0x02 | DATA1 | 0x0000 | Channel 1 Conversion Result and Error Status |
0x04 | DATA2 | 0x0000 | Channel 2 Conversion Result and Error Status (LDC1314 only) |
0x06 | DATA3 | 0x0000 | Channel 3 Conversion Result and Error Status (LDC1314 only) |
0x08 | RCOUNT0 | 0x0080 | Reference Count setting for Channel 0 |
0x09 | RCOUNT1 | 0x0080 | Reference Count setting for Channel 1 |
0x0A | RCOUNT2 | 0x0080 | Reference Count setting for Channel 2. (LDC1314 only) |
0x0B | RCOUNT3 | 0x0080 | Reference Count setting for Channel 3.(LDC1314 only) |
0x0C | OFFSET0 | 0x0000 | Offset value for Channel 0 |
0x0D | OFFSET1 | 0x0000 | Offset value for Channel 1 |
0x0E | OFFSET2 | 0x0000 | Offset value for Channel 2 (LDC1314 only) |
0x0F | OFFSET3 | 0x0000 | Offset value for Channel 3 (LDC1314 only) |
0x10 | SETTLECOUNT0 | 0x0000 | Channel 0 Settling Reference Count |
0x11 | SETTLECOUNT1 | 0x0000r_ | Channel 1 Settling Reference Count |
0x12 | SETTLECOUNT2 | 0x0000 | Channel 2 Settling Reference Count (LDC1314 only) |
0x13 | SETTLECOUNT3 | 0x0000 | Channel 3 Settling Reference Count (LDC1314 only) |
0x14 | CLOCK_DIVIDERS0 | 0x0000 | Reference and Sensor Divider settings for Channel 0 |
0x15 | CLOCK_DIVIDERS1 | 0x0000 | Reference and Sensor Divider settings for Channel 1 |
0x16 | CLOCK_DIVIDERS2 | 0x0000 | Reference and Sensor Divider settings for Channel 2 (LDC1314 only) |
0x17 | CLOCK_DIVIDERS3 | 0x0000 | Reference and Sensor Divider settings for Channel 3 (LDC1314 only) |
0x18 | STATUS | 0x0000 | Device Status Report |
0x19 | ERROR_CONFIG | 0x0000 | Error Reporting Configuration |
0x1A | CONFIG | 0x2801 | Conversion Configuration |
0x1B | MUX_CONFIG | 0x020F | Channel Multiplexing Configuration |
0x1C | RESET_DEV | 0x0000 | Reset Device |
0x1E | DRIVE_CURRENT0 | 0x0000 | Channel 0 sensor current drive configuration |
0x1F | DRIVE_CURRENT1 | 0x0000 | Channel 1 sensor current drive configuration |
0x20 | DRIVE_CURRENT2 | 0x0000 | Channel 2 sensor current drive configuration (LDC1314 only) |
0x21 | DRIVE_CURRENT3 | 0x0000 | Channel 3 sensor current drive configuration (LDC1314 only) |
0x7E | MANUFACTURER_ID | 0x5449 | Manufacturer ID |
0x7F | DEVICE_ID | 0x3054 | Device ID |
应用与实施
时变电磁场中的导体
交变电流流过感应器(及线圈,之后都称之为线圈)将产生一个交变磁场,如果一个导体材料,例如一块金属物体,被放入线圈附近,磁场会在金属物体表面引发涡流(环形电流)。
涡流的大小是导体距离、尺寸和材料成分的函数。涡流会产生自己的磁场,与传感器线圈形成的原磁场相反,这种效果相当于一组变压器(耦合电感器),其中传感器线圈是初级绕组,物体上的涡流形成次级绕组。电感器之间的耦合是线圈感值,以及金属物体的电阻率、距离、大小和形状的函数。
二次绕组的阻抗可建模为与距离相关的模型并等效到一次侧(线圈)上
振荡器可以看做一个频率选择电路和一个闭环增益模块的组合,只要满足:(1)增益>1;(2)闭环相移为2π
谐振频率
其中
Rp是工作频率下LC谐振器的交流并联电阻。
传感器激活过程
- 芯片提供两种选择,减少等幅震荡建立时间或减少电流以降低功耗
- SENSOR_ACTIVATE_SEL =b0 使用最大电流激发振荡,在已经配置最大电流时(IDRIVEx = b11111)没有变化