1 / 55

第 14 章 ADC 和 DAC 模块

第 14 章 ADC 和 DAC 模块. 何宾 2011.12. 本章内容. 本章主要是介绍 PSoC3 内的 Δ-Σ ADC 模块和 DAC 模 块,这两个模块和前一章所介绍的模拟前端一起构成一个 高可靠的、强大功能的模数和数模混合系统,这两个模块 也是 PSoC3 中最重要的两个功能部件。 通过本章内容的学习,不仅能了解和掌握 ADC 和 DAC 模块的工作原理,还能掌握使用 PSoC3 实现一个模数和数 模混合系统的方法。. Δ-ΣADC 模块. PSoC3 包含一个 Δ-Σ ADC 。这个 ADC 提供了差分

jolene-dyer
Download Presentation

第 14 章 ADC 和 DAC 模块

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第14章 ADC和DAC模块 何宾 2011.12

  2. 本章内容 本章主要是介绍PSoC3内的Δ-Σ ADC模块和DAC模 块,这两个模块和前一章所介绍的模拟前端一起构成一个 高可靠的、强大功能的模数和数模混合系统,这两个模块 也是PSoC3中最重要的两个功能部件。 通过本章内容的学习,不仅能了解和掌握ADC和DAC 模块的工作原理,还能掌握使用PSoC3实现一个模数和数 模混合系统的方法。

  3. Δ-ΣADC模块 PSoC3包含一个Δ-Σ ADC。这个ADC提供了差分 输入,高分辨率和良好的线性度,该ADC可用于声音信号 处理和测量方面的应用。下表给出了不同ADC分辨率下的 采样速度和SNR值。

  4. Δ-ΣADC模块 图 △-∑的内部功能原理

  5. Δ-ΣADC模块 图 ADC△-∑原理结构

  6. Δ-ΣADC模块 从前面的图可以看出,输入缓冲区(Input Buffer) 连接到内部和外部总线输入复用开关上。来自输入复用 开关上的信号直接或者通过缓冲区传递到Δ-Σ调制器。 Δ-Σ执行真正的模拟-数字的转换。 调制器过采样输入,产生串行的比特流输出。 高速数据流对大多数应用是没有意义的,所以在后 级加入抽取器。 抽取器将高速的串行数据流转换成并行的ADC结 果。抽取器控制分辨率和采样率;输出是最后四个采样 的函数。当输入多路复用开关被切换,输出的前三个采 样就不是有效的,直到开关切换后的第四个采样才是有 效的。

  7. Δ-ΣADC模块 在PSoC中的ADC模块的具体结构包括: • 输入放大器;提供高输入阻抗和用户可选择的增益。 • 3阶Δ-Σ调制器 • 抽取器抽取器包含一个4阶的CIC抽取滤波器和后端处理单元。 后端处理单元执行可选的增益,偏置和采样滤波器功 能。

  8. Δ-ΣADC模块--操作模式 设置者可以配置ADC,使其工作在下面的四种模式 之一: • 单采样; • 快速滤波器; • 连续/快速平均。 通过往控制寄存器写启动位或者发送开始转换信号 (Start Of Conversion,SOC),来启动ADC转换器。 当转换结束后,设置一个状态位,并且转换结束信 号(End of Conversion, EOC)为高电平,这个信号一直 保持到CPU或DMA读取转换值为止。

  9. Δ-ΣADC模块--操作模式 1.单采样 在触发器作用下,执行单次采样。在这种模式下, ADC在待机模式下等待SOC信号有效。当SOC有效, ADC执行一次采样转换,并捕获结果。为了检测EOC, 系统可以轮询一个控制寄存器或者配置外部的EOC信号 来产生一个中断或者调用DMA请求。 当传输完成后,ADC进入待机状态。直到下一个 SOC事件。

  10. Δ-ΣADC模块--操作模式 2.连续采样 在连续模式下,通道复位,然后连续运行直到停 止。当输入信号不需要切换,并且需要多个采样值时, 就可以采用这种模式。

  11. Δ-ΣADC模块--操作模式 3.快速滤波器 快速滤波器模式连续的捕获数据,在每个采样间,通 道复位。一个采样结束,另一个采样立即开始,使用轮 询,中断或DMA来传输结果。当输入在多个通道间进行 切换,并且在每个采样间需要一个滤波器进行复位时,就 可以采用这种模式。

  12. Δ-ΣADC模块--操作模式 4.快速FIR(平均) 这种模式和快速滤波器类似,但在两个转换间不复位 调制器。当要求抽取率因子大于128时,可以使用。这种 模式使用后续的处理器sinc1滤波器执行额外的抽取,以得 到大于16位的分辨率。

  13. Δ-ΣADC模块--操作模式 SOC信号用于启动ADC。一个数字时钟或者UDB的 输出能用于驱动这个输入信号。此外,采样周期必须大 于转换周期。在系统中,如果需要ADC和其他硬件同 步,则需要使用SOC信号。这个信号是可选的,如果 ADC运行在连续模式下,则不需要这个信号。 当每次转换完后,EOC信号为高。这个信号可用于 触发一个中断或者DMA请求。

  14. Δ-ΣADC模块--操作模式 Δ-Σ ADC的分辨率限制在8-20位。分辨率越高,采 样率越低。当修改分辨率时,时钟会相应的改变来保证一 个合理的采样率。 Δ-Σ ADC有固有的不稳定性,导致其在操作范围的 上限和下限会产生非线性。为了避免产生这种现象,输入 在调制器的前端被衰减10%。后端处理器使用1.11倍的增 益来补偿这种衰减。最终的结果比要求的范围扩大了 10%。比如: 如果选择输入范围±1.024V,实际的输入范围是 ±1.126V。有用的输入保持在±1.024V,但是除非输入超 过±1.126V ,否则ADC不会饱和。

  15. Δ-ΣADC模块--操作模式 从ADC的数字数出也会超过范围10%,如果ADC配置 为10位操作,通常一个10位的差分的ADC输出范围-512到 511,对应-1.024到+1.022。 由于这个额外的10%的范围,数字输出直到计数 ±563前不会饱和(而不是-512到511)。

  16. Δ-ΣADC模块--操作模式 除非分辨率设为8位或16位时,一般不需要关心的问 题。当分辨率设置为8位时,必须要注意不能使计数值从 其最大的正值/负值卷回到所对应的一个负值或者负值。 防止产生这个问题使用API函数,使得返回一个比设定分 辨率大的一个值。比如: 1)分辨率设为16位,其最大的正值和负值会超过 32767~-32768的范围,所以使用ADC_GetResult32()函数, 而不是使用ADC_GetResult16()函数。 2)对分辨率为8时,其最大的正值和负值会超过127~- 128,所以使用ADC_GetResult16()函数。

  17. 数/模转换器DAC模块 • PSoC提供了4个数-模转换器DAC。每个DAC为8位, 能配置成电压或电流输出。DAC支持Capsense,电源管理 和波形生成等。下图给出了DAC的模块图。 图 DAC模块内部结构

  18. 数/模转换器DAC模块 • 其特点主要包括: • 可调255级步长的电压或电流输出; • 可编程的台阶大小(取决于范围); • 8位标定用于校正25%的增益误差; • 电流输出模式下,源(source)和吸收(sink)选项; • 电流模式下,8Msps的转换率;电压模式下,1Mbps的转换率。 • 单调性

  19. 数/模转换器DAC模块 • 下表给出了DAC寄存器组 。 表 DAC寄存器组

  20. 数/模转换器DAC模块 • 通过设置寄存器DACx_CR0[4],使DAC工作在电流 模式下,输出电流范围为0-32uA,0-256uA和0-2.048mA。 IDAC能通过配置寄存器DACx_CR1[2],将转换器配 置为源电流(即从输出端向外电路流出的负载电流)和 吸收电流(外电路流入输出端的负载电流)模式。 此外,也可以使用UDB输入来控制源和吸收模式。 通过使用DACx_CR1[3]位来使能使用UDB输入。

  21. 数/模转换器DAC模块 • 通过设置寄存器DACx_CR0[4],使DAC工作在电 压模式下,DAC输出电流通过电阻连接,输出电压的 范围通过设置寄存器DACx_CR0[3:2],将其电压输出范 围设置为0-1.024V或者0-4.096V。 在电压模式下,任何连接到DAC输出端的负载应 该是纯容性的(VDAC的输出不被缓冲)。

  22. 数/模转换器DAC模块 • 在电压模式下,转换率最高为1Mbps。此外,在 4V模式下比1V模式转换速度要慢,这是由于到Vssa的电 阻负载比1V的负载大4倍。在4V模式下,最高转换速度 为250kbps。 下图给出了DAC的输出选项,通过两个独立的复用 开关得到。这些复用开关通过DAC_SWx寄存器来控 制。

  23. 图 DAC互联结构 数/模转换器DAC模块

  24. 数/模转换器DAC模块 • DAC中可用8个标定位来消除DAC的增益误差。 cal[7:0]的默认输出是[10000000]。比默认值低将降低增益; 反之增加。使用DACx_TR寄存器完成标定,标定的最小 分辨率是 LSB的0.5,即表示有可以通过标定来修正25%的 增益误差。 采样标定过程如下: • 1)固定输入码=255,Cal码=128,捕获DAC的输出(dac_vout/dac_iout); • 2)确定LSB的增益误差; • 3)使用正确的标定码,捕获DAC的输出(dac_vout/dac_iout)。

  25. 数/模转换器DAC模块 • 通过将两个电流DAC的输出求和,可以实现更高分 辨率的电流输出,如图所示,每一个有不同的输入部 分。 图 高分辨率DAC结构

  26. 图使用两个8位DAC实现12位DAC的例子 数/模转换器DAC模块 • 如下图所示,可以使用两个8位的DAC实现12位的 DAC分辨率。 • 1)一个DAC范围是0-2.048mA,第二个范围0-32uA。 • 2)最低范围DAC的中间4位被输入作为较低4位。

  27. LCD显示ADC测量值的实现 该设计实现使用Δ-ΣADC测量板子上电位器的电 压,并使用PSoC开发板上的字符LCD显示结果。 ADC使用内部的3MHz时钟驱动,采样率为 10,000SPS。将电位器的电压连接到ADC的输入。程序读 出ADC的结果,并在LCD上显示出来。 该工程使用如下元件: Delta Sigma ADC (Component Catalog->Analog->ADC->Delta Sigma ADC) Character LCD (Component Catalog->Display->Character LCD) Analog Port (Component Catalog->System->Analog Pin)

  28. LCD显示ADC测量值的实现--创建和配置工程 1.打开软件PSoC Creator,在软件的Start Page界 面下,点击Create New Project…创建一个新的工程。 2.在New Project窗口,根据目标器件PSoC3/5, 选择Empty PSoC3/5 Design模板,并将工程命名 Ex2_ADC_to_LCD。选择工程保存路径,点击“OK”按 钮;

  29. LCD显示ADC测量值的实现--创建和配置工程(添加并配置Δ-ΣADC)LCD显示ADC测量值的实现--创建和配置工程(添加并配置Δ-ΣADC) 下面给出添加并配置Δ-ΣADC的步骤,主要步骤 包括: 1.拖动Delta Sigma ADC器件并将其放置于原理图 内(Component Catalog->Analog->ADC ->Delta Sigma ADC)。 2.双击原理图内的ADC_DelSig_1器件打开配置窗 口。图14.7 ADC配置界面 3.如图14.7,按如下方式,在Configure标签内进行 配置:

  30. LCD显示ADC测量值的实现--创建和配置工程(添加并配置Δ-ΣADC)LCD显示ADC测量值的实现--创建和配置工程(添加并配置Δ-ΣADC) 图14.7 ADC配置界面

  31. LCD显示ADC测量值的实现--创建和配置工程(添加并配置Δ-ΣADC)LCD显示ADC测量值的实现--创建和配置工程(添加并配置Δ-ΣADC) Name: ADC_DelSig_1 Conversion Mode: 2-Continuous Resolution: 8 Conversion Rate: 10000 Input Mode:Single Input Range: Vssa to Vdda Input Buffer Gain: 1 Buffer Mode:Rail to Rail。

  32. LCD显示ADC测量值的实现--创建和配置工程(添加并配置Δ-ΣADC)LCD显示ADC测量值的实现--创建和配置工程(添加并配置Δ-ΣADC) 在Common标签下,按下面参数设置: • 不选中Hardware SOC[Start of Conversion](表示使用软件来启动ADC工作) • Clock Source:Internal; • 不选中Enable_Vref_Vssa; 4.点击“OK”关闭ADC属性设置界面。

  33. LCD显示ADC测量值的实现--创建和配置工程(添加并配置模拟端口)LCD显示ADC测量值的实现--创建和配置工程(添加并配置模拟端口) 下面给出添加并配置模拟端口的步骤,主要步骤 包括: 1.拖动模拟端口器件并将其放置于原理图内 (Component Catalog->Ports and Pins->Analog Pin)。 2.双击原理图内的Pin_1元件打开配置窗口; 3.如图14.8,在Type标签下按如下方式进行配 置:

  34. LCD显示ADC测量值的实现--创建和配置工程(添加并配置模拟端口)LCD显示ADC测量值的实现--创建和配置工程(添加并配置模拟端口) 图14.8 Type标签下的配置界面

  35. LCD显示ADC测量值的实现--创建和配置工程(添加并配置模拟端口)LCD显示ADC测量值的实现--创建和配置工程(添加并配置模拟端口) Name: POT。 只选择Analog。 其余选项均为默认值。 如图14.9,在General标签下,进行如下设置 Drive Mode: High Impedance Analog。 其余选项均为默认值

  36. LCD显示ADC测量值的实现--创建和配置工程(添加并配置模拟端口)LCD显示ADC测量值的实现--创建和配置工程(添加并配置模拟端口) 图14.9 General标签配置界面

  37. LCD显示ADC测量值的实现--创建和配置工程(添加并配置LCD)LCD显示ADC测量值的实现--创建和配置工程(添加并配置LCD) 下面给出添加并配置LCD的步骤,主要步骤包括: 1.拖动字符LCD器件并将其放置于原理图内 (Component Catalog->Display->Character LCD)。 2.双击原理图内的LCD_Char_1器件打开配置窗口。 3.如图14.10所示,在General标签下按如下方式进行 配置: Name: LCD_Char_1 LCD Custom Character Set: None Include ASCII to Number Conversion Routines:选中 其余选项均为默认值

  38. LCD显示ADC测量值的实现--创建和配置工程(添加并配置LCD)LCD显示ADC测量值的实现--创建和配置工程(添加并配置LCD) 图14.10 LCD配置界面

  39. LCD显示ADC测量值的实现--创建和配置工程(连接元器件)LCD显示ADC测量值的实现--创建和配置工程(连接元器件) 如图14.10所示,为连接元器件完成后的原理图。 图14.10 连接完成后的原理图

  40. LCD显示ADC测量值的实现--创建和配置工程( 配置引脚) 下面给出配置引脚的步骤,主要步骤包括: 1.在Workspace Explorer窗口双击文件 Ex2_ADC_to_LCD.cydwr。 2.点击Pins选项。 3.如图14.12所示,为LCD_Char_1选择管脚P2[6:0]。 4.为POT管脚选择P0[7]。 图14.12 引脚分配界面

  41. LCD显示ADC测量值的实现--创建和配置工程(创建函数文件)LCD显示ADC测量值的实现--创建和配置工程(创建函数文件) 详见书上的程序

  42. LCD显示ADC测量值的实现--编程及调试 下面给出对Cypress提供的CY8CKIT-030开发套件进行 编程的步骤,其步骤主要包含: 1.断开开发板的电源。 2.将P0[7]与VR连接 3.对开发板重新供电。 4.按照前面一个工程所述方法进行编程。 5.编完程序之后,通过reset键重启开发板,调整可变 电位器的旋钮来改变电压的值,观察LCD上所显示相对的 数字值。 6.保存并关闭工程。

  43. IDAC值显示的实现 该设计给出了IDAC8电流源工作模式,其输出范围在 255uA。在字符型LCD上显示电流值,通过外部设备检测 IDAC的输出。

  44. IDAC值显示的实现--创建和配置工程 1.在计算机上的桌面上,选择开始->所有程序- >Cypress->PSoC Creator 2.0->PsoC Creator 2.0。打开 PSoC Creator软件; 2.在PSoC Creator 2.0软件的主界面下,选择File- >New->Project...; 3.在New Project窗口,选择Empty PSoC3 Design模 板,并将工程命命名为IDAC。选择工程保存路径,点 击“OK”按钮;

  45. 创建和配置工程--添加并配置IDAC 下面给出添加并配置DAC的步骤,主要步骤包括: 1.拖动电流DAC器件并将其放置于原理图内 (Component Catalog->Analog->DAC->Current DAC)。 2.双击原理图内的IDAC8_1器件打开配置窗口。图 14.13 IDAC配置界面 3.如图14.13所示,在Configure标签内按如下方式 进行配置:

  46. 图14.13 IDAC配置界面 创建和配置工程--添加并配置IDAC

  47. 创建和配置工程--添加并配置IDAC • Name: IDAC8_1 • Polarity: Positive(Source)(极性) • Data Source: CPU or DMA(Data Bus)(数据源) • Range:0-255uA(电流源范围) • Speed:High Speed(电流源的工作速度) • Value参数设置: • %Range:100 • uA:255 • 8 bit Hex:FF • Strobe Mode:Register(触发模式) • 其余选项均为默认值

  48. 创建和配置工程--添加并配置字符LCD 下面给出添加并配置LCD的步骤,主要步骤包括: 1.拖动字符LCD并将其放置于原理图内(Component Catalog->Display->Character LCD)。 2.双击原理图内的LCD_Char_1器件打开配置窗口。 3.如图14.14所示,在General标签内按如下方式进行 配置: • Name:LCD_Char_1; • LCD Custom Character Set:None • 选中Include ASCII to Number

  49. 图14.14 字符LCD配置界面 创建和配置工程--添加并配置字符LCD

  50. 创建和配置工程--添加并配置模拟引脚 下面给出添加并配置模拟引脚的步骤,主要步骤包 括: 1.拖动模拟端口器件并将其放置于原理图内 (Component Catalog->Ports and Pins->Analog Pin)。 2.双击原理图内的Pin_1器件打开配置窗口。 3.如图14.15所示,按如下方式进行配置: Type标签下,参数如下配置: • Name: Pin_1 • Number of Pins: 1 • Analog:只选中该选项 • 其余选项均为默认值

More Related