本帖最后由 翔宇 于 2012-9-3 14:17 编辑
简单的介绍一下PSoC3/5的使用,写得有些粗糙,供新手入门,有经验者请忽视!
PSoC全称为Programmable System-On-Chip,中文名为片上可编程系统,它是在一个专有的MCU内核周围集成了可配置的模拟和数字外围器件阵列PSoC块,利用芯片内部的可编程互联阵列,有效地配置芯片上的模拟和数字块资源,达到可编程片上系统的目的。
PSoC一共有三个系列,分别为1系、3系和5系,其中1系芯片采用的是M8C内核,处理能力为3MIPS;3系芯片采用的是增加型51内核,处理能力为33MIPS;5系芯片采用的是ARM公司设计的Cortex-M3内核,处理能力为100MIPS。
开发PSoC所用的软件有三个,开发1系芯片所用的软件为PSoC Designer和PSoC Express,但PSoC Express用得不多;开发3系和5系芯片所用的软件为PSoC Creator。与PSoC Designer和PSoC Express相比,PSoC Creator结合了以上两者的优点,更加容易使用,更加人性化。
开发PSoC主要有两个阶段,第一个阶段为原理图设计,每二个阶段为程序设计。由于1系产品已经上市十多年,现在已经有非常丰富的中文资料,详细可以以通过一本名为《可编程片上系统(PSoC)原理及实训》进行学习。下面主要以3系和5系产品为例介绍一下这两个阶段。
原理图设计 PSoC Creator软件可以在Cypress官网下载到,网址为:http://www.cypress.com/?id=2494 目前所用的版本为测试版本,所以经常更新,这一点不用感到奇怪,安装好软件以后如图所示
打开 PSoC Creator 以后的主界面如图所示
关于如何使用它,官方有非常详细的介绍,在帮助文档中可以找到。下面以一个例子简单的介绍一下。 1、打开PSoC Creator 软件 2、新建一个工程,在“Start Page”中点击“Create New Project...” 3、在弹出的“New Project”窗口中选择“Empty PSoC3 Design”,要是用5系芯片,就选择“Empty PSoC5 Design”,为新工程取一个名字,该软件是非常不支持中文的,在任何时候都不能有中文字符,这里也不例外,这里我们取名为“LED_With_PWM” 4 、在“ Location”中选择你要存储的位置,请注意不要有中文字
5 、在默认情况下,PSoC Creator 会打开一个名为“TopDesign.cysch”的文件,在这里我们将完成原理图的设计。
原理图的设计与在Protel中画原理图类似,在软件的右边,会有一个元件目录,你可以直接使用其中的元件,当然你也可以自己创建元件。 在“Component Catalog -> Digital -> Function -> PWM”中找到PWM元件,然后将拖到原理图中,这样我们就放置了一个元件在原理图中了,要想放其它的元件方法与之类似。 6 、虽然已经放置了一个元件在原理图中,但是我们并没有对其进行配置,配置它有两种方法,一种是使用程序对其进行配置,每一个原理图中的模块都会有相应的程序与之对应,详细的说明可以右击元件,在出现的下拉菜单中选择“ Open Data Sheet...”打开其技术文档进行查找,另一种方法是直接在原理图中对其进行配置,这也是我们常用的方法,双击元件,即可对其进行配置,配置参数也请参考其技术文档,我们将PWM配置为如下所示
官方提供的技术文档是非常丰富的,请一定记得查阅其技术哟!!! 7 、在这个时候,你可能已经发现,在软件的右下角会提示有若干错误,这是很正常的,因为我们还没有对 PWM这个元件的外围进行处理,我们放一个“Logic Low‘0’”在元件的reset 和 kill 端 ,在放一个“Clock”在元件的clock 端 ,在放一个“Digital Output Pin”在元件的pwm端 ,放好后,如下图所示
这时就没有错误了,依照上述配置PWM模块的方法,对新添加的元件进行配置,在这里体现了PSoC一个非常优秀的功能,那就是时钟的灵活性,你可以配置出任何你想要的时钟,在这里,这里把时钟配置为100Hz。 8、原理图的设计就基本上完成了,但是你要像在FPGA中一样对引脚进行锁定,你可以把引脚锁定到任何你想要的GPIO上,这也是PSoC的一个优势,引脚相当灵活,任何一个GPIO都能用做数字或模拟引脚。 打开工程目录下的“ LED_With_PWM.cydwr”文件会出现如下界面
在右边选择你想要的引脚后,保存后关闭。如果你没有配置引脚,那么系统会自动为你分配一个引脚,这可不是我们想要的结果。原理图设计到此就完成了。
程序设计 1 、在设计完原理图之后,你需要点击一下编译,这样系统就会自动生成各种需要的文件,编译完成后你会发现,工程目录中多了很多文件。
2、由于3系产品使用的是51内核,所以程序与普通的51单片机程序并没有多大不同,系统默认在“main.c”中写主函数,在程序中,你需要调用各种元件的API来完成对元件的操作,这些API函数你可以在元件的技术中找到,也可以直接打开元件对应的C文件和H文件查找。需要特别说明的一点是,几乎所有的元件,在程序中都需要用一个函数使其工作起来,在这个例子中,我们要使PWM工作起来所用的函数是“PWM_1_Start()” 3、写好后的程序比较简单,如下所示。
4、将程序编译好以后,下载到芯片中,这样,你只需在你锁定的引脚上接上一个 led,就能观察到 led周期性的闪烁,周期为 1秒。 |