【mcuclub】模数转换ADC0832

article/2025/10/18 22:19:19

一、实物图

 

二、原理图

编号名称功能
1CS片选使能,低电平芯片使能。
2CH0模拟输入通道0,或作为IN+/-使用。
3CH1模拟输入通道1,或作为IN+/-使用。
4GND电源地
5DI数据信号输入,选择通道控制。
6DO数据信号输出,转换数据输出。
7CLK芯片时钟输入。
8VCC/REF电源输入及参考电压输入(复用)。

为什么DO和DI引脚连在一个引脚上?

由于ADC0832在通信时并不是会同时使用DO和DI端口,并且DO和DI端口与单片机的接口是双向的,所以在设计电路中可以用一根线将DO端和DI端连接到一起。

三、简介(ADC:Analog Digital Converter)

ADC是用于将模拟形式的连续信号转换为数字形式的离散信号的一类设备。ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32μS,具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。

计算公式:

电器参数:

  • 8位分辨率;
  • 双通道 A/D 转换;
  • 输入输出电平与 TTL/CMOS 相兼容;
  • 5V电源供电时输入电压在 0~5V 之间;
  • 工作频率为 250KHZ,转换时间为 32μS;
  • 一般功耗仅为15mW;
  • 8P、14P—DIP(双列直插)、SOP多种封装;
  • 商用级芯片温宽为0°C to +70°C,工业级芯片温宽为−40°C to +85°C;

四、内部框图

 

五、通信协议

ADC0832的外部连接采用SPI总线结构,这样便把它的连接方式与其他设备统一起来了。

ADC0832采用同步串行传输,同步是通过时钟线进行数据同步;串行传输通过DO 数据口一位一位传输数据。

六、通道配置

当配置位2位数据为1、0时,只对CH0 进行单通道转换。当配置2位数据为1、1时,只对CH1进行单通道转换。当配置2位数据为0、0时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入,输出为两端的压差。当配置2位数据为0、1时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入,输出为两端的压差。

七、时序解析

由工作时序图可知:当芯片不进行模数转换时,片选端CS需要置1。在当芯片需要模数转换时,片选端CS需要置0,并且需要持续到模数转换完成。芯片使能选通后,在第1个CLK下降沿到来之前,DI需要置1,这意味着开始转换。之后在下两个CLK下降沿到来之前,DI需输入两位选择A/D转换器4个工作通道模式的数据。到这一步,本次模数转换中DI端工作部分已完成,不再输入数据,而是由DO端进行工作。在随后的CLK下降沿到来之前开始输出转换后的数字信号,先输出8位数据的最高位,之后在每一个CLK下降沿到来之前依次输出数据的一位,直到输出8位数据的最低位;随后的每一个CLK下降沿到来之前依次输出相反字节的数据次低位到最高位,这就完成了一次A/D转换。在编程时会比较两次输出的8位数据是否一致,若一致说明A/D转换数据没有错误,就会将其数据保存下来。

代码如下:

/****

*******获取adc值函数

*******参量定义:CH:通道数  0:通道0   1:通道1

*******返回值:adc值

*****/

uint Adc0832_Get_Value(uchar CH)

{

   uchar i, data1=0, data2=0;

   ADC_CS = 0;                   //使能ADC0832

   //初始化

   ADC_CLK = 0;

   ADC_DATI = 1;

   _nop_();

   ADC_CLK = 1;

   _nop_();

   //通道选择

   if(CH == 0)                  //通道0

   {

      ADC_CLK = 0;

      ADC_DATI = 1;              //通道0的第一位

      _nop_();

      ADC_CLK = 1;

      _nop_();

      ADC_CLK = 0;

      ADC_DATI = 0;              //通道0的第二位

      _nop_();

      ADC_CLK = 1;

      _nop_();

   }

   else                         //通道1

   {

      ADC_CLK = 0;

      ADC_DATI = 1;              //通道1的第一位

      _nop_();

      ADC_CLK = 1;

      _nop_();

      ADC_CLK = 0;

      ADC_DATI = 1;              //通道1的第二位

      _nop_();

      ADC_CLK = 1;

      _nop_();

   }

   ADC_CLK = 0;

   ADC_DATI = 1;

  _nop_();

   for(i=0; i<8; i++)         //读取前8位的值

   {

      ADC_CLK = 1;

      _nop_();

      ADC_CLK = 0;

      _nop_();

      data1 = (data1 << 1) | (uchar)ADC_DATO;

   }

   for (i=0; i<8; i++)       //读取后8位的值

   {

      data2 = data2 | (uchar)ADC_DATO << i;

      ADC_CLK = 1;

      _nop_();

      ADC_CLK = 0;

      _nop_();

   }

   ADC_CS = 1;                   //释放ADC0832

   return (data1 == data2) ? data1 : 0;      //两次数据是否一致,一致则输出数据,否则输出0

}

八、流程设计

首先初始化引脚,然后CS拉低使能ADC,接着DI拉高开始转换,先配置通道,如果是通道0,则通道选择第一位和第二位分别置1和0;如果是通道1,则通道选择第一位和第二位分别置1和1。配置好通道后,开始读取前8位数据,然后读取后8位数据,数据读取完后CS拉高释放ADC。最后判断前8位数据是否等于后8位数据,如果相等,则返回数据,如果不等,则返回0。


http://chatgpt.dhexx.cn/article/uPq7nkQA.shtml

相关文章

[技术讨论] [DDS] AD9833原理介绍及chiliDDS驱动分享(上)

​ 其实本文还有另一标题&#xff1a;《AD9833调不通&#xff1f;看这篇**就够了》 总觉字里行间隐隐霸气外露&#xff0c;不符合作者低调的风格&#xff0c;于是换了个朴素标题。标题狂不狂暂且不评&#xff0c;作者水平有限却是个事实&#xff1b;看到这篇**是你我缘分&…

ADC0832的使用

百度搜索ADC0832 Datasheet便可以免费获取该芯片的权威数据手册。 最重要的是查看它的时序及对应英文词组的意思。 CLK为时钟信号&#xff0c;需要外部输入&#xff0c;可直接与单片机引脚相连 Chip Select&#xff08;CS&#xff09;:从Timing图中可以看出芯片工作期间要保持…

ADC0832的AD模数转换原理及编程

✅作者简介&#xff1a;嵌入式领域优质创作者&#xff0c;博客专家 ✨个人主页&#xff1a;咸鱼弟 &#x1f525;系列专栏&#xff1a;单片机设计专栏 目录 一、描述 二、模数转换原理&#xff1a; 三、模数转换的过程&#xff1a; 四、八位串行A/D转换器ADC0832简介&…

ADC0809的使用

一、前言介绍 使用ADC0809对一个模拟电压进行转换转换后的电压使用数码管显示出来 二、ADC0809的介绍 1、ADC0809简介 ADC0809是采用COMS工艺制造的双列直插式单片8位A/D转换器。分辨率8位&#xff0c;精度7位&#xff0c;带8个模拟量输入通道&#xff0c;有通道地址译码锁…

基于STM32F103RCT6的AD9833驱动开发(代码可以免费发邮箱)

基于STM32F103RCT6的AD9833驱动开发&#xff08;代码可以免费发邮箱&#xff09; AD9833手册分析 管脚定义&#xff1a; 手册就先讲到这里&#xff0c;不明白的欢迎评论区留言&#xff0c;另外我会把代码还有手册一并发送给感兴趣的朋友。 AD9833典型应用电路&#x…

AD9833数字信号发生器模块

简 介&#xff1a; 本文记录了使用快速制版测试AD9833这款数字信号发生器的内容。 关键词&#xff1a; AD9388&#xff0c;数字信号发生&#xff0c;快速制版 基于AD9833的正弦波&#xff0c;三角波&#xff0c;方波频率发生模块可以通过ZIGBEE来完成输入输出控制。其中还包括有…

STM32驱动AD9833模块

STM32驱动AD9833模块 前言软硬件准备一、本次使用的硬件二、代码 链接 前言 淘宝上买了个AD9833模块&#xff0c;stm32用商家的例程代码可以调频&#xff0c;可以调相&#xff0c;就是调不了幅度。换了几块不同32开发板都不行&#xff0c;重新以正点原子F103的工程为基础把驱动…

AD9833信号波形谐波

AD9833产生高频信号的谐波 ~ AD9833是一款AnalogDevices公司提供的数字信号可编程信号发生器芯片。它一般配有外置的主时钟信号&#xff0c;每次时钟信号将将内部28位的相位累加器递增一个相位数值。该相位数值由芯片SPI串口被外部的MCU设置。 相位累加器的高12位选择内部4096…

51驱动AD9833

使用51驱动AD9833模块的使用 关于AD9833相关参数程序流程代码片上传程序总结 原文链接&#xff1a;https://www.yourcee.com/newsinfo/2925703.html 关于AD9833 AD9833是一款低功耗、可编程波形发生器&#xff0c;能够产生正弦波、三角波和方波输出。各种类型的检测、信号激励…

Arduino + AD9833 波形发生器

Arduino SI5351 方波发生器_姜戈12的博客-CSDN博客SI5351 方波发生器https://blog.csdn.net/jiangge12/article/details/125815044 感觉 Si5351 只有方波还是少点意思。 看到有人做 AD9833 &#xff0c;成品卖355元。https://www.bilibili.com/video/av463721457/ 上面视频…

[技术讨论][DDS] AD9833原理介绍及chiliDDS驱动分享(上)

其实本文还有另一标题&#xff1a;《AD9833调不通&#xff1f;看这篇**就够了》 总觉字里行间隐隐霸气外露&#xff0c;不符合作者低调的风格&#xff0c;于是换了个朴素标题。标题狂不狂暂且不评&#xff0c;作者水平有限却是个事实&#xff1b;看到这篇**是你我缘分&#xff…

STM32单片机TFT显示AD9833 DDS信号发生器语音播报正弦波方波三角波

实践制作DIY- GC0146---TFT显示AD9833 DDS信号发生器 基于STM32单片机设计---TFT显示AD9833 DDS信号发生器 二、功能介绍&#xff1a; 硬件组成&#xff1a;STM32F103C系列最小系统板 1.8寸TFT彩屏AD9833信号模块4*4矩阵键盘DY-SV17F语音播报模块 1.通过4*4键盘来设定频率值和…

失真很大的波形发生器AD9833

波形发生器AD9833 01 波形发生器 一、AD9833 AD9833是一款AnalogDevices公司提供的数字信号可编程信号发生器芯片。 它一般配有外置的主时钟信号&#xff0c;每次时钟信号将将内部28位的相位累加器递增一个相位数值。 该相位数值由芯片SPI串口被外部的MCU设置。  相位累加器…

【STM32+cubemx】0030 HAL库开发:DDS芯片AD9833实现简单的波形发生器

大家好&#xff0c;我是学电子的小白白&#xff0c;今天带大家了解一款波形发生器芯片——AD9833。 AD9833是AD公司出品的一款DDS波形发生器&#xff0c;能够产生正弦波、三角波和方波输出。 1&#xff09;什么是DDS 通俗来讲&#xff0c;DDS是一种把波形预先存储在芯片内部的…

2.电赛进行时......(AD9833(DDS)模块的学习使用)

文章目录 前言一、DDS是什么&#xff08;信号发生器&#xff09;&#xff1f;二、AD9833模块介绍1.概述2.模块移植3、效果展示![在这里插入图片描述](https://img-blog.csdnimg.cn/2b0d29939275403f9248339c894965a0.png#pic_center) 前言 如果是玫瑰&#xff0c;它总会开花的…

AD9833介绍与应用(C语言实现)

1.特性 低功耗、可编程波形发生器&#xff0c;能产生正弦波、三角波和方波的输出&#xff1b; 主频时钟为25MHz时&#xff0c;可实现0.1Hz的分辨率&#xff1b;主频时钟为1MHz时&#xff0c;可实现0.004Hz的分辨率&#xff1b; 三线式串行接口(SDATA、SCLK、FSYNC)写入数据&a…

2021电赛预测—手把手带你玩转DDS模块AD9833

1、电赛预测 摘要&#xff1a;原定于7月28日才发布的器件清单&#xff0c;提前2天在26号就发布。感觉大家现在应该猜题预测&#xff0c;与其猜题&#xff0c;还不如静下心来做题。盲目猜题是没有必要的&#xff0c;熟悉相关器件倒尤为重要。不要到处去水群聊天&#xff0c;听风…

幻方....

c语言上机。。。。 c写的幻方。 1 /*************************************************************************2 > File Name: code/class/7.c3 > Author: 111qqz4 > Email: rkz2013126.com 5 > Created Time: 2015年11月11日 星期三 19时31分5…

Unity脚本生命周期流程图

转载自【无幻】&#xff1a;http://blog.csdn.net/akof1314/article/details/39323081 渲染 OnPreCull: 在相机剔除场景之前调用此函数。相机可见的对象取决于剔除。OnPreCull 函数调用发生在剔除之前。 OnBecameVisible/OnBecameInvisible: 在对象对于相机可见/不可见时调用此…

SonicUI在MFC中的使用

SonicUI是一个GUI引擎&#xff0c;提供了一些简单的UI组件实现高效率的UI效果&#xff0c;例如&#xff1a;自绘按钮、异形窗体、动画、超链接和图像操作方法。此项目作者开源到CodeProject&#xff0c;地址为&#xff1a;http://www.codeproject.com/KB/GDI/SonicUI.aspx。下载…