打印

PSOC3/5开发流程

[复制链接]
3608|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Go_PSoC|  楼主 | 2011-4-19 22:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Go_PSoC 于 2011-4-19 22:54 编辑

PSOC是美国赛普拉斯半导体公司生产的内置微处理器和数字与模拟外设,具有真正混合信号处理能力的可编程片上系统。片内内置了定时器、PWM、AD、放大器、滤波器等可编程数字、模拟系统,可灵活配置用户所需的各种模块。最早PSOC只有基于M8C内核的一个系列产品,2009年才推出了基于8051和ARM Cortex-M3内核的PSOC3和PSOC5。并同步发布了专门用于PSOC3/5的集成开发环境--PSoC Creator,PSoC Creator预先为用户定义了大量的数字和模拟资源及API函数,用户仅需像在纸上或白板上那样画出设计,让软件工具将其自动转化为PSoC配置,而无需翻阅大量器件文档并记住寄存器映射,使得用户设计更方便、灵活。PSOC3/5采用了当前比较主流的MCU内核,很适合有一定开发基础的朋友研究和开发。但PSOC与传统的MCU设计方法截然不同,学习需要一定的过程。本文将以一个实例简单说明PSOC的开发过程。

一、             开发需要的设备

(1)       装有PSoC Creator软件的计算机一台,

主要用于开发,需要至少一个空余的USB口PSoC Creator安装过程与普通软件安装的方法基本一直,只是过程较长,这里不再赘述,如有需要可以单独联系作者。

(2)       PSOC开发板一套(含电源)

开发板可以自行制作,也可以购买现成的开发板,笔者使用的是赛普拉斯生产的CY8CKIT-001 PSoC® 开发板,配有3个适配板,分别对应PSOC1、PSOC3、PSOC5。本文以PSOC3适配板为例进行说明。

(3)       MiniProg3 编程、仿真器一台。

二、             开发流程

实例:用PSOC3控制两个LED闪烁发光,其中一个用PWM硬件控制发光,另一个用软件延时控制发光。

1.    新建项目

启动PSoC Creator(点击开始——程序——PSoC Creator)。鼠标左键单击PSoC Creator主菜单File——NEW——Project,根据目标芯片选择项目类型,本文选择Empty PSOC3 Design,在Name后面输入项目名称,单击 选择项目存储路径,(注:项目名称好存储路径最好不要出现中文)。展开Advanced前面的 ,如图1所示的列表。选择目标芯片,点击OK,完成项目创建,图2是启动后的PSoC Creator,顶部是菜单和常用工具栏,左边是项目管理器、中间是文件编辑区域,右边是器件目录。




图1




图2

图3

配置如下参数:

Configure 标签

❐ Name: PWM_1      

❐ Resolution: 8-Bit     

❐ PWM Mode: One Output

❐ Period: 100

❐ CMP Value 1: 50

❐ CMP Value Type 1: Less or Equal

Advanced 标签

❐ Enable Mode: Hardware Only

❐ Interrupt On Terminal Count Event: Select

其它元件的放置和配置方法与PWM一样,在此不一一列出,在此只给出各器件的放置路径和配置参数:

Digital  Output pin:点击Component Catalog → Ports and Pins → Digital Output Pin

Type 标签

❐ Name: LED1 、LED2

❐ 选中Digital Output Check box

❐ 选中 HW Connection Check box

General 标签

❐ Drive Mode: Strong Drive

❐ Leave remaining parameters as default

逻辑“1”:Component Catalog → Digital → Logic → Logic High

逻辑“0”:Component Catalog → Digital → Logic → Logic Low

Clock:Component Catalog → System → Clock

配置参数:

Configure Clock 标签

❐ Name: Clock_1

❐ Source: ILO (1.000 kHz)

❐ 选中Divider 并输入 10  (10分频)

PSOC另外一个好处是集成了所有内置资源的DataSheet, 无需用户翻阅大量器件文档并记住寄存器映射,需要时点击左下角的 即可随时查阅。

放置和配置好所有元件,就进入第三步—连线,用连线工具 把所有元器件连接起来,如图4所示:




图4

至此,原理图设计完成。
沙发
Go_PSoC|  楼主 | 2011-4-19 22:55 | 只看该作者
(1)
软件编写
创建项目时,系统自动生成了一个Main.c文件,双击打开,我们可以看到系统已经生成了C语言的基本框架。输入如下代码:
#include
#define MS_DELAY 167u

/*
延时变量 */
void main(void)
{

uint8 ledState = 0x00; /*
初始化LED2 */


Clock_1_Enable(); /*
时钟使能*/

PWM_1_Start();
/*
使能 */


while (1)


{


CyDelay(MS_DELAY);
/*
软件延时控制*/

ledState ^= 0x01u;
/* LED2
软件控制交替亮灭*/

LED2_Write(ledState); /*
LED2状态 */

}

}
以上代码就可以实现上述功能,简单吧,从以上代码我们看出用户编写程序只需合理的调用系统内置的API函数,无需编写底层驱动程序。要查看相关硬件功能及API函数,只需双击该器件,弹出图3所示的配置窗口,点击左下角的DataSheet即可查看。
(2)
管教映射
管脚映射是配置PSOC模块的一个重要步骤。通过管脚映射完成软件配置到硬件的物理连接,这个功能是PSOC技术的一大亮点,用户编写软件完全可以不考虑引脚在什么地方,只需在编译前将你所用到的引脚与实际的物理引脚一一映射即可,打开以.cydwr为扩展名的文件,默认就在pin页面如图5,在这个页面即可配置引脚,右侧为项目用到的引脚列表。配置的方法有两种:一种是直接点击引脚列表后面的下拉列表选择合适的引脚即可,另一种是在引脚名称(Name)上按住左键不放,拖动鼠标到左边芯片合适的引脚上放开鼠标左键即可。


图5

(4)
编译

鼠标左键点击主菜单BuildBuild **(项目名称),或者按下组合按键(Shift+F6)编译文件。
若有语法错误,信息窗口会有错误信息(红色)显示,双击错误信息,光标会停留在源程序代码出错的地方,如图6,经检查发现:在本程序第5行定义变量类型为uint8时,漏写了一个8,系统无法识别,修改后重新编译,出现:Build Succeeded,说明程序编译成功。


图6

(1)
下载和调试

编译通过,说明程序无语法和原则错误,但并不意味着该程序就能正确实现预期的目标,此时须连接开发板将程序下载到硬件平台上,通过硬件平台检验和调试。
程序下载前,先做好硬件连接,本例用两根导线分别将P0[0]P0[7]与四个发光二极管中的一个连接起来。
点击DebugProgram (ctrl+F5)或者按下常用工具栏 即可实现快速编程,如果弹出Selct Dubug Target,请在列表中选择自己的编程器或仿真器,点击Connect,系统会连接编程器并下载程序,下载完毕后,按下开发板上的RESET键,程序开始运行,观看实验现象是否正确,如不正确,查找问题所在,修改并重新编译下载,直至实验结果正确。



2.
设计
PSOC开发包括原理图设计和软件设计两部分,硬件原理图设计是根据用户需求选择合理的内置模拟数字资源,并进行合理配置和连线,让其组成一个完整的硬件系统。软件设计是通过编写用户命令来合理调用系统内置API函数,让硬件系统可靠、有序的工作。
(1)
原理图设计
项目管理器中的TopDsign.cysch文件即为原理图文件,打开即可编辑原理图,原理图编辑一般分以下几个过程:放置元器件——配置元器件——连线
2右侧为PSoC Creator的器件目录,点击相应的文件夹可以选择对应的元器件,本例需要放置一个PWM、一个时钟(clock),两个数字输出引脚(Digital
Output pin
)、一个逻辑“1”、一个逻辑0,放置的方法分别是:
PWM: 点击Component Catalog Digital Functions PWM,选中PWM按住鼠标左键不放,拖拽到编辑区合适的位置放下,双击PWM控制器,弹出如图3所示的配置窗口

使用特权

评论回复
板凳
冰清玉洁| | 2011-4-19 22:58 | 只看该作者
支持一个,版主普及知识很到位

使用特权

评论回复
地板
qwasd| | 2011-4-25 18:02 | 只看该作者
喜欢这样的帖子

使用特权

评论回复
5
xihuanmianfei| | 2011-5-9 21:03 | 只看该作者
好呀

使用特权

评论回复
6
luohe2008| | 2011-11-16 19:49 | 只看该作者
转发帖子可以,但请楼主以后注明**出处,本文是本人的博客笔记,欢迎大家踩踏。

使用特权

评论回复
7
japrincess| | 2011-12-5 23:20 | 只看该作者
恩,图文并茂,蛮不错的!!!!!!!!

使用特权

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

本版积分规则

898

主题

5336

帖子

15

粉丝