打印

深入了解PSoC 4:TCPWM使用基础(转帖)

[复制链接]
4060|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cgd|  楼主 | 2013-8-13 15:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

关键字:PSoC 4   TCPWM   电机控制  

本文首先简要介绍了Cypress PSoC 4产品的主要特性,然后以TCPWM为例,从其基本特性和特色功能两个方面,以电机控制作为典型应用,介绍如何使用PSoC 4实现灵活的产品设计。
1. 引言

Cypress在2013年3月推出PSoC 4可编程片上系统架构,它将赛普拉斯一流的PSoC模拟和数字架构以及业界领先的CapSense电容式触摸技术同ARM的低功耗Cortex-M0内核完美相结合。这款真正可扩展的低成本架构可提供PSoC标志性的高灵活性、模拟性能和高集成度,而且能提供数十种免费的PSoC组件(Components),可适用于很多类应用,如PMSM电机控制、家电用户界面、手持医疗、温度传感、安全访问、物联网等等.本文即以TCPWM模块为例,以电机控制作为典型应用,介绍如何使用PSoC 4实现灵活的产品设计。

2. PSoC 4简介

PSoC 4是基于ARM Cortex-M0 CPU的可编程嵌入式系统控制器家族,它集合了可编程模拟资源、可编程内部互联、用户可编程数字逻辑、通用的固定功能外设计以及高性能的ARM Cortex-M0 CPU子系统。相对于PSoC 3、PSoC 5系列产品的各个方面,PSoC 4都做了很大的改进。PSoC 4现包含CY8C4100和CYCY8C4200两个产品系列,PSoC 4100系列是基于ARM内核的最低成本的PSoC,它将PSoC的灵活性和高集成度引入对成本敏感的大批量生产的产品中。PSoC 4200系列拥有速度更快的处理器,更高的ADC采样速度,以及基于PLD的增强型通用数字模块(UDB)。

图1是PSoC 4的系统框图,以下概括了其主要特性,详细内容可以参考Cypress网站上的PSoC 4的数据手册。

● 高性能Cortex-M0 CPU内核。基于48MHz ARM Cortex-M0中央处理器,支持单周期乘法。

● 最大支持32KB闪存(Flash),最大支持4KB SRAM存储器。

● 固定功能以及可配置的数字模块。包括四个独立的可支持中央对齐的PWM,支持互补的可编程死区及同步ADC操作;两个可工作为SPI/UART/I2C串行通信接口的串行通信模块(SCB);LCD驱动,可以驱动多达4个Common和32个Segment的LCD控制器。

● 高性能模拟系统。包括一个支持零开销通道切换功能的12位1Msps ADC;两个支持比较器模式及SAR ADC输入缓冲功能的运算放大器;两个低功耗比较器;一个电容感应(CapSense)模块,提供极佳的信噪比和防水功能;两个电流数模转换器(IDAC)。

● 高度可编程的数字逻辑。四个可编程数字逻辑模块(UDB),每个包含两个微型的可编程逻辑阵列和一个8位数据运算单元。

● 灵活可编程的内部互连。

● 低功耗运行模式:Sleep、Deep Sleep、Hibernate和Stop

● SWD编程及调试单元,全面支持PSoC Creator IDE工具



图1:PSoC 4芯片系统框图


沙发
cgd|  楼主 | 2013-8-13 15:50 | 只看该作者

3. PSoC 4 TCPWM模块


与PSoC 3、PSoC 5相比,PSoC 4增强TCPWM模块的功能。TCPWM包括四个16位的周期长度用户可编程的计数器,这些计数器之间可以进行功能同步。每个模块包含一个捕获寄存器、一个周期寄存器以及一些比较寄存器。每个模块都支持互补的可编程的死区,还支持一个关断输入信号来强迫输出信号进入预先设定的状态。与其他普通PWM模块相比,TCPWM除了支持中央对齐PWM、时钟预分频等功能外,还支持伪随机PWM以及正交解码等功能,前者可用于对电机输入的相位信号进行正交解调,后者可用于特殊情况下电机控制PWM调制。


图2是TCPWM的模块框图,以下概括了其主要特性:


● 四个16比特计时器/计数器/PWM


● TCPWM模块中的每个计数器均能够独立支持以下六种操作模式


○ 定时器/计数器


○ 捕获


○ 正交解调


○ PWM


○ 带死区的PWM(PWM-DT)


○ 伪随机PWM


● 四种计数模式——向上计数、向下计数、向上/向下计数模式0和向上/向下计数模式1


● 时钟预分频选项,支持的分频系数有2、4……64、128


● 比较/捕获(CC)寄存器和周期寄存器(period)有额外的缓冲寄存器


● 触发中断的方式:


○ 计数终止(TC)——当计数器的值达到计数终值(包括period寄存器中的值或0),能够触发中断


○ 比较/捕获(CC)——当计数器的值等于CC寄存器中的值(定时器模式中),或者计数器的值被捕获到CC寄存器中(捕获模式中)时,能够触发中断


● 计数器的同步——四个计数器能够在同一时间发生重载,开始,停止和计数等事件


● 每组计数器的上溢,下溢,捕获/比较都可以产生DSI输出


● 每组计数器都有一对互补的PWM输出


● 14个DSI输入信号,支持启动、重载、停止、计数和捕获事件,这些事件的触发条件可以是上升沿、下降沿和电平触发




图2:TCPWM的模块框图


TCPWM模块提供了多种工作模式,可满足各种复杂的需求。TCPWM中的每个计数器都可以工作在6种工作模式,可通过配置寄存器进行选择。工作模式如下表所示。




TCPWM模块中的计数器有四种计数方式,通过配置寄存器UP_DOWN_MODE可以选择计数方式。计数方式共有向上计数模式(计数寄存器的值累加,当达到周期值时,输出TC状态)、向下计数模式(计数寄存器的值递减,当达到周期值时,输出TC状态)、向上/向下计数模式0(计数寄存器的值累加,当达到周期寄存器中的值时,计数寄存器的值递减,直到达到0当计数寄存器的值达到0时,输出TC状态)、向上/向下计数模式1(计数寄存器的值累加,当达到周期寄存器中的值时,计数寄存器的值递减,直到达到0。当计数寄存器的值达到周期寄存器中的值和达到0时,输出TC状态)。


利用TCPWM多样的工作模式及计数方式可以满足一些复杂的应用需求。以电机控制为例,TCPWM提供了电机控制常用的中央对齐、边沿对齐PWM,并可实现严格的同步功能。支持灵活的死区控制,并可与ADC同步。利用PSoC灵活的可编程特性,用户可自定义在PWM周期内任一时刻触发ADC转换。TCPWM还支持正交解调模式,用于对电机输入的相位信号进行正交解调,完成电机的闭环控制。TCPWM功能强大配置灵活的特性,可帮助用户简化并加速设计工作,从而创建出功能丰富、高度差异化的产品。


PSoC 4采用PSoC Creator集成设计环境,PSoC Creator允许用户拖放预先配置好的、可随时投产的模拟和数字IP模块,也就是PSoC组件到自己的设计之中,并将其按照多种应用需求进行配置,实现软硬件协同设计,创建真正属于自己的器件。以电机控制中常用的互补对称PWM为例,在PSoC Creator中选择TCPWM模块的工作模式为“PWM”,选择PWM align为Center align(即中央对齐,向上/向下计数模式0),选择PWM mode为PWM with dead time insert(即PWM-DT模式),设置相应的死区时间,如图2所示。如此便可输出两路互补对称PWM;如图3所示,line及line_n即为带死区的两路互补对称PWM。




图3:TCPWM配置界面




图4:TCPWM输出效果图


PSoC 4 TCPWM为每路计数器提供了4路较为有用的输出信号,如图4中的OV、UN、TC和CC信号。OV是上溢信号,用来指示计数器向上计数达到周期寄存器中的值;UN是下溢信号,用来指示计数器向下计数达到“0”;TC是计数终值信号,用来指示计数器的值达到计数终值;CC是比较/捕获信号,用来指示计数器的值达到CC寄存器中的值。利用这几个信号可以灵活的触发中断或其他事件,如触发ADC采样等。以电机控制为例,我们可以在OV事件时触发ADC采样,然后在UN事件时触发中断采用上次的ADC采样值进行计算。


PSoC 4 TCPWM提供了较为灵活的PWM更新方式。TCPWM模块中的每个计数器都有周期寄存器及对应的缓存周期寄存器、比较寄存器及对应的缓存比较寄存器。更新周期寄存器及比较寄存器会立即生效。更新缓存寄存器则可让TCPWM在某一时刻进行更新。缓存寄存器的存在可以保证多路PWM更新的严格同步。在终止计数时(TC),如果有一个有效的交换(switch)事件并且TCPWM_CNTx_CTRL中的AUTO_RELOAD_CC and AUTO_RELOAD_PERIOD位置1的话,周期和比较寄存器上的值会自动与缓存周期和比较器寄存器的值更换。利用此特性,我们可以在TC事件之前更新缓存寄存器,然后用同一信号触发不同PWM的Switch事件,由此保证各路PWM更新的实时同步。


在图5中,我们用三个TCPWM模块实现了电机控制中常用的三相PWM输出功能。三路PWM采用同一时钟源,由此可避免很多同步问题。三路PWM周期一致,由第一路PWM的UN事件触发中断,在中断中进行计算,更新占空比;同时UN事件触发三路PWM的Switch信号,在TC事件时,PWM U、V、W会同时更新为上次计算的占空比。这样我们利用TCPWM强大的功能及PSoC 4灵活的可编程特性轻松实现了三对严格同步的互补对称PWM及其更新逻辑,这样可以使工程师将更多的时间专注于算法层面,提供产品的竞争力。




图5:三相PWM原理图


使用特权

评论回复
板凳
cgd|  楼主 | 2013-8-13 15:51 | 只看该作者

4. PSoC 4 TCPWM特色功能


除了具有定时器、PWM等基本功能之外,PSoC 4 TCPWM还包含一些特殊的功能。


正交编码模式


PSoC 4 TCPWM提供了与用于获得机械位置数据的编码器的接口。当TCPWM模块工作在正交编码模式时,可被用来确定一个旋转装置(如伺服电机,音量控制的轮子,PC鼠标等)的速度和位置。此模式用于实现多种电机控制应用的闭环控制,如永磁同步电机。配合其他几路TCPWM的输出功能及片内ADC、OpAmp等资源,可构成一个完整而灵活的电机解决方案。




图6:正交模式框图


如图6所示,正交编码器的信号通过phiA、phiB输入给解码器,计数方向取决于phiA和phiB的相位情况,phiA和piB可以分别通过计数和启动事件来输入;DSI输入的重载信号可以作为正交索引事件。这个事件会产生一个终止计数TC条件。在终止计数(TC)时,计数器被设为0x0000(向上计数时)或者周期值(向下计数时)。


正交解码可以工作在3种正交编码模式,即X1、X2、X4。工作在X1模式时,当phiB从“0”开始时,在phiA的上升沿计数器加1;在phiB从“1”开始时,在piA的上升沿计数器减1。正交编码模式X2和X4的计数速度分别是X1模式的两倍和四倍。模式X2和X4为确定编码器的位置提供了更高分辨率的数据。


伪随机PWM模式


PSoC 4 TCPWM还提供了产生伪随机PWM的机制。在某些电机控制场合,开关频率必须控制在较低的频率(5kHz以下),此时电磁噪音正处于人耳的敏感范围,会产生尖锐的噪音。采用随机PWM进行调制,可以将谐波的频谱拓宽,使电机电磁噪音近似为限带白噪声,这样以开关频率为特征的噪声会大为降低,电机发出的尖锐噪音会大为降低。利用此模式进行随机PWW调制,完全采用硬件机制实现,既保证了随机数发生的可靠性,又可降低软件的负担,帮助客户加快设计周期、提高质量。


伪随机PWM模式用线性反馈移位寄存器(LFSR)来产生伪随机PWM,LFSR是一个输入为之前状态的线性方程的移位寄存器。LFSR采用的线性方程的多项式为:x16+x14+x13+x11+1,可以用一个计数寄存器实现,它可以产生在[1, 0xFFFF]范围内的伪随机序列。当计数寄存器的低15位小于比较寄存器的低15位时,PWM输出线line_out输出为高。当比较寄存器的值大于或等于0x8000时,PWM输出为高;当比较寄存器的值为零时,PWM输出为低。因为只有第15位参与比较,所以当用中值0x4000,可以产生大致50%占空比的伪随机PWM.图7显示了伪随机PWM的时序图。




图7:伪随机PWM时序图


5. 小结


上述实例介绍了PSoC 4 TCPWM的基本功能。PSoC 4 TCPWM除了提供电机控制等复杂应用中常用的PWM输出功能外,还提供了正交编码接口、伪随机PWM等较有特色的实用功能。再结合PSoC 4灵活的内部结构和丰富的资源,用户使用PSoC 4 TCPWMR可以轻松设计出优秀产品以满足复杂的应用需求。

使用特权

评论回复
地板
lzhneubmie| | 2013-8-17 19:51 | 只看该作者
讲解的不错,支持下~

使用特权

评论回复
5
acer4736| | 2013-8-25 19:51 | 只看该作者
学习了

使用特权

评论回复
6
jinpaidianzi| | 2013-8-25 19:51 | 只看该作者
对学习psoc4很有帮助的

使用特权

评论回复
7
teabottle| | 2013-8-25 20:28 | 只看该作者
很不错的**

使用特权

评论回复
8
wangjinlili| | 2013-8-25 20:29 | 只看该作者
多谢楼主分享

使用特权

评论回复
9
meishizhaoshi| | 2013-8-25 21:33 | 只看该作者
很好 很有参考价值

使用特权

评论回复
10
shibalihuandao| | 2013-8-25 21:50 | 只看该作者
有点深入了解的意思了

使用特权

评论回复
11
zhaoying818| | 2013-8-30 16:11 | 只看该作者
有点意思啊

使用特权

评论回复
12
rongruosixue| | 2013-9-25 10:29 | 只看该作者
那,PSOC4的定时器中断该怎么用呢。??

使用特权

评论回复
13
kk5290122| | 2013-9-28 11:58 | 只看该作者
lz的实例有电子版的么??

使用特权

评论回复
14
在路上的旁观者| | 2013-10-3 08:46 | 只看该作者
好评

使用特权

评论回复
15
huigoushang| | 2013-10-28 13:29 | 只看该作者
写得很详细很不错 不错的资料

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

cgd
个人签名:

80

主题

7467

帖子

16

粉丝