成为订阅者(免费)

加入29,000名其他订阅者以获得用户销售折扣和 其他免费资源。
:
:
大学教师'担心 - 您的邮件地址完全是 安全的。我保证使用它 只要 to send you MicroZine.

MCP4728


MCP4728是一种模拟DAC,给您四个缓冲输出 电压由I2C串行接口控制。每个DAC都可以输出比例的 输入参考电压。自呢's a 12bit device its 分辨率是VREF / 4096。所以你可以选择分割的非常好的步骤 from the reference.


MCP4728突破板

每个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设备。

MCP2748引脚向导
                                        [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负载)
1000pF100pF
  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框图

MCP4725框图
                                [Source: Datasheet]

MCP4726框图

MCP4726框图
        [Source: Datasheet]

MCP4728框图

MPC4728框图
             [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中的内部地址位。

您可以在下面的框图中看到这些信号和寄存器:

MPC4728框图
             [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。您可以使用此命令:

  • "DAC输入寄存器的多写" 

    查看数据表:"表5-1写入命令类型"对于上述命令。

此命令还要求您使用LDACN控制引脚更新输出。

警告: 为了这'fast'命令必须使用LDACN控制引脚。

速度或针脚节省(LDACN)

LDACN.

有四个问题:

  1. 编程内部地址位(需要LDACN)。
  2. 最快更新速度(需要LDACN)。
  3. 同步更新(需要LDACN)。
  4. 保存微控制器引脚(不需要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控制,那么你不能做的三件事:

  1. 快速更新。
  2. 快速同步更新。
  3. 更新内部地址位。

你可以'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

让你说到你刚刚阅读的东西!留下下面的框中的评论。




隐私政策 | 接触 | 关于我

网站地图 | 使用条款


ezoic.报告此广告

访问我们的Facebook页面:

   点击这里



最近的文章

  1. 如何使用ADS1115

    使用ADS1115精度16位ADC进行教程进行低功耗。

    阅读更多

  2. arduino.模拟输出...易模拟输出生成

    arduino.模拟输出:如何创建最精确的PWM模拟输出以及如何创建模拟PWM正弦波。

    阅读更多

  3. 数号和等效的快速宏。加快代码!

    了解DigitalWrite()的工作原理......现在使用17倍宏宏!

    阅读更多

  4. TCS230颜色传感芯片:如何运作以及如何使用它。

    如何使用TCS230(/ TCS3200)彩色检测器芯片并轻松将其添加到您的任何项目中。

    阅读更多

  5. 如何使用ADXL345进行运动感测等。

    使用ADXL345 Acellerometer,您可以检测到16G!您还可以了解如何使用它来点击检测等。

    阅读更多

  6. HMC5883L 3轴数字MAGENTOMTER如何运作

    HMC5883L - 如何制作数字罗盘,了解HMC5883L和QMC5883L之间的差异以及它们是否兼容。

    阅读更多



读者 Comments

"I wanted to thank
你这么好
对于所有信息
你已经提供了
你的网站's

高超极好的."

- 逃亡Potthath.

"This site really is
最好的和我最喜欢的。
我发现这里有很多很有用
项目和提示。"

- 米兰

Bursach.<at>gmail.com<

"Awesome site,
非常,非常容易和好
导航!"


-
镭_tr.<at>
wolf359.cjb.net.


学习微控制器

"Interested in
微控制器?"

注册
免费7天指南:

自由 GUIDE : CLICK HERE


"I am a newbie to PIC
我想说
 how great your
网站一直在为我。"


- 戴夫

de_scott.<at>bellsouth.net

"Your site is a great
和完美的工作。
恭喜。"


- SURESH.

IntegratedInfosys.<at>
Yahoo.com.

"I couldn't find the correct
要定义的词语
你的网页。

非常有用,揭开,
诚实明确。

非常感谢
你的时间和作品。
问候。"


- Anon.

回到顶部