ypress在2013年第二季度推出了新一代可编程片上系统PSoC4系列产品,作为PSoC(Programmable System on Chip)芯片家族中的一员,PSoC4保持了Cypress具有特色的片内可编程数字资源和丰富的模拟资源,同时由于采用ARM Cortex-M0作为处理核心,其运算性能也有显著提高。PSoC4内含许多独具匠心的功能模块,逐次逼近式模数转换器(Successive Approximation Register Analog Digital Convertor,以下简称SAR ADC)就是其中之一。本文即以SAR ADC为例,介绍如何使用PSoC4实现产品设计。
赛普拉斯PSoC4芯片揭秘:玩转SAR ADC模块
PSoC4简介
PSoC4现包含CY8C4100和CYCY8C4200两个产品系列,均采用ARM Cortex-M0作为处理核心。PSoC4具有灵活的可编程和可重新配置的模拟、数字模块,结合芯片内部灵活的互联网络,可以使用一块芯片实现复杂的混合信号设计。
图1是PSoC4的系统框图,以下概括了其主要特性,详细内容可以参考Cypress网站上的PSoC4的数据手册。
● 48MHz ARM Cortex-M0中央处理器,支持单周期乘法
● 最大支持32KB闪存(Flash),最大支持4KB SRAM存储器
● 高达36个可灵活配置的通用输入输出管脚(GPIO),均可配置为触摸感应输入
● 两个可灵活配置驱动能力和带宽的运算放大器,可以工作在比较器模式,也可做ADC的输入缓冲器
● 一个12-bit 1M采样率的SAR ADC,支持差分和单端输入,无软件开销的输入通道切换,硬件实现的采样结果平均,采样结果范围比较
● 两个电流数模转换器(IDAC),不用于CapSense时可以输出给内部模块,或通过GPIO输出用于其他用途
● 两个内部低功耗比较器,可以在深度睡眠和休眠模式下工作,可以产生唤醒信号中断睡眠
● 一个电容感应(CapSense)模块,提供极佳的信噪比和防水功能,具有简单易用的应用设计接口
● 四个通用数字模块(UDB),每个包含两个微型的可编程逻辑阵列和一个8位数据运算单元。Cypress提供了自定义组件功能,用户可以根据设计需要,使用Verilog控制UDB实现用户定制的功能模块
● 2个可灵活配置的串行通讯模块(SCB),每个均可配置成SPI/UART/I2C,支持基于串口的LIN、IrDA、SmartCard协议
● 四个16比特的定时器/计数器/脉冲宽度调制模块(TCPWM),支持中心对齐、边沿对齐模式,伪随机模式,支持灵活的死区控制,PWM可与ADC同步,用户可自定义在PWM周期内任一时刻触发ADC转换),支持同步刷新PWM的占空比
图1:PSoC4芯片系统框图
图1:PSoC4芯片系统框图
与 Cypress前一代产品PSoC3/5相同,PSoC4仍然使用PSoC Creator作为集成开发环境。PSoC Creator将硬件资源抽象成了众多的功能模块(Component),每个模块实现一种基本功能,例如PWM模块,I2C模块,基本与门,中断响应模块,输入输出管脚等等。设计者像绘制原理图一样,选择适当模块,将其输入输出与其他模块连接,然后通过每个模块提供的图形化配置向导设置模块参数,之后编写适当的软件代码,即可实现所需功能。这种模块化的设计方法令设计者能够将更多精力集中在实现应用的功能上,而无需关注许多底层硬件配置细节。PSoC Creator的详细使用手册可以在Cypress网站上获得。
PSoC4 SAR ADC模块
与前几代PSoC相比,PSoC4增强了ADC模块的功能。在结构上,PSoC4采用了可获得较高采样速率的逐次逼近式(Successive Approximation Register,SAR)ADC,能够实现最高1Msps的单通道采样。PSoC4包含一个SAR核心,通过切换采样通道,可以实现多路输入信号的转换。为了减少通道切换对CPU运行时间的占用,PSoC4集成了一个8通道采样输入多路器,提供采样通道硬件切换,从而去掉了通道切换的软件开销。
该多路器最多支持8路单端输入,或者4路差分输入,或者同时包含单端输入和差分输入。图2中实例(a)~(c)分别实现了全单端输入,全差分输入,和单端/ 差分混合输入,如果应用所需的输入信号小于SAR的最大允许值,通过设置SAR的配置可以隐藏未使用的输入通道,如实例(d)使用了两个单端输入通道,此时多路器仅自动切换两个通道,忽略未使用的其余六个通道。
图2:四个SAR设计实例 - 处理单端输入与差分输入
图2:四个SAR设计实例 - 处理单端输入与差分输入
PSoC4 SAR一次完整的单通道采样包含两个阶段:信号获取(Acquisition)和采样转换(Convertion)。在信号获取阶段,SAR获得当前输入通道的信号值,储存在内部的采样保持器中;在采样转换阶段,SAR通过不断改变参考电压值,与采样保持器中的信号值做比较,从而将信号值数字化,得到采样结果。PSoC4 SAR的信号获取时间可以由用户设定,而采样转换时间与采样结果位数相关,以1Msps采样率为例,默认的信号获取时间为222.2纳秒,采样转换时间为 777.8纳秒。
PSoC4 SAR将这两个阶段设计成了流水线的结构,两个阶段之间可独立运行。因而,对于多通道采样,当前输入通道进行采样转换时,多路器可以切换至下一路通道,从而提供一个额外时间对电路中的寄生电容充放电,保证SAR在进入信号获取阶段之前,输入信号已经达到稳定。图3是一个3通道采样的工作示意图,从图中可以看出,PSoC4 SAR在具有较高采样速度的同时,仍有充足时间获得稳定的采样信号。
图3:3通道SAR采样工作示意图
图3:3通道SAR采样工作示意图
图 3中还有两个重要的脉冲信号:SDONE和EOC。SDONE用来指示信号获取阶段已完成,PSoC4 SAR的内部多路器就是由该信号触发通道切换;EOC用来指示一次完整的多通道采样已完成,因此在图3中当最后一个通道转换结束,该脉冲信号输出。EOC 信号可以触发一个中断,用来读取SAR的采样数据,也可以用于触发芯片内的其他资源。PSoC4 SAR为每一个通道都提供了一个16位的结果寄存器,可以在一次多通道采样结束后,一次性读取数据以减少中断程序对CPU时间的占用。图4给出了两个实例的波形,均使用1Msps采样率,一个是8通道输入,一个4通道输入。注意到图3中两个SDONE信号的间隔是一个完成的采样周期,在图4的例子中应为1 微秒,与波形测量值(period)一致。
图4:SDONE和EOC示意图 - 8路输入和4路输入,1Msps采样率
图4:SDONE和EOC示意图 - 8路输入和4路输入,1Msps采样率
PSoC4 SAR ADC特色功能
除了具有AD模块基本功能之外,PSoC4 SAR还包含一些独具特色的功能。
灵活的触发信号
PSoC4 SAR支持硬件信号触发采样,该信号可以是通过GPIO输入的外部信号,也可以是内部模块产生的信号。由于PSoC4具有灵活的可配置结构和丰富的内部资源,因此内部信号触发SAR在设计中极为实用,例如,比较器的输出触发SAR在特定信号点采样,定时器计数器溢出信号触发SAR在特定时间点采样,或者外部信号输入后经过PSoC4通用数字模块(UDB)处理,针对特定输入信号触发SAR采样。
图5提供了一个设计实例,该例子中定时器(Timer)的计数器溢出信号触发了SAR ADC的采样,图6是该设计工作时的波形。此设计可以在指定的时间点对输入通道采样,定时器计数值的重新装载由硬件实现,采样通道切换由SAR的多路器硬件实现,全过程仅在采样数据读取时需要软件参与,从而节省大量的CPU运行时间。
图5:设计实例:使用定时器的计数器溢出触发SAR ADC
图5:设计实例:使用定时器的计数器溢出触发SAR ADC
图6:硬件触发信号工作波形
图6:硬件触发信号工作波形
采样值范围比较
PSoC4 SAR提供了硬件级别的采样值范围比较。通过设定一个最大值,一个最小值,SAR可以对每一个通道的采样值进行快速的范围比较,一旦发现采样结果超出了给定数值范围,一个范围越界的中断会立即产生,从而触发SAR的中断服务程序。如图7所示,范围比较模式有四种选项,采样值小于最小值,采样值大于最大值,采样值在二者之间,和采样值在二者之外。结合每个通道的中断屏蔽寄存器,可以针对选定的通道实现快速范围比较。
图7:SAR配置 - 采样值范围比较
图7:SAR配置 - 采样值范围比较
独立的通道配置寄存器
PSoC4 SAR为每一个输入通道提供了一组独立的配置寄存器,可以使得通道属性存在不同,如图8所示的3通道采样,第一个通道采用差分输入,结果存为12位,信号获取时间增加1微秒(单独设置的A clks),并且对采样结果进行范围比较;其余两个通道为单端输入,结果存为8位(可选分辨率ALT),使用默认信号获取时间,无需对采样结果进行范围比较。这种独立的通道配置寄存器能够更好的满足实际应用中多变的需求,减少工程师对于琐碎控制逻辑的关注,从而实现产品的核心功能。
图8:SAR配置 – 不同通道配置的多通道采样
图8:SAR配置 – 不同通道配置的多通道采样
硬件采样平均
PSoC4 SAR可以对每一个采样通道都进行指定次数的硬件采样结果平均。例如,若设定一个通道的采样平均次数为8,则SAR会连续对该通道采样8次,采样结果累加后进行算术平均,计算结果最后存入采样结果寄存器。
小结
上述实例介绍了PSoC4 SAR的基本功能。作为MCU中最常见的功能模块,PSoC4 SAR除了具有一般MCU的常见性能之外,还提供了一些独具特色的实用功能。实际上,结合PSoC4灵活的内部结构和丰富的资源,用户使用PSoC4 SAR可以轻松设计出优秀产品以满足复杂的应用需求。