成为订阅者(免费)

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

在PIC MICRO中使用内部DAC

**上面 - 第1段 - new.shtml ***

DAC或Digital to模拟转换器通常是一个组件I.C。那你 单独购买并连接到您的微控制器,但你知道吗? 通常是一个简单的DAC内置于微控制器中;那些包含比较者的人 module.

比较器模块通常允许您以多种方式设置 包括传统的独立站点,其中两个有两个输入 (标记加上,减去)和输出。你经常想比较一个 输入信号到已知电压电平,因此您可以捕获它的时间 高(或产生中断)。在超声级别探测器中,您想要 忽略噪音并检测信号的脱模形式。

但是你真的不'当您只想要输入时,要使用三个引脚 信号连接到微控制器比较器输入。你可以把它设置为 由于比较器可以选择使用内部DAC设置一个输入 比较器。并且输出可以在内部路由以触发 打断。以这种方式,仅使用一个引脚来进行电压比较。

对于一些PIC微控制器,DAC输出也可以发送到输出 PIN为您自己使用。

注意:有些PIC MILLY不会让您 输出电压参考外部PIN - 你必须读到 数据表 (如果看到 cvrcon. 已 标有一个控制位 Cvroe. ) - 如果它 那么你可以使用DAC输出。

虽然内部电压参考不是那种通用(如图所示) 不是真正用于外部使用)它是 免费,可编程 和 ready to use.

它有一些限制,但最重要的是你不能开车 高潮流 出去,只要它开车 高阻抗很好。 DAC.
注意:如果您需要推动更多的当前 用opamp缓冲它。

正常使用DAC

电压参考模块仅旨在为此产生电压 内部比较器模块,但某些设备包括输出的控制位 该电压销钉。  

注意:比较器模块是灵活的 不必使用引用 - 它也可以使用来自的模拟输入 pin.  那里'更多有关使用比较器的信息 here.

并非所有设备都具有此控制位,因此您必须查看数据表 检查您的设备是否会输出电压。查看下一部分查看 数据表的电压参考部分中的典型寄存器。

笔记: 这个控制只是 用于测试参考生成器,但仔细使用您可以使用 it in your projects.

pic DAC控制寄存器

要了解您是否可以使用PIC'S内部电压参考DAC 检查设备的数据表并查找 cvrcon. 控制寄存器。应该有一个 control bit labeled Cvroe. which is the 控制电压是否被发送到输出引脚的位(通常是 RA2).

这里'16F88数据表的一部分:

 cvrcon. 电压参考输出控制 -  16F88

这里,位6控制电压引用的电压输出(对于16F88 this is the "RA2/AN2/CVREF/VREF-" pin i.e. pin 1).

注意如果您只能找到标记的控制寄存器 Vrcon. then you 能够 't 输出DAC电压。

电压参考框图

发电机的框图是内部硬件表示 系统 - 您可以使用每个功能块识别每个控制位 it'不难理解。

16F88电压参考块 diagram
电压参考框图16F88

有一个16级电阻网络,每个臂使用模拟选择 mux ( CVR. [3..0] - 这发送了模拟 电压到比较器参考输入(参见"Comparator Module" in the 使用比较器中的参考电压的数据表)。

打开电压参考 cvren. 使FET能够在电阻链顶部。   CVRR. 通过透过的总电流 电阻链,因此输出电压范围是可控的(一些 extent).

要在芯片外发送模拟电压 Cvroe. 启用一个模拟开关发送 voltage to the 'RA2/AN2/CVREF/VREF' pin.

为DAC输出配置PIC引脚

下面的框图显示了16F88的PIN 1 - 它'非常有用,看看如何 硬件连接,以便正确设置PIN,以便电压参考 output.

DAC输出引脚RA2 / AN2 / CVREF / VREF
(PIN框图)。

下面的框图显示了16F88的PIN 1 - 它's useful to see how TheHardWare已连接,以便正确设置PIN电压以进行电压 referenceoutput.

RA2 / AN2 / CVREF / VREF pin (pin1 16F88)

引脚1的16F88 RA2


它表明电压参考直接连接到销钉,因此allyou 需要做输出电压是将trisa位设置(至1) - 制作thep &N FET进入高阻抗,即绘制无电流 - 并设置CVROE(1) 显然,CVREN必须是1以实现电压参考。还有哮喘集 Ansel(1)(见下文)。

注意:未显示TRIS控制电路 onthis diagram.

  • 用于针头的ANSEL
  • PIN RA2至1的TRISA
  • cvroe到1
  • cvren到1

控制Ansel.

RA2引脚是唯一是模拟I / O的引脚(因为 电压输出)所有其他模拟引脚仅为模拟输入。

此寄存器(ANSEL)默认为所有人,以便它们都是模拟I /(O) atpower up but it'最好控制价值观,让你知道他们是什么 shouldbe.

让它走。

测量值

vsupply = 4.93v.

(i)CVRR = 1(低范围)
输出16个电压步 0.01V3.05V

(ii)CVRR = 0(高范围)
输出16个电压步 1.22V3.53V

数据表信息

低压范围

(i) CVRR. =1
0.00 CVRSRC与0.625 CVRSRC,CVRSRC / 24步尺寸
cvref =(vr<3:0>/24) • (CVRSRC)



高压范围

(ii) CVRR. =0
0.25 CVRSRC至0.72 CVRSRC,具有CVRSRC / 32步尺寸
CVR. EF = 1/4•(CVRSRC)+(VR3:VR0 / 32)•(CVRSRC)


因此,对于第二种范围(更高电压输出范围),您可以更精细 步骤化和略高的最大电压输出(但最小值是 notzero).

CVR. SRC = 4.93V.

测量(i) 0.01V 3.05V
为了 (i)范围是 0V to 4.93 * 0.625 = 3.08V
测量(ii) 1.22V 3.53V
(ii)范围是 0.25 * 4.93 = 1.23V to 4.93 * 0.72 = 3.55V


这表明实际测量非常匹配数据表预测 well.

速度

使用以下代码运行8MHz,为输出产生脉冲宽度 步骤11us(90kHz) - 显然这将根据所使用的代码而改变 但是你可能可以创建一个简单的信号发生器。

注意:您可以通过以下方式提高输出速度 使用20MHz晶体 - 对于它使用内部的当前项目 8MHz的振荡器所以那里'S的改进空间。

编程和使用CAC中的DAC

DAC电压发生器C代码和十六进制文件

下载 包含十六进制和源文件和MIKROC项目的ZIP文件 files:

下载 :

下载zip文件: 在这里下载.

编程

以下代码可让您实验DAC生成楼梯 输出和触发信号同步示波器。

如果你不'T有示波器添加DELAY_MS(1000)"for loop" to let 您可以测量DVM上的输出。

影子寄存器

使用cvrcon_shdw允许更新而不改变实际值 CVRCON - 最终输出只是在For循环结束前进行。  

这是因为设置CVRCON CVR [3..0]以来零立即改变 输出到Zero i.e.制作故障输出。所以使用CVRCON_SHDW给出 故障免费 operation.

// ////// //////////////////////////////////////////////////////////////////////////// //////////
//
// 文件:16f88-contactig-readio-dac.c
//
// 作者:J F Main。
//
// 描述:
//
// 测试电压比较器输出
//
// 编译器:mikroc,mikroelektronika c编译器
// 用于Microchip PIC微控制器
// 版本:6.2.0.0
//
// 注意测试:
//
// 在16F88测试
//
// 要求:
//
// 时钟:8MHz(内部)
//
// 目标:16F88
//
// 版本:
// 1.00 - 初始版本。
//
// 版权所有:版权所有©John Main 
//    //www.best-microcontroller-projects.com
// 只要非商业用途
// 包含整个版权声明
// 在源代码和任何其他文档中。
//
// ////// //////////////////////////////////////////////////////////////////////////// //////////
#包括  "bit.h"

// ////// //////////////////////////////////////////////////////////////////////////// //////////
//定义
#define ra2 2

// ////// //////////////////////////////////////////////////////////////////////////// //////////
// 从这里开始
//
空白  main( 空白 ){
无符号   char  i=0;
无符号   char  CVRCON_shdw = 0;

   / *设置16f88 * /
   OSCCON  = 0x70;   // B6..4 = 110(4MHz)111 =(8MHz)。

   TRISB = 0;        // 设置为输出

   ANSEL = (1<<RA2);  // 除RA2 ANA之外的数字I / O. I / O.
   TRISA = (1<<RA2);  // 将ra2设置为输入i.e.high z

    // 设置电压参考
    // cvren启用参考
    // cvroe输出使能引脚
    // cvrr选择粗糙范围
   CVRCON = (1<<CVREN) | (1<<CVROE) | (1<<CVRR);
   cvrcon_shdw = cvrcon;

    尽管 (1) {       // 无限循环

       // 范围触发器
      setBit(PORTB,3);
      delay_us(1);
      resBit(PORTB,3);

       为了 (i = 0;一世<16; i++) {

          // 注意在阴影寄存器上工作
          // 寄存器立即更新
          // 所以这里输出将被归零。
          // (如果不使用shdw)。
         CVRCON_shdw &= 0xf0;  // 清除4,保持前4名

          // 更新电压参考MUX
         CVRCON_shdw |= (i & 0x0f);  // 或低4位

          // 一次输出到真实寄存器。
         cvrcon = cvrcon_shdw;
      }
   }
}

内部DAC缺点

内部DAC的缺点是它:

  • 只能推动高阻抗。
  • 只有16个步骤也分为高低范围。
  • 仅使用内部电源作为参考*。
  • 不能完全到v +。

*注意:对于18F2550设备范围您 可以在Vref +上从引脚中选择参考电压。

如果您设计了一个电路
有这些限制
记住你're good to go!

优点:

  • 可编程的。
  • 已经在微控制器内(取决于设备)。
  • 没有额外的布线。
  • 自由!

新的! 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,
非常,非常容易和好
导航! "


-
Matt_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.

回到顶部