极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16034|回复: 8

DIY arduino AD 模块

[复制链接]
发表于 2014-10-27 16:36:05 | 显示全部楼层 |阅读模式
参考inel 伽利略的AD模块,做了一款兼容Arduino的AD模块,有图有例程。

资料 可以参考QQ群  204749011  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-10-27 23:40:51 | 显示全部楼层
这个板子主要用在什么地方呢??
回复 支持 反对

使用道具 举报

发表于 2014-10-28 09:05:14 | 显示全部楼层
本帖最后由 darkorigin 于 2014-10-28 09:06 编辑

也不发点详细技术参数。2楼所以要发问啊~~~楼主补充 补充~~~~
比如AD的位宽,采样精度,采样率。
或者至少说下用的神马芯片 大家也好学习~~~
价格 等等
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 09:17:49 | 显示全部楼层
本帖最后由 rascalmicro 于 2014-10-28 09:26 编辑

特附上相关资料,以便更方便了解该AD的性能:

特性
12位SAR ADC
8路单端输入
通道序列器功能
高吞吐速率:1 MSPS
模拟输入范围:0 V至2.5 V
12位温度数字转换器
温度传感器精度:±1°C
温度范围:−40°C至+125°C
额定电压(VDD):2.8 V至3.6 V
逻辑电压(VDRIVE):1.65 V至3.6 V
掉电模式电流: <10 A
2.5 V内部基准电压源
内部上电复位
高速串行接口SPI
20引脚LFCSP封装

产品聚焦
1. 非常适合监控电信、过程控制和工业控制等各种应用 系统中的系统变量。
2. 高吞吐速率(1MSPS)和低功耗。
3. 8路带通道序列器的单端输入。可以选择通道顺序,ADC将按该顺序循环执行转换。
4. 集成0.25°C分辨率的温度传感器。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 14:02:30 | 显示全部楼层
附上arduino的一断程序,可以读写单通道数据。
  1. #include <SPI.h>

  2. unsigned char  receiveBuffer[2] = {0, 0}; //receive data buffer
  3. unsigned short value = 0; //
  4. unsigned short convData;//conversion data,remove the hight 4 bits for channel inforamtion
  5. float volts = 0;   //displayed voltage
  6. unsigned char ch; //voltage Channel
  7. float vRef=2.5;
  8. char   tempString [12]  = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

  9. #define CS 10

  10. void setup() {
  11. //for debug
  12.   Serial.begin(9600);

  13.   //set up the  SPI protocol ref to the AD7298 datasheet
  14.   SPI.setBitOrder(MSBFIRST);
  15.   SPI.setDataMode(SPI_MODE2);
  16.   SPI.begin();   
  17. }

  18. void loop() {
  19.    
  20.   //the 1st cycle,write cycle
  21.   digitalWrite(CS, LOW);
  22.   SPI.transfer(0xA0); //the first Byte  
  23.   SPI.transfer(0x00); //the last byte
  24.   digitalWrite(CS,HIGH);
  25.   delay(10);
  26.    
  27. //the 2nd cycle,wait for conversion cycle
  28.   digitalWrite(CS, LOW);
  29.   SPI.transfer(00);
  30.   SPI.transfer(00);
  31.   digitalWrite(CS,HIGH);
  32.   delay(10);
  33.    //the 3rd cycle,read voltage from the assigned channel in the write cyle
  34.      
  35.   digitalWrite(CS, LOW);
  36.   receiveBuffer[0]=SPI.transfer(00);
  37.   receiveBuffer[1]=SPI.transfer(00);
  38.   digitalWrite(CS,HIGH);
  39.   //analysis the data for display
  40.   value = ((unsigned short)receiveBuffer[0] << 8) + receiveBuffer[1];
  41.   convData = value & 0x0FFF; //adc raw data value
  42.   ch = (value & 0xF000) >> 12; //adc channel raw data
  43.   volts = 2*((float)convData * vRef) / 4096; //
  44.   
  45.   Serial.print("rawdata=");
  46.   itoa(convData, tempString, 10);
  47.   Serial.println(tempString);
  48.   
  49.   Serial.print("THE Vin0 input Voltage is:");
  50.   Serial.print(volts,4);
  51.   
  52.   Serial.println('\n');
  53.   delay(1000);
  54. }


复制代码
回复 支持 反对

使用道具 举报

发表于 2014-11-26 13:20:48 | 显示全部楼层
楼主的QQ群是和什么相关的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-26 18:02:26 | 显示全部楼层
liangquan 发表于 2014-11-26 13:20
楼主的QQ群是和什么相关的?

是关于IOT的一个ARM 主控板【AT91sam9g20】  你有兴趣可以了解下
回复 支持 反对

使用道具 举报

发表于 2014-11-27 09:04:11 | 显示全部楼层
rascalmicro 发表于 2014-11-26 18:02
是关于IOT的一个ARM 主控板【AT91sam9g20】  你有兴趣可以了解下

它和本帖的Arduino的AD模块有什么关系?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-28 11:53:18 | 显示全部楼层
这个AD模块也已用在 Iot shell上  由于带了电平转换,可以直接用到3.3V的 环境下
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-29 18:37 , Processed in 0.060552 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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