第六章 PSoC35模拟子系统.ppt
第6章 PSoC3/5模拟子系统Chapter 6 Analog Sub-System of PSoC3/5,PSoC3/5模拟子系统-前言,本章详细介绍PSoC模拟子系统的各个模块及其功能,其主要内容包括:PSoC模拟子系统功能概述;模拟子系统的布线结构;模/数转换器ADC模块;模拟比较器模块;运算放大器模块;可编程SC/CT模块;数/模转换器DAC模块;CapSense模块;LCD直接驱动模块;温度传感器模块等内容。,PSoC3/5模拟子系统-PSoC模拟子系统功能概述,模拟可编程系统根据应用特定要求,将标准和高级模拟信号处理模块结合在一起。这些模块互相联结,并且连接到芯片的任意引脚上,提供了高级的设计灵活性和IP安全性。,PSoC3/5模拟子系统-PSoC模拟子系统功能概述,图 模拟系统的结构,PSoC3/5模拟子系统-PSoC模拟子系统功能概述,图 PSoC3最大模拟功能子系统结构,PSoC3/5模拟子系统-PSoC模拟子系统功能概述,图 PSoC5 最大模拟功能子系统结构,PSoC3/5模拟子系统-PSoC模拟子系统功能概述,模拟子系统功能的概述:灵活的,可配置的模拟布线结构,该结构提供了模拟全局,模拟复用总线和模拟本地总线;高分辨率的-模数转换器ADC两个逐次逼近寄存器型(Successive approximation,SAR)ADC(PSoC5内提供)最多4个数模转换器DAC,提供电压或电流输出;最多4个比较器,可选择连接到可配置的LUT输出;最多4个可配置的开关电容/连续时间(SC/CT)模块用于实现那些包含放大器,增益缓冲区,可编程增益放大器,互阻放大器和混频器在内的功能。,PSoC3/5模拟子系统-PSoC模拟子系统功能概述,最多4个放大器,用于内部的应用和连接到GPIO,能被用于高电流输出缓冲区;电容感应子系统,用于电容性触摸屏感应;高精度的参考源产生一个高精度的模拟电压用于内部的模拟模块;,PSoC3/5模拟子系统-PSoC模拟子系统功能概述,PSoC Creator软件程序为设计者提供了一个友好的图形界面接口,用于在GPIO与各种模拟资源之间,配置模拟连接。PSoC Creator软件提供了各种元件的库允许设计者配置这种模拟块来实现应用程序特定的功能(PGA,互阻放大器。电压DAC,电流DAC等)。该软件工具也生成API接口库允许设计者编写固件,这样允许在模拟外设和CPU/存储器之间进行通信。,PSoC3/5模拟子系统-模拟子系统的布线结构,PSoC3/5提供了灵活的模拟布线结构,这个结构提供了连接GPIO和不同模拟块的能力。灵活的布线结构中最有特点的就是允许动态布线输入和输出,用于连接到不同的模拟块。,PSoC3/5模拟子系统-模拟子系统的布线结构,模拟系统的块图结构,PSoC3/5模拟子系统-模拟子系统的布线结构,模拟子系统布线结构的主要特点有:灵活的,可配置的模拟布线结构;16个模拟全局总线(Analog Global Bus,AG)和两个模拟复用总线(AMUXBUS),可以与GPIO和模拟模块连接。每个GPIO与一个模拟全局和一个模拟复用总线连接;8个模拟本地总线(Analog Local Bus)在不同的模拟模块之间连接信号;复用器和开关,用于模拟模块的输入和输出选择。,PSoC3/5模拟子系统-模拟子系统的布线结构,PSoC3的模拟互联结构,PSoC3/5模拟子系统-模拟子系统的布线结构,PSoC5的模拟互联结构,PSoC3/5模拟子系统-模拟子系统的布线结构,模拟布线结构分成了四个象限,每个象限有四个模拟全局(AGL0.3,AGL4.7,AGR0.3,AGR4.7)。每个GPIO通过模拟开关连接到对应的AG。模拟开关总线是一个共享布线资源,用于连接每个GPIO。在PSoC中有两个AMUXBUS布线,一个在左半部(AMUXBUSL),一个在右半部(AMUXBUSR)。,PSoC3/5模拟子系统-模拟子系统的布线结构,模拟本地总线(abus)是模拟子系统内的布线资源,用于连接不同的e模拟模块。PSoC中有8个abus,4个位于左半部(abusl0:3),另外4个位于右半部(abusr0:3)。使用abus,可以节约用于互联模拟模块所使用的模拟全局和模拟复用总线。,PSoC3/5模拟子系统-模拟子系统的布线结构,多路复用器和开关存于各种总线中来引导输入/输出模拟模块的信号。一个多路复用器 在一个时间内只能由一个连接,然而开关可以同时有多个连接。图中的多路复用器用灰色的椭圆表示,开关用透明的椭圆表示。,模/数转换器ADC模块-ADC模块,PSoC3/5包含一个-ADC。这个ADC提供了差分输入,高分辨率和良好的线性度,该ADC可用于声音信号处理和测量方面的应用。下表给出了不同ADC分辨率下的采样速度和SNR值。,模/数转换器ADC模块-ADC模块,图-的内部功能原理,模/数转换器ADC模块-ADC功能,图 ADC-原理结构,模/数转换器ADC模块-ADC功能,从前面的图可以看出,输入缓冲区(Input Buffer)连接到内部和外部总线输入复用开关上。来自输入复用开关上的信号直接或者通过缓冲区传递到-调制器。-执行真正的模拟-数字的转换。调制器过采样输入,产生串行的比特流输出。高速数据流对大多数应用是没有意义的,所以在后级加入抽取器。抽取器将高速的串行数据流转换成并行的ADC结果。抽取器控制分辨率和采样率;输出是最后四个采样的函数。当输入多路复用开关被切换,输出的前三个采样就不是有效的,直到开关切换后的第四个采样才是有效的。,模/数转换器ADC模块-ADC功能,在PSoC中的ADC模块的具体结构包括:输入放大器;提供高输入阻抗和用户可选择的增益。3阶-调制器抽取器抽取器包含一个4阶的CIC抽取滤波器和后端处理单元。后端处理单元执行可选的增益,偏置和采样滤波器功能。,-ADC功能-操作模式,设置者可以配置ADC,使其工作在下面的四种模式之一:单采样;快速滤波器;连续/快速平均。通过往控制寄存器写启动位或者发送开始转换信号(Start Of Conversion,SOC),来启动ADC转换器。当转换结束后,设置一个状态位,并且转换结束信号(End of Conversion,EOC)为高电平,这个信号一直保持到CPU或DMA读取转换值为止。,-ADC功能-操作模式,1单采样 在触发器作用下,执行单次采样。在这种模式下,ADC在待机模式下等待SOC信号有效。当SOC有效,ADC执行一次采样转换,并捕获结果。为了检测EOC,系统可以轮询一个控制寄存器或者配置外部的EOC信号来产生一个中断或者调用DMA请求。当传输完成后,ADC进入待机状态。直到下一个SOC事件。,-ADC功能-操作模式,2连续采样 在连续模式下,通道复位,然后连续运行直到停止。当输入信号不需要切换,并且需要多个采样值时,就可以采用这种模式。,-ADC功能-操作模式,3快速滤波器 快速滤波器模式连续的捕获数据,在每个采样间,通道复位。一个采样结束,另一个采样立即开始,使用轮询,中断或DMA来传输结果。当输入在多个通道间进行切换,并且在每个采样间需要一个滤波器进行复位时,就可以采用这种模式。,-ADC功能-操作模式,4快速FIR(平均)这种模式和快速滤波器类似,但在两个转换间不复位调制器。当要求抽取率因子大于128时,可以使用。这种模式使用后续的处理器sinc1滤波器执行额外的抽取,以得到大于16位的分辨率。,-ADC功能-操作模式,SOC信号用于启动ADC。一个数字时钟或者UDB的输出能用于驱动这个输入信号。此外,采样周期必须大于转换周期。在系统中,如果需要ADC和其他硬件同步,则需要使用SOC信号。这个信号是可选的,如果ADC运行在连续模式下,则不需要这个信号。当每次转换完后,EOC信号为高。这个信号可用于触发一个中断或者DMA请求。,-ADC功能-转换器的分辨率,-ADC的分辨率限制在8-20位。分辨率越高,采样率越低。当修改分辨率时,时钟会相应的改变来保证一个合理的采样率。-ADC有固有的不稳定性,导致其在操作范围的上限和下限会产生非线性。为了避免产生这种现象,输入在调制器的前端被衰减10%。后端处理器使用1.11倍的增益来补偿这种衰减。最终的结果比要求的范围扩大了10%。比如:如果选择输入范围1.024V,实际的输入范围是1.126V。有用的输入保持在1.024V,但是除非输入超过1.126V,否则ADC不会饱和。,-ADC功能-转换器的分辨率,从ADC的数字数出也会超过范围10%,如果ADC配置为10位操作,通常一个10位的差分的ADC输出范围-512到511,对应-1.024到+1.022。由于这个额外的10%的范围,数字输出直到计数563前不会饱和(而不是-512到511)。,-ADC功能-转换器的分辨率,除非分辨率设为8位或16位时,一般不需要关心的问题。当分辨率设置为8位时,必须要注意不能使计数值从其最大的正值/负值卷回到所对应的一个负值或者负值。防止产生这个问题使用API函数,使得返回一个比设定分辨率大的一个值。比如:1)分辨率设为16位,其最大的正值和负值会超过32767-32768的范围,所以使用ADC_GetResult32()函数,而不是使用ADC_GetResult16()函数。2)对分辨率为8时,其最大的正值和负值会超过127-128,所以使用ADC_GetResult16()函数。,模/数转换器ADC模块-逐次逼近型ADC模块,PSoC5提供了最多两个逐次逼近型(SAR)ADC。该ADC分辨率为12位,最高采样率为1Msps。SAR ADC支持单端或差分输入,这使得ADC可以用于不同的采样和控制领域。在该ADC中,采样输入信号,并且与DAC的输出进行比较。DAC使用一个二进制的搜索算法,用来确定每次最高有效位MSB到最低有效位的LSB的输出。,模/数转换器ADC模块-逐次逼近型ADC模块,图 SAR DAC 结构图,模/数转换器ADC模块-逐次逼近型ADC模块,输入连接到模拟全局和复用器上。时钟频率是采样率的16倍;最高的时钟率是16MHz写一个启动位或者给启动帧(Start of Frame,SOF)信号启动ADC。SOF信号用于采样周期比转换时间长的应用,或者ADC需要和其它硬件同步的应用。这个信号是可选的,当SAR模块运行在连续模式下,不需要连接该信号。数字时钟或者UDB输出能用来驱动这个输入。当SAR刚上电或者从任何休眠模式唤醒时,将等待10us,然后准备开始第一次转换。,模/数转换器ADC模块-逐次逼近型ADC模块,当转换完成后,设置状态位和输出结束帧(End of Frame,EOF)有效信号,直到CPU或者DMA读取该值后,EOF变成无效。EOF信号可用于中断或者DMA请求。一个ONE_SHOT控制位用于设置SAR ADC转换模式为:连续或者转换/SOF信号。支持DMA传输连续采样,而无需CPU的干预。,PSoC3/5模拟子系统-模拟比较器模块,PSoC提供了最多4个比较器,其特点主要有:输入偏置小于5mV;轨至轨共模输入范围Vssa-Vcca;通过使用快速、慢或超低功耗在速度和功耗之间进行权衡;比较器输出能布线到查找表(Look Up Table,LUT),执行简单的逻辑功能,然后也能布线到数字模块;比较器的正输入可以选择穿过一个低通滤波器;比较器输入能连接到GPIO,DAC输出和SC模块输出;,模拟比较器模块-输入和输出接口,到比较器的正和负输入来自模拟全局总线,模拟复用线,模拟本地总线和高精度的参考源。从比较器的输出能布线到两输入LUT的任何一个,LUT的输出布线到UDB数字系统接口。下图给出了模拟比较器的结构图。,模拟比较器模块-输入和输出接口,图 放大器结构,模拟比较器模块-LUT,PSoC包含4个LUT。LUT有两个输入,一个输出。LUT由比较器驱动。LUT的输出布线到UDB阵列的数字系统接口。从UDB阵列的数字系统接口,这些信号能连接到UDB,DMA控制器,I/O或者中断控制器。LUT控制字写入寄存器,用于设置输出的逻辑功能。下表给出了LUT功能和程序字的输入。,模拟比较器模块-LUT,LUT和程序字,模拟比较器模块-LUT,PSoC3/5模拟子系统-运算放大器模块,PSoC5包含最多4个通用运算放大器,运算放大器是独立的,使用外部或内部信号能将运算放大器配置成一个增益级或者跟随器。下图给出了运算放大器的内部结构。,图 运算放大器内部结构,PSoC3/5模拟子系统-运算放大器模块,在任何一种配置中,输入和输出信号能全部连接到内部全局信号,使用ADC或者比较器对其进行监测。通过在信号和GPIO引脚之间切换来实现配置。下图给出了放大器的配置。,PSoC3/5模拟子系统-运算放大器模块,PSoC3/5模拟子系统-运算放大器模块,放大器有三个速度模式:慢中快。低速模式消耗最小的静态功耗。快速模式消耗最大的功耗。输入能轨至轨的摆动。输出摆动能轨至轨的运行在低电流输出,在50mV的轨迹内。当驱动高电流负载(大约25mA),输出电压能得到500mV内的轨迹。,PSoC3/5模拟子系统-可编程SC/CT模块,PSoC5包含四个开关电容/连续时间(SC/CT)模块。下图给出了SC/CT模块的结构图。每个开关电容/连续时间模块建立一个带有开关、电容和电阻阵列的轨至轨的放大器。,PSoC3/5模拟子系统-可编程SC/CT模块,SC/CT模块结构,PSoC3/5模拟子系统-可编程SC/CT模块,开关电容是一种电路设计技术,使用电容脉冲开关(而不使用电阻)创建一个模拟功能。这些电路通过在电容之间打开和关闭不同的开关,搬移电荷(charge)来运行。非重叠相位的时钟信号控制开关,所以不会同时打开所有的开关。,PSoC3/5模拟子系统-可编程SC/CT模块,PSoC Creator软件工具提供了图形化接口,允许直接对SC/CT模块进行编程。开关控制和时钟相位控制配置由软件工具完成。用户只需要应用程序确定使用的参数,比如:增益,放大器极性,Vref的连接等。,PSoC3/5模拟子系统-可编程SC/CT模块,相同的放大器和模块接口也是可连接到电阻阵列,可以允许建立不同的连续时间功能。放大器和电阻网络可编程用于执行不同的功能,其中包括:纯粹的运算放大器-连续模式;单位增益缓冲区-连续模式;可编程增益放大器(Programmable Gain Amplifier,PGA)-连续模式;互阻放大器(Transimpedance Amplifier,TIA)(也称为电流-电压转换器)-连续模式;上/下混频器-连续模式;采样和保持混频器(NRZ S/H)-开关电容模式;一阶模拟-数字调制器-开关电容模式;,PSoC3/5模拟子系统-可编程SC/CT模块,SC/CT模块的操作模式通过在SC0.3_CR1寄存器的MODE2:0位来设置。,SC/CT操作模式,可编程SC/CT模块-单纯的放大器,纯粹的放大器有输入和输出用于连接到内部或外部信号,所有其它的电阻和电容不与放大器连接。这个放大器共有两级,轨至轨的折叠级联的第一级和A类第二级。单位增益的带宽大于6MHz,输出驱动电流最大为650uA。这对于缓冲内部的信号(比如DAC输出)是足够的,驱动的外部负载大于7.5k。,纯粹放大器的配置,可编程SC/CT模块-单纯的放大器,SC/CT模块驱动控制设置,为了提供不同的负载条件,补偿电容和输出级驱动能力是可编程的。来自信号摆率和时间所要求的最小的抖动率及负载电容决定了应用。这些是稳定性最基本的考虑。,可编程SC/CT模块-单纯的放大器,其中:Cload包括放大器输出节点的电容和外部容性负载。来自模拟总线布线的标称为10pF的电容用于内部负载。如下表,根据SC0.3_CR1:0寄存器位的输出抖动率要求,设置SC_DRIVE1:0驱动控制。,可编程SC/CT模块-单纯的放大器,这个模块有三个控制选项用于修改闭环带宽和稳定性:通过放大器第一级的电流(BIAS_CONTROL),运放输入和输出之间密勒电容(SC_COMP1:0),输出和负输入端之间的反馈电容(SC_REDC1:0),,可编程SC/CT模块-单纯的放大器,1BIAS_CONTROL 该选项将通过放大器级的电流加倍(设置SC0.3_CR20寄存器位)。连续模式下的AC开环稳定性分析表明,即这个选项设置为1,然后使用电容选项控制带宽/稳定性,一旦电路稳定后,比在第一级设置小电流将获得更大的整体带宽。,可编程SC/CT模块-单纯的放大器,2SC_COMP1:0 设置放大器内的补偿电容。该设置直接影响放大器的带宽增益。下表给出了放大器的输入和输出之间的密勒电容的选择。,密勒电容的选择,可编程SC/CT模块-单纯的放大器,3SC_REDC1:0 输出和负反馈直接的反馈电容的选择用于控制稳定性。取决于连续时间配置,这个选项通常可以产生更高的频率零点和更低的频率极点,这样就可以降低整体的带宽,增加了单位增益频率上的相位裕度。,可编程SC/CT模块-单纯的放大器,如下表所示,这个电容通过SC0.3_CR3:2寄存器位来设置值。,CFB的设置,可编程SC/CT模块-单纯的放大器,如下表,给出了每种模式下的推荐的稳定性设置。对于TIA模式,模拟全局负载的模型是:在输入10pF电容和150开关电容阻抗,加入额外的40pF电容的输入用来建模输入二极管电容。,可编程SC/CT模块-单纯的放大器,推荐的稳定性设置,可编程SC/CT模块-单位增益,如下图,单位增益缓冲区是一个纯粹的放大器,其输出直接连接到反向输入,增益为1.00。大于6MHz有-3dB带宽。单位增益放大器用于一个内部产生的高输出阻抗的信号,比如电压DAC输出,要求驱动一个负载,或者当一个高阻抗外部源要求驱动一个片上的负载,比如:连续时间混频器。,单位增益放大器,可编程SC/CT模块-可编程增益放大器,PGA放大一个内部或外部的信号。PGA能配置成运行在反相和非反相模式。PGA能配置成正和负增益分别高达50和49,可以通过调整R1和R2来改变增益。下图给出了PGA的结构图。通过切换输入复用器上的共享选择值来改变其同相和反相。,PGA的结构图,可编程SC/CT模块-可编程增益放大器,表给出了增益和带宽的对应关系。PGA应用于输入信号不够大,能达到ADC的分辨率,或者其它SC/CT块动态范围。增益是实时调整,包括改变PGA的增益。,可编程SC/CT模块-可编程增益放大器,PGA能被配置为正向增益或者反向增益的结构,或者差分放大器的一半。下表给出了在寄存器SCL0.3_CR1的SC_GAIN5位来确定增益。,表 PGA增益配置,可编程SC/CT模块-可编程增益放大器,可编程SC/CT模块-可编程增益放大器,上图给出了不同增益配置的符号描述。如上图(c),差分放大器使用两个背对背的放大器连接而成。RLAD是SC模块的外部元件,低阻抗用来减少增益误差。当不使用差分模式时,将RIN连接到模拟或全局布线资源,RLAD有很高的阻抗减少增益误差。差分放大器的输出为:,输出的共模电压包含在输入的共模电压内,表示为:,可编程SC/CT模块-可编程增益放大器,下表给出了PGA稳定性参数设置。,可编程SC/CT模块-可编程增益放大器,可编程SC/CT模块-互阻放大器,互阻放大器(Transimpedance Amplifier,TIA),也称为电流-电压转换器,将电流转换成电压的模块,图给出了互阻放大器的符号图。典型的应用包括用电压测量电路或仪器测量电流,或者建立一个电流控制的电压源。,互阻放大器符号,可编程SC/CT模块-互阻放大器,下表给出了反馈电阻的设置对应关系。,可编程SC/CT模块-互阻放大器,表 给出了反馈电容的设置对应关系,可编程SC/CT模块-互阻放大器,TIA在连续模式下使用内部的反馈电阻将电流转换成电压。放大器的电压输出和输入电流成正比,对于电流输入Iin,输出电压Vout为:其中:为反馈电阻。的范围为20k到1M之间。,可编程SC/CT模块-互阻放大器,互阻放大器的带宽由反馈电阻和与反馈电阻并联的电容确定。-3dB频率带宽表示为:,可编程SC/CT模块-连续时间混频器,下图给出了连续时间混频器的配置。它在正相单位增 益和反向单位增益之间进行切换。最高的切换频率为1MHz。,连续时间混频器的配置,可编程SC/CT模块-连续时间混频器,连续时间模式用于实现上转换,这是由于相对于采样混频器来说,它提供了更高的转换增益。在CT混频器内,FCLK+FIN的信号幅度和FCLK-FIN的信号幅度是一样的,然而在采样模式下,在两个配置间有衰减。下图给出了输入信号为200kHz,载波为255kHz的波形图。,可编程SC/CT模块-连续时间混频器,连续时间混频器的波形,混频器输出频谱包括455kHz和55kHz,N*FCLKFIN(N为奇数)等。上变换通过滤出所希望的输入频率和调制频率混合的谐波来实现。,可编程SC/CT模块-连续时间混频器,对于连续时间的混频器模式包括控制采样函数和在反相增益中设置电阻值完成。,可编程SC/CT模块-连续时间混频器,表给出了CT混频器的采样配置,表给出了CT混频器的输入电阻设置。,可编程SC/CT模块-采样混频器,采样混频本质上是非归零采样和保持电路,其响应速度很快。混频器的输出可以驱动片外的陶瓷滤波器(比如455kHz Murata Cerafil),或者驱动片上的模拟布线连接的内部ADC,为了使ADC正确的采样混频器的输出,用于ADC的混频器的采样时钟是相同的。采样混频器用于向下混频。下变换通过滤出所希望的输入频率和调制频率混合的谐波来实现。,可编程SC/CT模块-采样混频器,下面详细分析离散时间采样混频器原理,图给出了简化结构。,简化结构,可编程SC/CT模块-采样混频器,非归零采样和保持通过切换积分电容实现。C1或者C4总能采样输入信号,而其它被运算放大器积分。Fin信号的采样频率低于Fin信号频率。混频器配置成Fout与在输入时钟上升沿下的新值进行积分。,可编程SC/CT模块-采样混频器,采样时钟频率大于1/2的Fin信号频率,输出是输入和采样频率加上偏置元件的差值。当采样频率低于1/2的Fin信号频率时,输出是输入和采样频率最大整数倍(小于Fin信号频率)的差值。对于给定的输入载波频率Fin,采样时钟频率Fclk,和期望的输出频率Fout,并且规定Fclk小于4MHz,Fin小于14MHz。,可编程SC/CT模块-采样混频器,可编程SC/CT模块-采样混频器,下图给出了N=1时的混频器的输出(Fin=1.36MHz,Fclk=1.28MHz)。下图给出了N=3时的混频器的输出(Fin=13.6MHz,Fclk=3.2MHz)。,图 N=1时的混频器的输出 图 N=3时的混频器的输出,可编程SC/CT模块-采样混频器,对于这种配置的选项是参考源和时钟分频选项。这个选项存在或者使用外部参考源电压或者内部的参考地。如下表所示,这个选项使用SC_GNDVREF SC0.3_CR2信号控制。,可编程SC/CT模块-采样混频器,使用内部的地连接,将引起步长增加和减少的不一 致,这是由于负输入端降到地以下时,放大器响应不一样所引起的。避免这个畸变,使用外部参考源选项,将其设置为500mV或者更多。离散混频器的结果是在输入时钟的上升沿和下降沿,有一个新的保持值时,输出就被改变。如下表所示,SC_DIV控制信号能用来指定在输入时钟上升沿值改变。,表 用于采样和保持的时钟分频选项,可编程SC/CT模块-调制器,SC/CT块能编程作为开关电容积分器,用于在高过采样率下的一阶调制器环路。积分器的输出和参考电平相比较,然后返回到反馈环的输入。在高采样率下控制调制器的输出,因此需要抽取滤波器将信号带宽降到感兴趣的范围内。,离散时间-调制器块图,可编程SC/CT模块-调制器,通过放在积分电容的复位开关,调制器能被用于增量调制器。来自第一级调制器的采样数据的精度由下面几个因素决定:最大输入信号带宽;过采样率;采样时钟的抖动。过采样率时钟最高为4MHz。低于x64的过采样不产生稳定的输出,下表给出了系统仿真给出的期望性能。,可编程SC/CT模块-调制器,系统仿真给出的期望性能,可编程SC/CT模块-调制器,下图给出了开关电容第一级调试器的配置,(a)采样周期,可编程SC/CT模块-调制器,可编程SC/CT模块-跟踪和保持放大器,跟踪和保持放大器模式使用单位增益缓冲区放大器实现。下图给出跟踪和保持模块图。,图 跟踪和保持模块图,可编程SC/CT模块-跟踪和保持放大器,跟踪和保持模式跟踪输入5.5V的1%的步长时间小于1us。来自采样开关的电荷注入误差小于1mV。保持丢失小于0.2mV。下表给出了保持和跟踪的放大器控制。,表 保持和跟踪的放大器控制,PSoC3/5模拟子系统-数/模转换器DAC模块,PSoC提供了4个数-模转换器DAC。每个DAC为8位,能配置成电压或电流输出。DAC支持Capsense,电源管理和波形生成等。下图给出了DAC的模块图。,图 DAC模块内部结构,PSoC3/5模拟子系统-数/模转换器DAC模块,其特点主要包括:可调255级步长的电压或电流输出;可编程的台阶大小(取决于范围);8位标定用于校正25%的增益误差;电流输出模式下,源(source)和吸收(sink)选项;电流模式下,8Msps的转换率;电压模式下,1Mbps的转换率。单调性,PSoC3/5模拟子系统-数/模转换器DAC模块,下表给出了DAC寄存器组。,表 DAC寄存器组,PSoC3/5模拟子系统-数/模转换器DAC模块,通过设置寄存器DACx_CR04,使DAC工作在电流模式下,输出电流范围为0-32uA,0-256uA和0-2.048mA。IDAC能通过配置寄存器DACx_CR12,将转换器配置为源电流(即从输出端向外电路流出的负载电流)和吸收电流(外电路流入输出端的负载电流)模式。此外,也可以使用UDB输入来控制源和吸收模式。通过使用DACx_CR13位来使能使用UDB输入。,PSoC3/5模拟子系统-数/模转换器DAC模块,通过设置寄存器DACx_CR04,使DAC工作在电压模式下,DAC输出电流通过电阻连接,输出电压的范围通过设置寄存器DACx_CR03:2,将其电压输出范围设置为0-1.024V或者0-4.096V。在电压模式下,任何连接到DAC输出端的负载应该是纯容性的(VDAC的输出不被缓冲)。,PSoC3/5模拟子系统-数/模转换器DAC模块,在电压模式下,转换率最高为1Mbps。此外,在4V模式下比1V模式转换速度要慢,这是由于到Vssa的电阻负载比1V的负载大4倍。在4V模式下,最高转换速度为250kbps。下图给出了DAC的输出选项,通过两个独立的复用开关得到。这些复用开关通过DAC_SWx寄存器来控制。,PSoC3/5模拟子系统-数/模转换器DAC模块,图 DAC互联结构,PSoC3/5模拟子系统-数/模转换器DAC模块,DAC中可用8个标定位来消除DAC的增益误差。cal7: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)。,PSoC3/5模拟子系统-数/模转换器DAC模块,通过将两个电流DAC的输出求和,可以实现更高分辨率的电流输出,如图所示,每一个有不同的输入部分。,图 高分辨率DAC结构,PSoC3/5模拟子系统-数/模转换器DAC模块,如下图所示,可以使用两个8位的DAC实现12位的DAC分辨率。1)一个DAC范围是0-2.048mA,第二个范围0-32uA。2)最低范围DAC的中间4位被输入作为较低4位。,图使用两个8位DAC实现12位DAC的例子,CapSense模块-CapSense模块的结构,CapSense(电容感应)系统提供了丰富和高效的手段来测量电容量,比如触摸感应按键,滑动块,接近度检测。CapSense系统使用系统资源配置,包括一些用于CapSense硬件功能。,CapSense模块-CapSense模块的结构,该模块的主要特点有:同时支持扫描两个电容传感器;能实现不同的电容感应技术(CSD,CSA和其它);可配置的低通滤波器来消除开关噪声,用于精确测量;用于更快速测量的带有高驱动模式的参考缓冲区,CapSense模块-CapSense模块的结构,下图给出了电容感应模块的结构图,图 电容感应模块图,CapSense模块-CapSense模块的结构,CapSense模块包括:参考驱动;低通滤波器;模拟复用总线;GPIO部分;,CapSense模块-CapSense模块的结构,下面对这几部分的功能进行详细的介绍:1参考驱动 这个驱动器用来快速的初始化网络到独立于供电电源的一个电压。这个能力加速了电容扫描,并且改善了电源抑制比(Power Supply Rejection Ratio,PSRR)。参考电平选择为1.0V或者1.2V(通过CAPSX_CFG0寄存器的refset位进行设置)。两个参考驱动是独立运行的;一个驱动器连到AMUXBUSL,另一个驱动器连到AMUXBUSR。通过设置CAPSX_CFG0寄存器的out_en位,将驱动器连接到AMUXBUS。,CapSense模块-CapSense模块的结构,参考驱动支持普通和高驱动模式,通过设置CAPSX_CFG0寄存器的boost位选择驱动模式。在普通模式下,在600ns内驱动电容最大到100pF;在高驱动模式下,在15us内驱动电容最大到30pF。,CapSense模块-CapSense模块的结构,2低通滤波器 提供两个可调低通滤波器(Low Pass Filter LPF)。每个LPF通过2:1复用开关选择输入。在左侧,LPF输入是AMUXBUSL和AGL0;在右侧,LPF输入是AMUXBUSR和AGR0。使用LPF.CR0寄存器的swin1:0位选择LPF的输入。通过开关将LPF的输出连接到abusl0和abusr0。可调的LPF允许用户选择R值为200k或者1000k,C值为5pF或者为10pF。LPFx_CR0寄存器内的rsel和csel位用来选择电阻和电容。LPF的控制寄存器为LPF0_CR0和LPF1_CR0。,CapSense模块-CapSense模块的结构,3模拟复用总线 所有GPIO引脚,除了SIO和USB引脚均支持电容感应操作。用于电容感应的基本模拟复用总线是AMUXBUS,该总线有两个网络(AMUXBUSL和AMUXBUSR)用于两个同步的感应操作。这些也能被缩短来生成一个单个网络,该网络连接到所有的GPIO。,CapSense模块-CapSense模块的结构,AMUXBUSL和AMUXBUSR网络连接到各自一半的GPIO,支持电容感应方法的所有特征。许多电容感应算法都使用AMUXBUS网络、AMUXBUSR的模拟全局网络AGR0和AMUXBUSL的模拟全局网络AGL0,提供到参考源的反馈。这个反馈通常是来自于外部电容连接的引脚,这个电容用于积分或者调制电容。,CapSense模块-CapSense模块的结构,4GPIO配置 下图给出了GPIO结构。端口模拟全局复用寄存器(PRTx_AMUX)被用来连接端口引脚到模拟复用总线。设置CAPSx_CFG1寄存器的io_ctrl1:0来使能上拉或下拉。,图 GPIO结构,CapSense模块-CapSense模块的结构,下图给出了在两种配置的感应电容的切换,用来将电容转换成相对应的电阻进行测量。,(a)通过感应电阻对MUXBUS充电,CapSense模块-CapSense模块的结构,CapSense模块-CapSense模块的结构,用下式计算等效电阻:其中:Cs=传感器电容1,2=非重叠的时钟,可以用伪随机序列发生器产生(pseudo random sequence,PRS)。fs=时钟频率Cmod=外部调制电容;电容感应的方法通过将GPIO引脚在高低电平之间切换实现。硬件的剩余部分配置成合适的极性来匹配上拉或下拉电阻。,CapSense模块-CapSense模块的结构,电容感应时钟用于切换。可以使用两种方法来产生CapSense时钟:1)UDB产生两个全局时钟(caps_dsi_lft和caps_dsi_rt),并且布线到各自一侧的I/O引脚的GPIO逻辑。设置PRTx_CAPS_SELy寄存器(基于每端口/每引脚模式)来选择用于在测量期间切换传感器的全局时钟;2)到I/O引脚的DSI输出能用于来自UDB的电容感应的时钟源。编程PRTx_BIEy用于输入(每端口/每引脚),并且清除PRTx_CAPS_SELy选择DSI输出作为电容感应的时钟。,CapSense模块-CapSense模块的结构,注意:静态连接外部的集成电容Cmod(没有切换),使用PRTx_AMUX寄存器将其连接到AMUXBUS,并且PRTx_CAPS_ SELy=0,PRTx_BIEy=0。GPIO引脚能作为屏蔽电极。屏蔽电极用于帮助在出现水膜或水滴的情况下,提高操作的可靠性。测量这些影响因素在屏蔽电极的影响,并且从电容感应按键中消除。下面讨论的电容感应算法支持屏蔽电容。不同的电容感应技术(CSD,CSA)使用PSoC上的很多资源。这些包括UDB,比较器和V-I DAC。,电容感应算法-电容感应-算法,下图给出了电容感应-(Capsense Delta Sigma,CSD)的硬件配置。,电容感应算法-电容感应-算法,图 CSD硬件配置,电容感应算法-电容感应-算法,下图给出了CSD算法的波形图。,图 CSD算法的波形图,电容感应算法-电容感应-算法,电容感应-通过将积分电容的电压保持在目标门限的附近,并且基于目前的比较器的输出状态对电容进行充电和放电操作来实现的。感应电容在Vdd和积分电容之间进行连续的切换,用来在每个切换周期内驱动积分电压升高。,电容感应算法-电容感应-算法,下面给出CSD算法的具体实现步骤:1当积分电压达到参考电压时,比较器将使电流DAC对电容进行放电。2当电容放电电压低于参考电压时,禁止IDAC,以允许电容连续的充电。3当积分电容电压在比较器门限附近波动的时候,在一个间隔内对比较器的低输出进行计数,然后给出感应电容的测量结果。,电容感应算法-电容感应-算法,4触摸时感应电容增加,因此等效电阻减少。这样就引起流经感应等效电阻的电流增加。5在触摸时,为了将Cmod的电压保持在VREF附近,IDAC的吸收电流用于长期补偿较大的感应电容。这样就相应的改变计数值。一个PRS时钟用来替换固定的时钟源来驱动预充电开关。与固定时钟源相比较,PRS时钟降低了感应电容上的辐射噪声,因此改善了EMI和干扰性能。,电容感应算法-电容感应-算法,PSoC也支持其它CSD算法:1)基于比较器的输出,开关电容电阻用来对积分电容进行充电,外部的泄漏电阻器用来对积分电容进行放电。2)基于比较器的输出,翻转极性,IDAC就能被用于对积分电容进行充电,开关电容电阻将积分电容对地进行放电(图7.32(b)。,电容感应算法-电容感应SAR算法,如下图,电容感应SAR(Capsense Successive Approximation,CSA)算法,使用开关电容电路将电容值转换成电压,然后使用ADC进行测量。,电容感应算法-电容感应SAR算法,图 CSA硬件配置,电容感应算法-电容感应SAR算法,当使用不同的ADC方法时,CSA使用带有计数器,IDAC和比较器的典型的单斜率(single-slope)方法。下图给出了CSA算法的波形图。,图 CSA算法波形,电容感应算法-电容感应SAR算法,下面给出了CSA算法步骤:1标定 电流送到带有IDAC的总线上,同时,感应电容被时钟驱动对地形成开关电容阻抗。