16位ADC芯片SGM58031驱动重点

简介: 16位ADC芯片SGM58031驱动重点

引脚描述

时间要求

I2C时序图

I2C通讯描述

SGM58031是一款低功耗、16位、Δ∑模数转换器(ADC)。

SGM58031支持差分输入和单端输入。

SGM58031有两种工作模式:单次发射模式和连续转换模式。

在单次触发模式下,ADC执行一次转换并给出完整的固定数据,无需丢弃任何数据。一旦ADC完成转换,它就会进入低功率关闭模式。

在连续模式中,ADC在先前的转换完成后自动开始新的转换。给出了每一个转换结果。数据速率等于配置的数据速率。

ADC的基本连接如图3所示。通信接口与I2C兼容。SGM58031在从属模式下工作。I2C地址配置为0b1001000(ADDR连接到GND)。

图4和图5显示了一个演示的读写操作序列。

注意事项:

1。A0和A1值取决于ADDR引脚。

2.SDA可以由主机设置为高电平,以终止单字节读取操作。

3.SDA可以由主机设置为高电平,以终止两字节的读取操作。

注:1。A0和A1值取决于ADDR引脚。

例如,写入配置寄存器0x01将SGM58031设置为连续转换模式,我们需要以下顺序:1。第一个字节,0b1001000(第一个7位是I2C地址),第8位是读/写位,现在是低写2。第二个字节,0b00000001(指向配置寄存器0x01)3。第三个字节,0b10000100(要写入的配置寄存器的MSB,Bit[8]=0表示连续模式)4。第四字节,0b10000011(要写入的配置寄存器的LSB,Bit[7:5]='100’表示数据速率100Hz)

例如,要从SGM58031读取转换结果,可以遵循以下顺序:1。第一个字节,0b1001000(第一个7位是I2C地址),第8位是读/写位,现在是低写2。第二个字节,0b00000000(指向转换寄存器0x00)3。第三个字节,0b10010001(第一个7位是I2C地址),第8位是读/写位,现在是高读4。第四个字节,SGM58031用转换寄存器5的MSB进行应答。第五个字节,SGM58031用转换寄存器的LSB应答。

I2C接口

SGM58031通信接口为I2C接口。

SGM58031只能作为从设备。I2C时序图如图1所示

I2C地址选择

SGM58031有一个单独的地址设置引脚ADDR,可以连接到GND、VDD、SDA和SCL。表8显示了四个可用地址。

表8。ADDR引脚连接和相应的从地址

I2C常规呼叫

SGM58031支持I2C通用调用地址(0000000),第八位必须为“0”。设备确认通用呼叫地址。如果第二个字节是00000110(06h),则SGM58031重置所有寄存器并断电。

I2C速度模式

I2C总线操作支持三种速度模式:标准模式、快速模式和高速模式。详见电气特性部分。

要进入标准快速模式,无需特殊操作。

要进入高速模式,请在I2C启动条件后发送一个特殊地址字节00001XXX。SGM58031没有对此字节给出ACK(确认),SGM5803 1在接收到该字节后切换到高速模式。SGM58031在下一个STOP(停止)条件下退出高速模式。

从模式操作

SGM58031在从模式下工作,不驱动SCL线路。

寄存器

SGM58031有七个指针寄存器。表9和表10显示了这些寄存器映射。图4显示了如何访问该指针寄存器

指针寄存器

转换寄存器

ADC转换结果为16位2的补码格式。表11显示了数据格式。其重置默认值为“0”。

注:默认值=0000h。

配置寄存器

配置寄存器(Config Register)如表12所示。

注意事项:

1.默认值=8583h。

2.这是ADC缩放的理论满刻度范围。实际输入必须在电气限制范围内(0V~VDD+0.3V)。

D15

工作状态/单次激发转换开始对于写入状态:

0=无效果

1=开始单次转换(处于单次激发模式时)

对于读取状态:

0=芯片正在进行转换

1=芯片没有进行转换

此位报告芯片的状态。

只有当芯片处于断电状态时,才能写入此位。

D14-12(000)

输入多路复用器(MUX)配置

D11-9(010)

可编程增益放大器(PGA)配置

D8(1)

设备操作模式

0=连续转换模式

1=断电单次触发模式(默认)

D7-5(100)

数据速率

这些比特控制数据速率设置。

见表5

D4(0)

比较器模式

0=具有滞后的传统比较器(默认)

1=窗口比较器

D3(0)

比较器极性

0=有效低(默认)

1=有效高

此位设置ALERT/RDY引脚的有效极性

D2(0)

锁存比较器

0=非锁存比较器(默认)

1=锁存比较器

该位设置ALERT/RDY引脚在其输出设置后是否锁存,或者当ADC转换结果在上限和下限阈值限制内时是否复位。

D1-0(11)

比较器队列和禁用功能

00=一次转换后断言

01=两次转换后断定

10=四次转换后确信

11=禁用比较器(默认)

这些位可以禁用比较器。

在alert/RDY引脚上输出警报之前,这些位可以将连续ADC转换所需的时间设置为超过阈值。

低阈值和高阈值寄存器

低(低阈值)和高(高阈值)阈值寄存器采用16位2的补码格式。表13显示了这两种寄存器格式。

注:低阈值默认值=8000h,高阈值默认值=7FFFh。

Config1寄存器

D8

D7

将“1”写入PD使该部分断电,该PD位在内部自动清除。可以再次进行另一次连续/单次转换,而无需清除此位。

D6

0=DR[2:0]=000~111转换率为6.25Hz、12.5Hz、25Hz、50Hz、100Hz、200Hz、400Hz和800Hz(默认)

1=DR[2:0]=000~111转换速率为7.5Hz、15Hz、30Hz、60Hz、120Hz、240Hz、480Hz和960Hz

D5

0=无电流源(默认值)

1=为选定的一对AIN提供一对2μa电流

D4

0=在I2C总线电压低于部件VDD的情况下禁用泄漏阻断电路。I2C接口仍然可以工作,但当VBUS<VDD-0.3V(默认值)

1=总线电压可以低于VDD而不会导致泄漏时,VDD会出现泄漏。VDD范围为3V至5.5V,I2C总线电压应限制在3V至5.5 V

D3

0=无(默认)

1=使用AIN3作为ADC的外部参考

D2-0

芯片ID寄存器

GN_Trim1寄存器(当使用EXT_REF时)

ADC增益系数,用于用户选择Config1寄存器EXT_REF位作为参考。我们提供了一个默认值,如果用户想要补偿外部引用错误,则用户有责任将正确的值写入寄存器。当EXT_REF=0并且选择了内部引用时,此寄存器不起作用。


ADC GN_Trim1寄存器是一个无符号值。用于最终微调的默认值为1.3333,以补偿默认ADC增益3/4。GN[10:0]的值加上一个常数,得到最终的增益微调值。

GN_Trim1+CONST=GN_Trim。CONST的二进制值为1010011010110000,对应于1.30225的增益因子。

加上GN_Trim1寄存器的默认值(01111111010)后,最终的默认增益微调值为1.3333。当微调寄存器全部为“1”时,最大最终增益微调值为1.3547;当寄存器全部为“0”时,MIN值为1.30225。这使得GN微调的范围为±3%,步长为32ppmFS

如果文章对您有所帮助,点赞支持,感谢!!!!

文章知识点与官方知识档案匹配,可进一步学习相关知识

目录
相关文章
|
5月前
|
传感器 芯片
PCF8574芯片介绍及驱动方法
PCF8574芯片介绍及驱动方法
129 0
|
5月前
|
芯片
一款LED段码显示屏驱动芯片方案
一、基本概述 TM1620是一种LED(发光二极管显示器)驱动控制专用IC,内部集成有MCU数字接口、数据锁存器、LED驱动等电路。本产品质量可靠、稳定性好、抗干扰能力强。 二、基本特性 采用CMOS工艺 显示模式(8段×6位~10段×4位) 辉度调节电路(8 级占空比可调) 串行接口(CLK,STB,DIN) 振荡方式:内置RC振荡 内置上电复位电路 内置数据锁存电路 内置针对LED反偏漏电导致暗亮问题优化电路 抗干扰能力强 封装形式:SOP20 三、主要应用 主要适用于家电设备(智能热水器、微波炉、洗衣机、空调、电磁炉)、机顶盒、电子称、智能电表等数码管或LED
57 0
|
7月前
|
存储 机器人 芯片
嵌入式 STM32 步进电机驱动,干货满满,建议收藏
嵌入式 STM32 步进电机驱动,干货满满,建议收藏
嵌入式 STM32 步进电机驱动,干货满满,建议收藏
|
9月前
|
芯片
STM32(HAL)通过UN2003芯片驱动步进电机正反转
STM32(HAL)通过UN2003芯片驱动步进电机正反转
|
10月前
CMOS摄像头驱动分析-i2c驱动
CMOS摄像头驱动分析-i2c驱动
126 0
|
11月前
|
传感器 芯片 内存技术
超低功耗研发-STM32L151C8T6芯片(一)时钟系统概述
超低功耗研发-STM32L151C8T6芯片(一)时钟系统概述
135 0
15 玩转STM32之IIC通信(芯片硬件篇)(上)
15 玩转STM32之IIC通信(芯片硬件篇)
15 玩转STM32之IIC通信(芯片硬件篇)(下)
15 玩转STM32之IIC通信(芯片硬件篇)
|
Linux API
Linux驱动分析之LCD驱动架构
在Linux设备中,LCD显示采用了帧缓冲(framebuffer)技术,所以LCD驱动也叫Framebuffer驱动,所以LCD驱动框架就是围绕帧缓冲展开工作。帧缓冲(framebuffer)是Linux系统为显示设备提供的一个接口,它将显示缓冲区抽象出来,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。对于帧缓冲设备而言,只要在显示缓冲区中与显示点对应的区域写入颜色值,对应的颜色会自动在屏幕上显示。帧缓冲为标准字符设备, 主设备号为29,对应于/dev/fbn。
|
缓存 Linux API
Linux驱动分析之Uart驱动架构
UART设备驱动可以使用tty驱动的框架来实现,但是因为串口之间有共性,所以Linux在tty接口上封装了一层(serial core)。后面我们再拿一篇文章来解释tty驱动,tty其实就是各种终端设备,串口其实也是终端设备。
Linux驱动分析之Uart驱动架构