这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » Cypress » ce688888的项目开发进程贴

共13条 1/2 1 2 跳转至

ce688888的项目开发进程贴

菜鸟
2013-11-21 19:59:54     打赏

PSoC4 开发板收到!先上图!

包装图内饰主板实验


菜鸟
2013-11-21 20:02:36     打赏
2楼
1.1      实验目的和功能 1)        测试PSoC4内部的ADC性能 2)        使用内部的PWM模块,模拟V/F转换,控制LED的亮度 3)        使用内部的UART模块,把电压数据发送到电脑 1.2      实验工具 1)        PSoC4开发 2)        数字电源或者电池+电位器 3)        电脑 4)        万能表 1.3      实验总结 1)        这个实验的主要目的是测试PSoC4内部的ADC,从实验过程的体验来看,模块的使用是比较方便的,我们可以直接使用软件自动生成的函数;另外,内部提供的参考源精度还是较高的,相比,板子在USB供电的情况下,使用板子上的VDD电压,精度就稍逊,但可以通过外接旁路电容来改善。 2)        芯片本身在ADCPWM方面的优势较为突出,所以特别使用了这两个模块组合了一个V/F的应用,通过改变电压来改变频率的占空比,实现LED的亮度。整个功能只要几个模块的连接和简单的初始化函数的调用,实际的应用价值还是非常高的。 3)        板子上有USB转串口的功能部分,可以让实验和测试更加通用和灵活,用简单的实验环境就可以体验和测试芯片的功能。 1.4      实验内容1.4.1   创建项目文档     打开软件CREATOR2.2。然后在菜单栏选>>File>>New>>Project进入项目界面
    我们可以直接选择图中红色框的选项,创建一个全新的项目。另外,我们还可以选择蓝色框中的选项,这些选项可以让我们直接生成对应的完整的项目。我们可以把这些项目作为例程学习
    我们创建了全新的项目后,软件就已经给我们生成了相关的文件夹和文件。下图是我们完整项目的文件列表


工程概览

然后我们双击文件1TOPDESIGN.CYSCH,从文件名来看,就已经有点像我们用PROTEL来做硬件电路板的原理图文件名,其实真的是类似的,如下图

这个项目需要用ADC模块,,所以我们把“Sequencing SAR ADC”直接拖进工作区就添加成功了。然后就要对模块进行设置,模块功能比较多,自然设置的选项也比较多了。具体的设置如下图。

对其中几个需要经常修改的参数进行说明一下:

1)        Sample rate:采样频率,整个值的设置会受到采样时钟和采样均值次数的限制 2)        Clock source:采样时钟源,可以外部和内部 3)        Sample mode:采样模式,有自动模式和硬件触发 4)        Vref select:参考电压,整个会直接影响到采样精度和范围 5)        Interrupt Limits:触发限制,主要用于限制触发值的范围。       ADC模块还需要配置这个设置界面
   主要是配置ADC的采样位数和采样方式,添加采样通道等的功能。本实验使用了12位,差分模式。


接下来再添加两个模拟输入端口,用于输入差分的电压信号。这个实验使用差分信号是为了扩展性能更好,以后在输入端接上温度传感器电路,就可以变成一个数字温度计,其他的模拟实验都是基于这个ADC原理。然后双击刚才添加的PIN,进入对应PIN的配置界面。

然后我们再添加一个PWM模块,PWM模块的作用是根据电压值的大少来控制频率的占空比,然后反映出来的效果就是LED的亮度会随之变化。这个过程就是V/F的转换。软件提供了两种的PWM模块,一个是标准的PWM,另外一个是PWM(TCPWM mode)PWM(TCPWM mode)是一个功能更全的模块,我们就直接选用这个,另外PWM模块还需要CLOCK提供参考时钟源。下面是PWM(TCPWM mode)的配置界面。

由于我们这个实验对于频率的要求不高,所以对于PWM提供的很多功能我们就用默认就可以了,具体的功能使用可以参考《PSoC4分频模块》一文。其中要介绍一下图中的两个参数:

1)        Period:这个参数是指把参考时钟细分的值。 2)        Compare:这个就是类似占空比的参数,我们暂且叫占空比,其实际的原理是PWM的计数累加值与这个值比较,到达这个值就翻转。     频率模块的配置如下图参数,我们使用了1M的频率,这个频率选择没有必然的,只是在这个频率会让显示的效果比较好。最后PWM模块输出的频率F=1M/1000=1000Hz


 再添加两个LED的输出端,分别接在PWM模块的两个互为反相的输出端。这部分的模块连接如下图

最后我们还需要一个串口模块,也是直接从模块栏拉入工作区。

串口的配置如下图,其实就是一个标准的串口,我们选用38400的波特率。

最后要做的就是配置管脚号了,这个管脚配置就相当于C语言的“sbit LED_G= P0^2”,但在这里我们就是通过下拉菜单选择完成。双击文件二(DESIGN04.cydwr),按照表中的参数修改就可以了。

到这个步骤,我们基本上就完成了M0和逻辑功能的配置,或者说我们已经设计好了我们实验所需要的硬件电路,然后通过菜单栏的BUILD>>GENERATE APPLICATION功能生成系统中模块需要的文件,剩下的工作就是编写MAIN.C函数。1.4.2   编写函数

       PSoC4的开发软件的优越之处还在于其提供完善的函数,所以在使用过程中,我们不需要去编写接口函数或者其他的功能函数,我们只需要按照我们的使用需求调用合适的函数。但在使用这个软件的时候,我们要养成一个习惯,尽量避免在功能模块提供的C文件中编写应用函数,因为在使用菜单栏的BUILD>>GENERATE APPLICATION功能时,模块是会重新生成会同时更新对应的文件的。     在编写MAIN.C函数前,推荐大家看一下刚才生成的文档,我们现在就拿文件夹《PWM_1》下的PWM_1.C来看一下(文件名跟我们添加的端口或模块是同名的) PWM_1.C下有几个函数,其中我们要用的就一下这个 void PWM_1_WriteCompare(uint32 compare) {     PWM_1_COMP_CAP_REG = (compare & PWM_1_16BIT_MASK); }     上面的函数是用于设置PWM波形的占空比,通过对相应的寄存器写入需要的占空比数值,这个函数所实现的功能也能在刚才配置PWM的界面上实现。硬件生成过程会把我们需要用到的端口函数都准备好了,我们只要懂得使用就是好,十分方便。 MAIN.C函数如下: void main() {     uint8 channel = CHANNEL_1;     int16 ADC_Val[4u];     int16 mVolts;     int16 previousValue = 0;     UART_Start();      //串口初始化        CyGlobalIntEnable;     //终端使能     ADC_Start();      //ADC使能     ADC_IRQ_StartEx(ADC_ISR_Handler);    //ADC终端使能     ADC_StartConvert();     //ADC转换        Clock_1_Start();     //打开PWM时钟     PWM_1_Start();       //打开PWM模块     PWM_1_WriteCompare(500);    //设置开始的占空比是50%     for(;;)             //死循环     {         if(dataReady == 1u)     //判断ADC数据是否转换完成             {             ADC_Val[CHANNEL_1] = ADC_GetResult16(CHANNEL_1); //获取ADC转换数据             mVolts = ADC_CountsTo_mVolts(channel, ADC_Val[CHANNEL_1]);   //转换为相应的电压值             if((previousValue != mVolts))    //判断采样数据跟上次数据是否一致,否的话发送数据                 {                    SendChannelVoltage(channel, mVolts);   //串口发送电压值                 previousValue = mVolts;         //把这次的数值保留,作为下次的比较值                 PWM_1_WriteCompare(mVolts);     //把电压值赋给PWM作为占空比值,LED亮度改变。                 }                 dataReady = 0u;                      }             } }     整个实验的流程就在MAIN.C函数中很好的体现出来了。更详细的代码可以直接参考工程文档。然后就是编译和下载 1.4.3   编译下载      通过菜单栏的BUILD>>BUILD 文件名”或者shift F6编译工程。      通过菜单栏的DEBUG>>PROGRAM”或者ctrl F5 下载工程。下载完毕,就连接相关的测试工具进行实验。 1.4.4   仿真      软件和硬件都支持在线仿真,所以我们可以尝试一下。通过菜单栏的DEBUG>>DEBUG”或者 F5 进入DEBUG。仿真这个环节跟其他的开发工具都是类似的,使用很方便。 1.4.5   上电实验      在上电前,我们要先连接好串口跳线和电源输入端。 1)        串口跳线:PSoC4(P0.4)------PSoC5LP(P12.7)           PSoC4(P0.5)------PSoC5LP(P12.6) 2)        ADC检测的电源输入端:电源正(P2.0,电源负(P2.1         连接好后如下图,不需要其他的外围电路。


  我们在设置ADC的参考电压时选择了1.024V,所以检测的有效范围0~1.024V,大家在做实验的时候可以用可调电源,或者更通用的1.5V的电池加上一个电位器。我们实验就选用了可调电源。

USB线连接电脑和PSoC4板子,现在电脑上多了一个串口,记下串口号,然后打开实验用的电脑软件。如下图,现在发现的串口号是COM14,然后按“打开串口”按键,接通可调电源,我们就可以看到软件显示出当前的电压值。调节可调电源,显示的电压随之变动。通过跟数字电压表做对比,检测的精度还是比较好的,误差在10mV内。我们还可以换取其他的参考电压源,但我们要注意参考电压源的精度会直接影响ADC的输出值。


1.4.6   使用比较

1)        设置比较直观     软件提供了很多配置的界面和功能选项,这些功能都可以让用户非常直观的了解到这个芯片系统的构成,而且很容易上手,这点非常好,更可以说明软件的功能强大。但有的朋友可能比较习惯直接用代码来配置功能,其实都是可以的。现在我们举个例子来说明一下。 文件夹《LED_R》下的LED_R.C有这么一段函数,是用来配置端口的模式的 void LED_R_SetDriveMode(uint8 mode) {     SetP4PinDriveMode(LED_R__0__SHIFT, mode); }     其实上面的一段代码可以通过软件提供的选项来实现,刚才我们在配置PIN功能的时候有这么一个界面,在这个界面我们也可以配置相同的功能。     所以软件提供的强大的功能,能够方便我们在编程时候了解芯片的性能,在时候的工程中,我们还是需要去了解芯片的内部寄存器和原理。 3)        信号采集和电机驱动较为突出 ADC的使用比较方便,另外,芯片还提供了内部的运放,在信号采集,调整,转换溶于一体,减小外部器件和干扰源。另外内部还有PWM定时器,分频器等模块都非常适合电机应用场合。 4)        M0+可编程逻辑器件

PSoC4芯片整体来看仿佛就是M0和可编程逻辑器件的组合体,内部的PWM,定时器,分频器等模块都是用逻辑来动态重组,这个是很灵活的应用。从众多的模块来看,内部的逻辑资源还是十分充足的,体现出十分强大的灵活性。


视频教程地址如下

http://v.youku.com/v_show/id_XNjIyNzAzNDUy.html

设计教程

PDF文件教程

PSOC4虚拟电压计教程.pdf

上位机软件

电压计上位机.zip

工程的打包

Creator工程.rar


菜鸟
2013-11-21 20:03:13     打赏
3楼
先占座

菜鸟
2013-11-21 20:03:59     打赏
4楼

1:首先相关资料分享:

关于RTOS设计及教程

FreeRTOS_CNN.pdf

FreeRTOS_在_STM32_的移植.pdf

FREERTOS+的官方移植文档.pdf

FreeRTOS入门手册_中文.pdf



2:开发板配置说明

首先我们来看CY8CKIT-042_Kit_Guide.pdf中PSoC4的开发板结构,在开发板中,PSoC 5LP作为PSoC4的编程器和调试器(Using the Onboard PSoC 5LP Programmer and Debugger)

PSoC 5LP功能

具体说明如下:

PSoC 5LP与PSoC4的连接关系

对于Cortex-M0来讲因为flash和ram空间较小,无法实现rtos操作系统的运行,因此,我们选择使用开发板上的PSoC 5LP来运行FreeRTOS,如下节所示。


3:操作系统的开发与编译

首先需要我们下载FreeRTOS,其中FreeRTOS最新版本7.5.3已经支持PSoC5的移植和匹配。下载地址如下:

www.freertos.org

03-FreeRTOS网址

其中FreeRTOS软件包在

http://sourceforge.net/projects/freertos/files/

下载FreeRTOS-7.6.0并解压到某个硬盘目录下,如e:\workshop\下面


下面启动Creator

01-启动creator.JPG

打开FreeRTOS的PSoC 5的操作系统demo工程

E:\workshop\FreeRTOSV7.6.0\FreeRTOS\Demo\CORTEX_CY8C5588_PSoC_Creator_GCC\FreeRTOS_Demo Workspace.cywrk

我们看到了FreeRTOS工程中PSoC 5LP的内部逻辑连接关系:

PSoC 5LP内部逻辑设计.JPG

我们需要选择开发板上对应的芯片打开工程中的cydwr的系统设置如下图:

芯片选择

选择开发板对应的芯片型号

PSoC 5LP型号选择

然后编译工程及操作系统:

操作系统编译

最后是对PSoC 5LP的外部引脚资源进行合理配置,使其能够在操作系统运行中通过LED指示灯,指示操作系统的运行;

外部资源配置

最后操作系统开发就完成了。

下面讲解一下,FreeRTOS的功能组织结构:

软件工程组织.JPG


5:相关代码和工程

操作系统实现及Creator下的工程文件

FreeRTOSV7.5.3.zip


讲解结束,谢谢各位观赏



高工
2013-11-21 20:23:58     打赏
5楼
没有个项目的详细介绍?

菜鸟
2013-11-21 20:24:53     打赏
6楼
正在写。刚上来,先别急!

专家
2013-11-21 21:28:58     打赏
7楼
楼主    图片能重新上传不   带上EEPW的logo该多好

菜鸟
2013-11-22 16:01:13     打赏
8楼
正在整理其它工程资料,来不及重新上传了,不影响大家观看,希望对大家有帮助!谢谢大家!

助工
2013-11-26 22:03:36     打赏
9楼
上传也要把EEWORD的logo去掉把,复制过来大家都会,还不如直接给个网址自己看,自己操作一遍那才好,验证一遍也好。

专家
2013-11-26 22:57:14     打赏
10楼
这个可能是楼主在其他地方发的呢             但最好是不带其他网站的logo图片

共13条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]