大家好,又见面了,我是你们的朋友全栈君。
关键词: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通讯部分(节选)
- 时钟频率10kHz~400kHz
综述
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)没有变化
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133691.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...