好的,之前写过:列拓科技LTCGM1272电化学前端 ,后面销售老哥找我了。经过签协议什么的,拿到了资料和评估板,确实是资料齐全。
因为没办法什么也放,就说一点开发的时候需要注意的事情,SPI 0模式,1M就可以驱动。内部为了满足各种传感器设计了电子开关:
在输入级其实是有个Buffer 的,但是没明说,默认打开
可以满足各种测量方式,还是三极的多,稳定
使用过程很简单,就是和MCU差不多,先配置电气连接,然后是是相关寄存器的配置。
这里需要DAC和TIA:
有趣的是,还有一个限流电阻可以使用
ADC是12bit的,但是有过采样功能。
过采样(Oversampling) 是指 ADC(模数转换器)以比实际需要更高的采样率采集信号,然后通过数学处理(如 求平均、滤波、降采样)来提高信噪比(SNR)和分辨率。
ADC 在测量过程中会受到 量化噪声(Quantization Noise)和 随机噪声(Thermal Noise)影响。
过采样可以 通过多次测量同一个信号,然后求平均值,从而降低噪声,提高有效分辨率。
过采样 并不会真正提升 ADC 的硬件位数,但它可以增加有效分辨率(ENOB, Effective Number of Bits)。
这是一个简单的说明
公式
LT是32次,算一下:
这意味着 ADC 每次转换会取 32 次数据,然后求平均。
32 倍过采样→ 提高 2.5 位分辨率(12-bit → 14.5-bit)应该内部是SAR-ADC。
由于 12-bit ADC 存储在 16-bit 数据中(高 4-bit 可能是 0),所以右移 4 位。
上面的意思是,把两个8位拼接成了16位,但是高位是0,空的,然后移动右边,把0去掉。
一般过采样很好用,但是需要ADC的采样足够快
芯片还有三种低功耗模式,在FIFO是1的时候就差不多是正常模式了
ADC也可以设置启动的时间间隔,比如一分一次(不记得是不是这样用)
其次,里面的AFE其实就是运放,所以需要在使用前使能
INT 触发后,MCU 读取 FIFO
FIFO 读取 & 清理
所有的文章里面都说的是单次获取数据,根本没有把FIFO的好处用起来。
在 LTCGM1272 中,FIFO 触发 INT(中断) 表示 FIFO 里存储的数据已达到设定阈值(如 fifo_water_line = 10,说明 FIFO 里至少有 10 组数据)。
代码只读取了一次 ADC 结果,没有遍历整个 FIFO,这意味着只获取了最新的一次数据,而丢失了之前存入 FIFO 的历史数据。
这是读取一次的,0xff限制8位,下面是拼接16位
先读取 FIFO 剩余数据数量,然后循环读取:
很简单,有几组就读取几次,先获得这个数据量,循环读取。
如果有DMA,可以这样写,一次性读取多个 FIFO 数据:
不停的读取,存,因为FIFO里面有读写指针,不需要管
笨逼芯片得清楚一下FIFO的满标志
完整的就是这样
其实这个ADC还是12的,把前面的0去掉也行,不过这就看怎么考虑了,有点数据对齐的感觉。好像是过采样就到了16bit。
这样处理好一些
SPI的读写都很简单:SPI协议,这篇就够了!
其实LT的DAC是比较粗的
但是连续测量的功耗是小的,这点不错
LT可能最大的问题还是ADC的精度差了一些。