MCP4728
MCP4728是一种模拟DAC,给您四个缓冲输出
电压由I2C串行接口控制。每个DAC都可以输出比例的
输入参考电压。自呢's a 12bit device its
分辨率是VREF / 4096。所以你可以选择分割的非常好的步骤
from the reference.
每个DAC输出都有一个相关的EEPROM存储器,因此设备可以立即启动到先前存储的输出电压。
此芯片自动更新编写的EEPROM,并恢复
RESET上的输出。你不'真的要做任何事情来实现这一点
第一次编程DAC输出以外的功能!
一个唯一的功能是您可以使用LDACN同时更新所有输出。
本讨论将MCP4728与其表兄弟进行了比较 MCP4726和
MCP4726 由于在这些中使用了相同的底层硬件
设备。因此,您获得类似的模拟性能
(包括较低和上层区域的非线性操作)。
基本差异如下:
- MCP4725
- 内存能力 单身的 模拟输出。
- 有限的地址(制造商编程除0x60,0x61外)。
- MCP4726
- Memory capable 单身的 输出但是有 参考输入 pin
- 非常有限的寻址(除0x60外,制造商编程)。
- MCP4728
- 内存能力 四址 模拟输出带内部参考。
- 内部2%精确的电压参考或VDD作为参考。
- 非常好的地址范围(用户编程
EEPROM - 也可以是制造商编程的) - 八个地址是
可用0x60..0x67。
- 同步更新 - 所有输出都可以同步更改。
MCP4728可能使MCP4728克服了一些使用的缺点
当你知道你需要一个时,几个个人SOT-23-6设备
few DAC outputs.
I2C地址
MCP4725和MCP4726的问题
问题是I2C寻址 - 每个MCP4725 / MCP4726
如果您想要超过2个MCP4725,或MCP4726中的2个以上,必须由制造商编程,在同一I2C总线上。
解决MCP4728的解决方案
事实上,MSOP(10引脚SMD)不会带出地址引脚
either! There
没有A0,A1和A2物理引脚。它使用更有用的方案
允许内部EEPROM定义这些值。但是要编程这些地址的方法是一个 一点点痛苦 - but it is doable!
EEPROM.地址默认为
零,所以如果你只需要四个DAC输出,你就没有'T需要将任何东西编程只使用I2C地址0x60。
与之
MCP4728您可以为每个芯片获得四个DAC输出,为您提供32个I2C总线可能的DAC输出。
提示: 关闭未使用的DAC链以节省使用的电流。
电压参考
MCP4728可以使用专用内部电压参考或V.DD. 供应销。 MCP4725只能使用V.DD..
内部参考可以设置为2.048V或4.096V。后者
由于12位DAC输出VREF / 4096意味着,价值很有用
1mV per LSB.
注意:MCP4728也可以使用V.DD. 作为参考引脚,因此您可以在准确的引用中为该引脚提供(这与MCP4725相同)。
MCP4728引脚向导
该芯片采用小型,10个引脚MSOP(中型轮廓包) - SMD设备。
[Source:
Datasheet]
MCP4728规范
Parameter
|
MCP4728
|
Voltage Supply (Vs)
|
2v7〜5v5 |
Abs. Max VDD.
|
-0v3〜6v5
|
Interface
|
I2C
|
I2C rate
|
100khz,400khz,3.4mhz |
Resolution
|
12 bit |
Power Down I (VDD.= 2V7〜5V5 - 典型,最大值)
|
45ua,60ua(内部参考)
|
没有负载电流(典型,最大)[4]
|
800ua,1400a
|
短路(Vout = GND)(典型值,最大)
|
15mA,24米
|
偏移错误(典型,最大)
|
5,20mv
|
偏移误差漂移(-45〜25,25〜85ºC,典型值) |
±0.16ppm,±0.44ppm |
INL (typ,max) LSB
|
±2,±13 [3]
|
DNL(MIN,TYP,MAX)LSB
|
-0.75,±0.2,±0.75 [2,3]
|
增益错误(min,典型,最大)%fsr
|
-1.25,0.4,1.25
|
Gain error drift
|
-3 ppm /ºC
|
Phase margin
|
66º
|
电容式负载稳定性(5K负载)
|
1000pF |
Slew rate
|
0.55V /美国
|
输出电压稳定时间
|
6us
|
I2C地址(H / W被选中= 8off)
|
0x60,0x67 [1] |
工作温度
|
-40°C〜125°C
|
内部电压参考
|
2.048V±2% |
[1]对于单个I2C总线顺序的更多设备预编程设备。
[2]低于1 LSB的数字意味着没有错过代码。
[3]代码范围100到4000(参见 准确性)。
如果关闭未使用的DAC,可以减少[4]。
MCP4728规范VS MCP4725
Parameter
|
MCP4725
|
MCP4728
|
Voltage Supply (Vs)
|
2v7〜5v5
| 相同的
|
Abs. Max VDD.
|
-0v3〜6v5
| 相同的
|
Interface
|
I2C
| 相同的
|
I2C速率(KHz,kHz,MHz)
|
100,400,3.4 | 相同的
|
Resolution
|
12 bit | 相同的
|
Power Down I (VDD.= 5v5 -typ,max)
|
0.06ua,2ua
| 45ua,60ua |
没有负载电流(典型,最大)[4] |
210ua,400ua.
| 800ua,1400a |
短路(VO = 0V)(min,典型,最大值)
|
7,15,24mA
| 相同(min n / a)
|
偏移错误(典型,最大)
|
±0.02,0.75%FSR
| 5,20mv
|
偏移误差漂移(-45〜25,25〜85ºC) |
±1ppm,±2ppm | 相同的
|
INL (typ,max) LSB
|
±2,±14.5 [3]
| ±2,±13 [3] |
DNL(MIN,典型,最大)LSB [2,3]
|
-0.75,±0.2,±0.75
| 相同的
|
增益错误(min,典型,最大)%fsr
|
-2,-0.1,2
| -1.25,0.4,1.25 |
Gain error drift
|
-3 ppm /ºC
| 相同的
|
Phase margin
|
66º
| 相同的
|
电容式负载稳定性(5K负载)
|
1000pF | 100pF
|
Slew rate
|
0.55V /美国
| 相同的
|
输出电压稳定时间
|
6us
| 相同的
|
I2C地址(H / W被选中= 8off)
|
0x60,0x61 [1] | 0x60..0x67.
|
工作温度
|
-40°C〜125°C
| 相同的
|
内部电压参考 |
N / A.
|
2.048V±2% |
[1]对于单个I2C总线顺序的更多设备预编程设备
[2]低于1 LSB的数字意味着没有错过代码。
[3]代码范围100到4000(参见 准确性)
如果关闭未使用的DAC,可以减少[4]。
MCP4725 / 6,MCP7428框图
MCP728已经从最简单的DAC缓冲区的设计演变
(MCP4725),通过(MCP4726),带有外部参考引脚,到
MCP4728提供内部电压参考,可选择增益Opamp,
和多个DAC输出。
MCP4728还具有卓越的寻址方案。
您可以在下面的框图中查看此演变:
MCP4725框图
[Source: Datasheet]
MCP4726框图
[Source: Datasheet]
MCP4728框图
[Source: Datasheet]
MCP4728数据表
下载MCP4728数据表 这里.
I2C地址
MCP4728地址映射
地址的较低三位由三个数字组成
输入A2,A1,A0,同时上位固定在1100xxx。
与MCP4725和MCP4726 A0,A1不同
A2完全可编程,其状态存储在内部
EEPROM。制造商有一个选项来编程这些位
对于您在大型生产运行中有用。
最后一个
bit( LSB ' 'l)以后发送的地址位,忽略它是读写位(R / WN)。所以
可用的地址是:
0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67
在简单的系统中使用,您只需要一个地址0x60,因为该设备将提供4个DAC输出。
输出更新
MCP4728中的每个通道都有新的存储寄存器:
您可以使用I2C数据传输将数据发送到输入寄存器但是
the output won'T更新,直到数据从输入传输到输出。
有两个信号控制更新输出。
- LDACN - 同时影响所有4个通道。
- UDACN - 仅影响更新的通道(在I2C数据的TX之后)。
已添加信号LDACN和UDACN作为控制输入。
LDACN从引脚输入,而UDACN是内部控制
与每个通道更新(I2C数据包)相关联的位。
两者都用于更新模拟输出,但也使用LDACN
用于读取和编写存储在EEPROM中的内部地址位。
您可以在下面的框图中看到这些信号和寄存器:

[Source: Datasheet]
默认单通道更新
在正常使用中,您可能希望保持LDACN高,并在每个I2C包装数据传输中设置UDACN比特低。
在这种情况下a
单个DAC输出在最后一个ACK位的下降沿更新
I2C数据传输序列。所以,当您发送I2C数据时
通道,DAC输出电压在I2C末尾更新
transmission.
这 EEPROM. 也在输出更新后写入。
同步所有通道更新
如果你的 应用程序要求所有模拟输出都必须改变
然后同时使用LDACN信号。
硬件方法
设置UDACN位高(非活动)设置LDACN高(非活动),发送每个通道的I2C数据(哪个加载
每个通道的输入寄存器)使用命令:
"DAC输入寄存器的多写"
(Datasheet 表5-1写入命令类型) .
发送最后一个通道数据后,将LDACN拉低。这个
将所有输入寄存器数据传输到输出寄存器所以模拟
输出所有更改的同时。
软件方法
软件 方法(对于相同的操作)是发送I2C将军
调用软件更新命令。这假设LDACN保持高位
(inactive).
EEPROM.更新
大多数命令(参见数据表)后执行EEPROM写
你已经发送了DAC数据'如果你想要的时候没有采取行动
保存当前的DAC状态。类似地,数据被从中恢复
EEPROM在复位或上电时,因此内置了保存和恢复数据
MCP4728操作。
EEPROM.写道可以占用最多50毫秒(典型值),没有其他
可以执行命令,因此您必须读取RDY / BSYN PIN(或寄存器
位)检查您是否可以继续。
警告: 大多数命令更新EEPROM拍摄20ms(典型值)。
唯一没有写入EEPROM的命令是:
- "快速写入DAC输入寄存器", and
- "DAC输入寄存器的多写"
查看数据表:"表5-1写入命令类型"对于上述命令。
警告: 大学教师't持续写入EEPROM,因为它有一生。
快速更新
在某些人 您可能想要的应用程序
获得最大刷新率。为此,您需要最快的命令(最短的I2C数据流)。
这将是只写入单个寄存器的一个,也是一个
不执行EEPROM写入。
该命令是:
"快速写入DAC输入寄存器"
See the Datasheet: "表5-1写入命令类型"对于上面的命令。
此命令要求使用LDACN信号来上传输入
注册到输出寄存器I.E.以获得模拟电压输出
at the pin.
警告: 为了这'fast'命令必须使用LDACN控制引脚。
如果要以最快的速率更新所有输出,那么您必须避免写入EEPROM。您可以使用此命令:
查看数据表:"表5-1写入命令类型"对于上述命令。
此命令还要求您使用LDACN控制引脚更新输出。
警告: 为了这'fast'命令必须使用LDACN控制引脚。
速度或针脚节省(LDACN)
LDACN.
有四个问题:
- 编程内部地址位(需要LDACN)。
- 最快更新速度(需要LDACN)。
- 同步更新(需要LDACN)。
- 保存微控制器引脚(不需要LDACN)。
编程地址位
想象一下,您的电路板上有8个MCP4728设备,最初使用
LDACN更新每个设备的内部地址位。这意味着
您需要有8个单独的控制信号从微控制器执行此操作
task.
如果你不'T希望为LDACN控制使用8个微控制器引脚
然后你决定将LDACN推出,并将制造商纳入计划
每个MCP4728(所以你不'T必须在董事会上做到)。这节省了
you 8 control lines.
LDACN地址位定时
如果您决定想要LDACN,因为您想要快速同步
updates then you'll可能想要更新MCP4728内部
addresses.
要编程地址位,必须控制LDACN信号
输出I2C数据包时钟和I2C数据速率
功能必须不超过400kHz(数据表的第5.4.4节),
Specifically:
"LDACN PIN需要逻辑过渡"High" to "low" during
第二个字节第8个时钟的负脉冲,并保持"Low"
直到第三个字节的末尾。"
由于这是一个准确的Arduino难以时间(你
必须从I2C数据包开始时的信号),你应该
降低I2C时钟速率。
使用低于400K的I2C速率的解决方案
思考问题 - 你不'不得不使用最快的速率
设置地址 - 毕竟你只能做到这一点 -
之后,地址永久地存储在内部EEPROM中。
使用i2c命令setclock()或使用a
Bit-Banced输出。 setclock()只能接受少数频率和可能
not allow 10kHz.
所以解决方案是接管I2C引脚并将它们用作正常
数字I / O和BIT-BANG信号,但也可以控制LDACN
时间和在正确的时间。一个可以适应的位爆炸库是
软轴.
最快的更新和同步更新
如果你不'有LDACN控制,那么你不能做的三件事:
- 快速更新。
- 快速同步更新。
- 更新内部地址位。
你可以't do 快速地est updates 由于LDACN用于命令:"快速写入DAC输入寄存器"(数据表表5-1写命令类型)。
LDACN也用于 同步更新 模拟输出 - 最快的方法。有速度较慢 软件方法.
节省微控制器销钉
删除LDACN控制连接。
如果您的设计在没有LDACN控件的情况下(见上文),那么您只需保存8条“设计”。
删除RDY / BSYN状态连接
您可能想要使用微控制器输入监视的其他引脚是
RDY / BSYN PIN。这表示MCP4728是否忙 -
当EEPROM写入正在进行中时。您可能希望将此引脚添加为
中断微控制器以节省轮询时间,但是您再次
最多可包含8个设备。
替代方案是从其中一个读取RDY / BSYN信号
使用I2C查询寄存器,并保存8个微控制器引脚。
结论
如果您需要超过一些DAC输出,MCP4728非常有用
有4个芯片。您可以使用内置的电压参考
精确地控制电源的输出电压。
每单位DAC
MCP4728每芯片的DAC更多,因此超过几个DAC
输出更易于使用MCP4728。这是因为你赢了't need to
购买制造商预编程芯片(编程I2C地址)。
能量消耗
与MCP4728相比,您可以使用MCP4725或MCP4726节省大量的断电电流! (与45ua相比60na)。
但请注意,上电规范中的最大电流
四个MCP4725 / 6S比MCP4728高(410 * 4 = 1640uA)的比例高于MCP4728(与1400A相比)。
状态
|
MCP4728 |
MCP4725和MCP4726: |
通电
|
800ua〜1400a |
210ua〜410ua,相同
|
断电
|
45ua〜60ua. |
60na〜2ua,90na〜2ua |
笔记: 关闭未使用的DAC链以节省电流。
电压参考
MCP4728的内置电压参考更方便。
节省微控制器销钉
如果您对速度不感兴趣,那么您可以使用相同的号码
MCP4725和MCP4726中使用的控制连接。基本上集
无效的LDACN控制PIN和DON'读取RDY / BSYN状态引脚。自从此以来,这是可能的
MCP4728中有替代寄存器控制的内部功能。
编程地址位
这需要对I2C输出具有恰好定时信号进行消除;切换缓慢就像更容易 位撞击手术 to get this done.
速度
该芯片具有与MCP4725相同的底层硬件,并具有类似的性能(参见 MCP4725正弦波形)。
然而,它将比MCP4725更慢,因为有更多的数据
传输以更新4寄存器(可能是您可以停止的寄存器
中间 - 未进行测试)。
计算表明即使是I2C
在3.4MHz时,最大更新速率仍然很慢(见 MCP4725 内部使用相同的DAC硬件)。另一种选择是 MCP4922. 但即使仍然很慢。平行DAC适合于例如快速更新。 DAC08。
隐私政策
| 接触
| 关于我
网站地图
| 使用条款
新的! Comments
让你说到你刚刚阅读的东西!留下下面的框中的评论。