找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 712|回复: 0
打印 上一主题 下一主题
收起左侧

MCP4725模块 Arduino程序原理图 DAC数模转换 I2C接口

[复制链接]
跳转到指定楼层
楼主
电路原理图如下:


MCP4725是低功耗、高精度、单通道的12位缓冲电压输出数模转换器,具备非易失性存储器(EEPROM),用户可使用I2C接口命令将DAC输入和配置数据烧写到EEPROM中,实现数模转换功能。
二、功能特点
12-bit分辨率;
I2C通信接口;
模块工作电压3.3V-5.5V;
提供产生正弦波的Arduino测试程序。
三、 硬件介绍和说明
板子尺寸:15.5*15.5mm
板子功能说明:
VCC、GND:电源输入;
SDA、SCL:I2C通信接口;
OUT、GND: 信号输出;
P1处的三个焊盘用于改变I2C地址(默认为0x60):拉低时为0x60,拉高时为0x61

简单测试方法:Arduino UNO板烧写测试程序,VCC、GND、SDA、SCL分别接UNO板上的5V、GND、A4、A5,VOUT、GND接示波器,可看到如下波形:


Arduino程序:
  1. #include <Wire.h>//Include the Wire library to talk I2C

  2. //This is the I2C Address of the MCP4725, by default (A0 pulled to GND).
  3. //Please note that this breakout is for the MCP4725A0.
  4. #define MCP4725_ADDR 0x60   
  5. //For devices with A0 pulled HIGH, use 0x61

  6. //Sinewave Tables were generated using this calculator:


  7. int lookup = 0;//varaible for navigating through the tables

  8. int sintab2[512] =
  9. {
  10.   2048, 2073, 2098, 2123, 2148, 2174, 2199, 2224,
  11.   2249, 2274, 2299, 2324, 2349, 2373, 2398, 2423,
  12.   2448, 2472, 2497, 2521, 2546, 2570, 2594, 2618,
  13.   2643, 2667, 2690, 2714, 2738, 2762, 2785, 2808,
  14.   2832, 2855, 2878, 2901, 2924, 2946, 2969, 2991,
  15.   3013, 3036, 3057, 3079, 3101, 3122, 3144, 3165,
  16.   3186, 3207, 3227, 3248, 3268, 3288, 3308, 3328,
  17.   3347, 3367, 3386, 3405, 3423, 3442, 3460, 3478,
  18.   3496, 3514, 3531, 3548, 3565, 3582, 3599, 3615,
  19.   3631, 3647, 3663, 3678, 3693, 3708, 3722, 3737,
  20.   3751, 3765, 3778, 3792, 3805, 3817, 3830, 3842,
  21.   3854, 3866, 3877, 3888, 3899, 3910, 3920, 3930,
  22.   3940, 3950, 3959, 3968, 3976, 3985, 3993, 4000,
  23.   4008, 4015, 4022, 4028, 4035, 4041, 4046, 4052,
  24.   4057, 4061, 4066, 4070, 4074, 4077, 4081, 4084,
  25.   4086, 4088, 4090, 4092, 4094, 4095, 4095, 4095,
  26.   4095, 4095, 4095, 4095, 4094, 4092, 4090, 4088,
  27.   4086, 4084, 4081, 4077, 4074, 4070, 4066, 4061,
  28.   4057, 4052, 4046, 4041, 4035, 4028, 4022, 4015,
  29.   4008, 4000, 3993, 3985, 3976, 3968, 3959, 3950,
  30.   3940, 3930, 3920, 3910, 3899, 3888, 3877, 3866,
  31.   3854, 3842, 3830, 3817, 3805, 3792, 3778, 3765,
  32.   3751, 3737, 3722, 3708, 3693, 3678, 3663, 3647,
  33.   3631, 3615, 3599, 3582, 3565, 3548, 3531, 3514,
  34.   3496, 3478, 3460, 3442, 3423, 3405, 3386, 3367,
  35.   3347, 3328, 3308, 3288, 3268, 3248, 3227, 3207,
  36.   3186, 3165, 3144, 3122, 3101, 3079, 3057, 3036,
  37.   3013, 2991, 2969, 2946, 2924, 2901, 2878, 2855,
  38.   2832, 2808, 2785, 2762, 2738, 2714, 2690, 2667,
  39.   2643, 2618, 2594, 2570, 2546, 2521, 2497, 2472,
  40.   2448, 2423, 2398, 2373, 2349, 2324, 2299, 2274,
  41.   2249, 2224, 2199, 2174, 2148, 2123, 2098, 2073,
  42.   2048, 2023, 1998, 1973, 1948, 1922, 1897, 1872,
  43.   1847, 1822, 1797, 1772, 1747, 1723, 1698, 1673,
  44.   1648, 1624, 1599, 1575, 1550, 1526, 1502, 1478,
  45.   1453, 1429, 1406, 1382, 1358, 1334, 1311, 1288,
  46.   1264, 1241, 1218, 1195, 1172, 1150, 1127, 1105,
  47.   1083, 1060, 1039, 1017,  995,  974,  952,  931,
  48.    910,  889,  869,  848,  828,  808,  788,  768,
  49.    749,  729,  710,  691,  673,  654,  636,  618,
  50.    600,  582,  565,  548,  531,  514,  497,  481,
  51.    465,  449,  433,  418,  403,  388,  374,  359,
  52.    345,  331,  318,  304,  291,  279,  266,  254,
  53.    242,  230,  219,  208,  197,  186,  176,  166,
  54.    156,  146,  137,  128,  120,  111,  103,   96,
  55.     88,   81,   74,   68,   61,   55,   50,   44,
  56.     39,   35,   30,   26,   22,   19,   15,   12,
  57.     10,    8,    6,    4,    2,    1,    1,    0,
  58.      0,    0,    1,    1,    2,    4,    6,    8,
  59.     10,   12,   15,   19,   22,   26,   30,   35,
  60.     39,   44,   50,   55,   61,   68,   74,   81,
  61.     88,   96,  103,  111,  120,  128,  137,  146,
  62.    156,  166,  176,  186,  197,  208,  219,  230,
  63.    242,  254,  266,  279,  291,  304,  318,  331,
  64.    345,  359,  374,  388,  403,  418,  433,  449,
  65.    465,  481,  497,  514,  531,  548,  565,  582,
  66.    600,  618,  636,  654,  673,  691,  710,  729,
  67.    749,  768,  788,  808,  828,  848,  869,  889,
  68.    910,  931,  952,  974,  995, 1017, 1039, 1060,
  69.   1083, 1105, 1127, 1150, 1172, 1195, 1218, 1241,
  70.   1264, 1288, 1311, 1334, 1358, 1382, 1406, 1429,
  71.   1453, 1478, 1502, 1526, 1550, 1575, 1599, 1624,
  72.   1648, 1673, 1698, 1723, 1747, 1772, 1797, 1822,
  73.   1847, 1872, 1897, 1922, 1948, 1973, 1998, 2023
  74. };


  75. void setup()
  76. {
  77.   Wire.begin();

  78.   // Set A2 and A3 as Outputs to make them our GND and Vcc,
  79.   //which will power the MCP4725
  80.   pinMode(A2, OUTPUT);
  81.   pinMode(A3, OUTPUT);

  82.   digitalWrite(A2, LOW);//Set A2 as GND
  83.   digitalWrite(A3, HIGH);//Set A3 as Vcc
  84. }
  85. //---------------------------------------------------
  86. void loop()
  87. {
  88.   Wire.beginTransmission(MCP4725_ADDR);
  89.   Wire.write(64);                     // cmd to update the DAC
  90.   Wire.write(sintab2[lookup] >> 4);        // the 8 most significant bits...
  91.   Wire.write((sintab2[lookup] & 15) << 4); // the 4 least significant bits...
  92.   Wire.endTransmission();
  93.   lookup = (lookup + 1) & 511;
  94. }

复制代码

pdf资料下载: MCP4725 12-bit DA转换模块.7z (6.03 MB, 下载次数: 6)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表