问题11:实际应用中,多个称重传感器应该怎么与ADC连接?
解答:如果传感器是测量同一物体(例如:厨房垃圾处理器),一般建议使用并联的方式。则相同类型的信号线连接在一起。对于传感器的要求是产品规格尽量一致,尤其是灵敏度需要一致,否则会导致偏载问题。如果使用REFOUT引脚输出VS,需要注意传感器的激励电流是否在合理范围内。举例:
如果系统不是测量同一个物体,则传感器单独连接不同的模拟通道或不同的 ADC。
问题 12:为什么 REFOUT 引脚输出的电压值小于 VDD 引脚的电压值?REFOUT 引脚最大输出电流大约多少mA?
解答:
1 、因为激励源控制电路存在 Ron(典型值 10ohm),当电路接上传感器时, 激励电流经过 Ron 会产生压降, 这是正常现象。
2 、REFOUT 引脚最大输出电流约为 20mA。假如多个小阻值传感器(例如 350ohm)并联使用,建 议使用外部激励源,以免造成激励源电压下降严重。大阻值传感器(例如 1200ohm)并联使用则影响不大。
问题 13:如果使用外部激励源作为参考,不使用 REFOUT 输出作为参考,电路如何实现?
解答:悬空 REFOUT 引脚即可。但需要注意参考电压不能高于 VDD。对于桥式传感器, 低成本应用可以使用 VDD 作为激励源。如下图所示:
问题 14:CS1237 是否可以使用开关电源进行供电?
解答:可以,但不建议直接使用开关电源供电。最好经过电源滤波,然后次级电源使用线性电源电路给 ADC 供电。
问题 15:CS1237的通信接口是标准 SPI 端口吗?
解答:不是的。CS1237 是 Chipsea 自定义的双向通信接口。需要主控使用 GPIO 模拟时序。
问题 16:CS1237是否可以与主控使用不同的电压供电?
解答:可以。但需要注意通信的 GPIO 电平是否符合要求。举例: CS123x 使用 5.0V 供电,MCU 使用 3.3V 供电。由于 VIH 最小值为 0.7*5.0V=3.5V ,因此 MCU 的 SCLK 高电平必须>3.5V 才能使ADC 有效识别。可以使用电平转换电路实现 IO 电平匹配。
问题 17:CS1237的模拟输入如果处于悬空状态,AD 值乱跳是否正常?
解答:这是正常现象。因为 CS1237的模拟输入处于不确定状态,因此 AD 值会乱跳。
问题 18:CS1237切换通道时,需要像其它 sigma-delta ADC 丢掉前几笔数据吗?
解答:CS1237切换通道时会自行丢掉无效数据,无需用户额外处理。如下图所示:
鼎盛合(peakcoo.com)资料
问题 19:CS1237/CS1238 的读写操作需要注意什么事情?
解答:
1、主控上电后默认设置:SCL 输出低电平,SDA 输入开上拉。
2、通信时序 SCL 高电平需要<100μs ,否则会误触发进入休眠模式,一般建议 SCL=2μs~ 15μs。
3、完整时序为 46 个 clocks。
举例: 读取 AD 值操作,发送 24 个 CLK 读取 AD 值,然后发送 22 个空 CLK。如果采用上电默认配置, 也可以发送 24 个 CLK+3 个空 CLK(非完整时序) ,简化读取 AD 值操作。
4、在 New Data Update 期间(t8),读写 ADC 操作无效, 且时序复位。因此避免在 t8 期间读取AD 值, 以免时序混乱。
5、读取 AD 值(包括读写寄存器), 建议使用外部下降沿中断判断 New Data Ready,如果中断有 效则标志位使能,然后根据标志位读取 AD 值。如果不是在中断函数里操作读写时序, 则读写操作前需要关闭相应的外部中断,读写操作完毕后再开启中断。
6、如果使用查询的方法(每隔一段时间判断 SDA 是否为低电平), 需要缩短查询间隔(例如1ms~5ms),避免读取数据期间 New Data Update 导致时序错乱, 表现为 AD 值每隔一段时间乱跳。
7 、CS1237配置命令的长度为 7bits ,因此写配置命令(0x65)/读配置命令(0x56)的 bit7无效,发送数据时发送 bit6~bit0。
问题 20:为什么 AD 值每隔一段时间会跳动一下又恢复正常?
解答:因为 CS1237在 New Data Update 期间会更新 AD 值,且时序复位。如果读取 AD 期间遇到 New Data Update 就会导致时序错乱,表现为 AD 码值错乱。
举例:如下图所示,虽然每次读取 AD 值前都判断 SDA 是否为低电平,但如果没有时序对齐的话,就会可能出现读取期间遇到New Data Update 的状况。
读取 AD 值(包括读写寄存器) ,建议使用外部下降沿中断判断 New Data Ready,如果中断有效则标志位使能,然后根据标志位读取 AD 值。外部中断起到时序对齐的作用。
如果不是在中断函数里操作读写时序,则读写操作前需要关闭相应的外部中断,读写操作完毕后再开启中断。
如果使用定时查询的方法(每隔一段时间判断 SDA 是否为低电平) ,需要缩短查询间隔(例如 1ms~5ms)。 DR=640Hz/1280Hz 则不建议使用查询判断,以免定时中断频繁产生。