技术热线: 0755-86643915

单片机开发

芯海ADC芯片CS1237使用问题整理合集

更新时间: 2023-12-07 15:48:31
阅读量:

问题11:实际应用中,多个称重传感器应该怎么与ADC连接?

解答:如果传感器是测量同一物体(例如:厨房垃圾处理器),一般建议使用并联的方式。则相同类型的信号线连接在一起。对于传感器的要求是产品规格尽量一致,尤其是灵敏度需要一致,否则会导致偏载问题。如果使用REFOUT引脚输出VS,需要注意传感器的激励电流是否在合理范围内。举例:

鼎盛合资料

 

鼎盛合(peakcoo.com)资料

如果系统不是测量同一个物体,则传感器单独连接不同的模拟通道或不同的 ADC。

问题 12:为什么 REFOUT 引脚输出的电压值小于 VDD 引脚的电压值?REFOUT 引脚最大输出电流大约多少mA?

解答:
1 、因为激励源控制电路存在 Ron(典型值 10ohm),当电路接上传感器时, 激励电流经过 Ron 会产生压降, 这是正常现象。
2 、REFOUT 引脚最大输出电流约为 20mA。假如多个小阻值传感器(例如 350ohm)并联使用,建 议使用外部激励源,以免造成激励源电压下降严重。大阻值传感器(例如 1200ohm)并联使用则影响不大。

问题 13:如果使用外部激励源作为参考,不使用 REFOUT 输出作为参考,电路如何实现?

解答:悬空 REFOUT 引脚即可。但需要注意参考电压不能高于 VDD。对于桥式传感器, 低成本应用可以使用 VDD 作为激励源。如下图所示:

鼎盛合(peakcoo.com)资料

问题 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 电平匹配。

鼎盛合(peakcoo.com)资料
鼎盛合(peakcoo.com)资料

 

问题 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 值操作。

 

鼎盛合(peakcoo.com)资料

4、在 New Data Update 期间(t8),读写 ADC 操作无效, 且时序复位。因此避免在 t8 期间读取AD 值, 以免时序混乱。

鼎盛合(peakcoo.com)资料

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 的状况。

鼎盛合(peakcoo.com)资料

读取 AD 值(包括读写寄存器) ,建议使用外部下降沿中断判断 New Data Ready,如果中断有效则标志位使能,然后根据标志位读取 AD 值。外部中断起到时序对齐的作用。
如果不是在中断函数里操作读写时序,则读写操作前需要关闭相应的外部中断,读写操作完毕后再开启中断。
如果使用定时查询的方法(每隔一段时间判断 SDA 是否为低电平) ,需要缩短查询间隔(例如 1ms~5ms)。 DR=640Hz/1280Hz 则不建议使用查询判断,以免定时中断频繁产生。