术语和定义
参考文献
//www.xmece.com/configurable-mixed-signal.
下载我们的免费GreenPAK™软件设计师(1]以打开。gp文件[2],并查看所提出的电路设计。使用GreenPAK开发工具(3.可以在几分钟内将设计冻结到您自己定制的集成电路中。yabo国际娱乐Dialog Semiconductor提供完整的申请资料库[4],包括设计实例,以及对Dialog IC的功能和模块的解释。
- GreenPAK设计软件,《软件下载及用户指南》,Dialog Semiconductoryabo国际娱乐
- AN-CM-291 ADC Current Sense.gp,GreenPAK设计文件,Dialog半导yabo国际娱乐体
- GreenPAK开发工具,GreenPAK开发工具网页,对话半导体yabo国际娱乐
- GreenPAK应用笔记,GreenPAK应用笔记网页,Dialog半导体yabo国际娱乐
- SLG46855V, Datasheet, yabo国际娱乐Dialog Semiconductor。
- 一个- 1177, Flexible Range ADC with I2C Interface, Application Note, yabo国际娱乐Dialog Semiconductor。
作者:吉诺卡斯蒂略
介绍
在本应用笔记中,我们将描述如何在SLG46855V中实现一个8位模数转换器(ADC) [5],可检测负载电流,并通过I2C与单片机接口。该设计可用于各种电流传感应用,如电流表、故障检测系统和燃油表。亚博国际官网平台网址
ADC架构
ADC主要由模拟比较器和数模转换器(DAC)组成。比较器感知输入电压和DAC输出电压,然后控制DAC输入码是增加还是减少,这样DAC输出就会收敛到输入电压。得到的DAC输入码成为ADC数字输出码。
在我们的实现中,我们使用脉宽调制(PWM)控制电阻网络创建了一个DAC。我们可以很容易地创建精确的数字控制PWM输出使用GreenPAK.滤波后的PWM成为我们的模拟电压,因此作为一个有效的DAC。这种方法的一个明显的优点是,只需简单地调整电阻器的值,就可以很容易地设置对应于零码和满量程(等效偏移和增益)的电压。例如,用户希望从没有电流(0µa)的温度传感器读取零码,对应4.3 V,而在1000µa的全尺寸码对应3.9 V (表1).这很容易实现,只需设置几个电阻器的值。通过使ADC范围匹配感兴趣的传感器范围,我们最大限度地利用ADC分辨率。
代码(12月) |
当前(µ) |
V感觉(V) |
---|---|---|
0 |
0 |
4.3 |
125 |
500 |
4.1 |
255 |
1000 |
3.9 |
这种架构的一个设计考虑是,内部PWM频率需要比ADC更新速率快得多,以防止其控制回路的欠阻尼行为。至少它应该比ADC数据计数器时钟长除以256。在本设计中,ADC的更新周期设置为1.3312 ms。
内部电路
flexible ADC是基于Dialog Semiconductor AN-1177的设计[yabo国际娱乐6].时钟速度从1 MHz增加到12.5 MHz,以时钟ADC计数器,因为SLG46855有一个25 MHz的时钟可用。这允许为更好的样本分辨率提供更快的更新速度。ADC数据时钟的LUT时钟被改变,所以当PWM DFF低时,它将通过12.5 MHz信号。
外部电路
外部电阻和电容网络用于将PWM转换为模拟电压,如图中的电路原理图所示图1.这些值是为设备将感知的最大电流的最大分辨率计算的。为了实现这种灵活性,我们将电阻R1和R2并联到VDD和地。电阻分压器将VBAT划分到电压范围的低侧。期望最小VBAT的分割器比可以用下面的方程求解:
方程1:
I2C读指令
表1描述了读回存储在CNT0中的数据的I2C命令结构。I2C命令需要一个起始位、控制位、字地址、读位和停止位。
信息 |
数据(十六进制) |
---|---|
起始位 |
[ |
控制字节/奴隶地址 |
0 x10(写);0 x11(阅读) |
字地址/CNT0计数值 |
0 xa5 |
读一些 |
R |
停止位 |
] |
I2C命令读取CNT0计数值的示例如下:
[0x10 0xA5] [0x11 R]
被读回的计数值将是ADC代码值。例如,Dialog网站上的这个应用程序注释的ZIP文件中包含一个Arduino代码。
结果
为了测试ADC电流传感器设计的准确性,将给定负载电流和VDD水平下的测量值与理论值进行比较。理论ADC值计算公式如下:
方程2:
我的负载与ADC值相关的值用下面的公式计算:
方程3:
对于以下结果,我使用了这些组件值:
组件 |
名义价值 |
测量值 |
---|---|---|
R感觉
|
400Ω |
381Ω |
R1
|
10 kΩ |
11.87 kΩ |
R2
|
100 kΩ |
89.94 kΩ |
R负载
|
50 kΩ(电位计) |
N/A |
C1
|
10 nf |
9.26 nf |
C2
|
10 nf |
9.47 nf |
ADC值到I的分辨率负载转换可以通过公式3计算,表2中的测量值和ADC值设为1。用V蝙蝠在3.9 V时,分辨率为4.96µA/div。
为了优化ADC电流检测电路,使其最小VDD水平为3.6 V,最大电流为1100µa,检测电阻为381 Ω,根据式1,理想的分压器系数为0.884。用给定的值表2,实际除法器的除法器系数为0.876。由于这个值略小,它将允许略大的负载电流范围,因此ADC值接近全范围,但不会溢出。实际除法器值计算公式如下:
方程4:
以下是在4.3 V、3.9 V和3.6 V三种电压水平下测量的电路。每一级显示一个图表,显示测量和理论ADC值之间的差异。理论值四舍五入到最接近的整数。有一个总结图来比较三种电压水平的差异。然后有一个图表显示了理论ADC值和负载电流在不同电压水平之间的相关性。
负载电流(µ) |
ADC测量代码 |
ADC编码理论 |
区别 |
预计V感觉
|
---|---|---|---|---|
One hundred. |
18 |
18 |
0 |
4.2619 |
200 |
37 |
37 |
0 |
4.2238 |
300 |
55 |
55 |
0 |
4.1857 |
400 |
74 |
73 |
1 |
4.1476 |
500 |
93 |
92 |
1 |
4.1095 |
600 |
112 |
110 |
2 |
4.0714 |
700 |
130 |
128 |
2 |
4.0333 |
800 |
149 |
146 |
3. |
3.9952 |
900 |
167 |
165 |
2 |
3.9571 |
1000 |
186 |
183 |
3. |
3.919 |
负载电流(µ) |
ADC测量代码 |
ADC编码理论 |
区别 |
预计ACMP VIN |
---|---|---|---|---|
One hundred. |
20. |
20. |
0 |
3.8619 |
200 |
40 |
40 |
0 |
3.8238 |
300 |
61 |
61 |
0 |
3.7857 |
400 |
81 |
81 |
0 |
3.7476 |
500 |
101 |
101 |
0 |
3.7095 |
600 |
121 |
121 |
0 |
3.6714 |
700 |
142 |
141 |
1 |
3.6333 |
800 |
162 |
161 |
1 |
3.5952 |
900 |
183 |
182 |
1 |
3.5571 |
1000 |
203 |
202 |
1 |
3.519 |
负载电流(µ) |
ADC测量代码 |
ADC编码理论 |
区别 |
预计ACMP VIN |
---|---|---|---|---|
One hundred. |
23 |
22 |
1 |
3.5619 |
200 |
45 |
44 |
1 |
3.5238 |
300 |
67 |
66 |
1 |
3.4857 |
400 |
88 |
87 |
1 |
3.4476 |
500 |
110 |
109 |
1 |
3.4095 |
600 |
132 |
131 |
1 |
3.3714 |
700 |
155 |
153 |
2 |
3.3333 |
800 |
177 |
175 |
2 |
3.2952 |
900 |
199 |
197 |
2 |
3.2571 |
1000 |
221 |
219 |
2 |
3.219 |
结论
该设备在3.6 V、3.9 V和4.3 V三种电压水平下进行测试。这些电压的范围模型一个完整的锂离子电池放电到它的标称水平。在三个电压等级中,可以观察到,对于所选的外部电路,该器件通常在3.9 V时更加精确。在负载电流为700 - 1000 μ A时,测量值与理论ADC值的差值仅为1个小数。在给定的电压范围内,在最坏的情况下,测量的ADC值比标称条件高出3个小数点。进一步调整电阻分压器可以优化不同的VDD电压水平。