PSoC开发流程和一般MCU开发流程有什么区别?
mouserBlog 2021-01-26

低调的华丽——PSoC 6 BLE Pioneer Kit 评测系列之二 


前 言

老子有云:大音希声,大象无形。低调而不失张扬,这是笔者初见PSoC 6 BLE Pioneer 时的感受。

虽然早已在媒体介绍上见过PSoC 6 BLE Pioneer的宣传照片,但是第一次看到PSoC 6 BLE Pioneer摆在面前,还是小小的惊喜了一下。PSoC 6 BLE Pioneer无论在设计还是包装,到软件开发等方面,都为我们带来了更好的体验!

PSoC是Cypress推出的可编程片上系统,2002年推出第一款商用产品PSoC 1,十几年来不断推陈出新,今天的PSoC 6系列,可谓是PSoC产品的集大成者。硬件内核也从最初的M8C演变到了今天的ARM Cortex-M4,PSoC 63则使用了双核,即包含ARM Cortex-M4及ARM Cortex-M0 。PSoC 6 BLE Pioneer套件还为我们带来了CapSense电容触控和最新的BLE 5及USB Type-C的全新体验,加上一块2.7吋的墨水屏,配合PSoC 6的业内最低功耗特性,配置不可谓不华丽。

先简单科普下PSoC。PSoC的全称是Programmable System-on-Chip,即可编程片上系统或可编程片上芯片。PSoC一般由内核、可配置的模拟及数字模块以及可编程的互联线路组成。与FPGA相比,二者都需要在上电时对设备进行配置,不同的是PSoC通过从内置闪存中加载指令来进行配置。可配置模块是PSoC与其它微控制器最大的区别。

开箱

“”

与PSoC 4 Pioneer Kit不同的是,PSoC 6 BLE Pioneer套件中还配备了墨水屏,所以体积也大了许多,看上去倒像是个手机盒子。

PSoC 6 BLE Pioneer的目标很明确,面向IoT应用,主打低功耗、灵活配置及内置安全功能,不过以文无第一,武无第二的角度来看,Cypress此次显得非常自信,宣称是自己是最低功耗的领导者。

“”

打开包装盒,拿开上层的快速用户指南,第一眼看到的就是PSoC 6 BLE Pioneer开发板,墨水屏上显示的是Cypress的LOGO及套件名称,嗯,墨水屏不用上电也能显示,狠好!

“”

这是套件的全家福。包括开发板一块(含墨水屏),USB Type-C 数据线一根,最下面的是蓝牙Dongle,可以用在PC上调试 BLE功能。其实还有几根跳线,忘记取出来了。说实话,要是还能配备一块锂电池就更好了,啥,想多了?

“”

USB Type-C 数据线,直接连接 PC 端的 USB 取电,看到用料还是很扎实的。

“”

开发板正面图,与PSoC 4不同,开发板没有使用红色油墨,使用的是蓝色,少了一份奔放,给人一种恬静的感觉。

开发板详解

开发板主要特性如下:

  • 主控使用PSoC 6,支持BLE(Bluetooth 5.0)

  • Arduino UNO R3兼容接口

  • 板载512Mbit QSPI Flash存储器

  • KitProg2编程器

  • EZ-PD CCG3 USB Type-C供电接口;支持锂电池供电的接口

  • 电容式触摸滑动及按键

  • 两个用户LED,一个RGB LED,一个用户按钮,一个复位按钮

PSoC 63 with BLE芯片使用的是双核架构,框图如下:

“”

对于IoT设备来说,电池使用寿命是个很关键的要素。PSoC 6使用40nm芯片工艺技术制造,提供了超低功耗特性,板载两个内核(Cortex-M4和Cortex-M0 ),Cortex-M4提供了高性能,Cortex-M0 则提供了低功耗支持。

元器件名称及位置如下:

“”
“”

开发板背面图,最中间有个跳线,取下后可以用来测试系统功耗。该设计与STM32的大多数开发板类似,很贴心的一个小设计。另外注意到背面有几个拨码开关,用来对硬件配置进行微调。

“”

2.7吋墨水屏,分辨率为264x176,墨水屏在断电后仍能保持显示的内容。墨水屏模块上还包含一个热敏电阻,用来测量温度。模块上的6轴传感器提供3轴加速度及3轴陀螺仪功能,PDM则用来提供语音输入。

墨水屏可以接受1.8~5V输入电压,转换后输出3.3V电压供墨水屏使用。

“”

墨水屏使用Arduino UNO R3兼容接口,因此也能在其它提供了Arduino兼容接口的开发板上使用。墨水屏通过SPI接口与PSoC进行通信。

开发板多角度赏析

“”
“”
“”

安装PSoC Creator软件

除了硬件升级,PSoC Creator也升级到了4.2版本。接下来准备安装PSoC Creator软件。

PSoC Creator运行需要.net 3.5的支持,在Windows 10上,默认没有安装.net 3.5运行时环境,在安装过程中弹出如下信息:

“”

这本来也不算什么大事,然而坑爹的是,Windows 10 1709版本不能在线安装.net 3.5,只能使用命令行方式从安装盘来进行安装,如下:

“”

安装好.net 3.5之后,终于可以开始安装PSoC Creator 4.2了,截止本文写作时,该软件还是Beta版本,不过使用过程中暂时没发现什么问题。点击next,执行下一步:

“”
“”

软件安装过程中还会提示安装Micro Visual C 2013 运行时环境,从提示的位置下载并安装C 运行时环境后,安装过程继续。

“”

这里选择安装类型,默认Typical,点击Next继续。

“”

等待软件组件安装完成,接下来提示用户注册。

“”

注册完成后,启动软件,界面如下:

“”

使用PSoC Creator进行开发

与MCU开发流程不同的是,PSoC的开发流程先要选择并配置组件,然后生成应用程序,在生成的应用程序内添加相应的程序逻辑,下面以一个点灯程序来介绍如何使用PSoC Creator来进行开发。

首先启动PSoC Creator集成开发环境,在Start Page页面点击Create New Project…,弹出如下对话框:

“”

可以根据开发板类型、开发板模块或开发板设备来进行工程的创建,这里先选择第三个Target device,在右边的类型里选PSoC 6,具体的设备型号选择PSoC 63,由于目前PSoC 63系列还只有一个型号CY8C6347BZI-BLD53,如上图所示,点击next。

“”

这里选择工程模板,这里选择从空白原理图模板,点击next。

“”

这里选择目标IDE,比如是使用IAR或使用makefile来进行编译,咱们直接使用PSoC Creator,所以默认都不选择,直接next进入下一步。

“”

这里选择创建工程的一些选项,如工作区名称、位置及工程名称。工作区用来组织工程,一个工作区可以包含多个工程文件,这个概念和Visual Studio中的概念类似。这里创建一个名为PSoC 6的工作区,创建一个名为led的工程文件。工程文件是组织PSoC程序资源的一个容器。

点击Finish就完成了工程文件的创建。

配置组件并生成应用程序

PSoC Creator默认工作界面如下:

“”

左边是工作区及工程管理窗口,右边是组件选择窗口,中间是原理图编辑区域,由于前面我们选择的是空白原理图,所以现在这里是空的。

接下来在右边的组件选择区选择两个组件,如下:

“”

拖放一个UART(SCB)组件到原理图区,再拖放一个Digital Output Pin组件放入到原理图区,如下:

“”

如果原理图区的图标太小,可以按住Ctrl再框选一个包含住所有组件的区域,编辑器会自动绽放原理图区选定的内容。

接下来就是配置组件,在UART组件上双击,弹出配置对话框,如下:

“”

这里设置UART串口的参数,如波特率,双工模式,数据位等信息。注意设置对话框中还会显示UART实际工作的波特率。

同样双击GPIO组件,弹出的对话框中设置如下:

“”

将名称改为LED_GREEN,勾选External terminal,用于指明连接外部设备,其它参数保持默认即可。

除了在原理图上添加实际的组件 ,也可以使用Off-Chip设备,这些设备类似代码中的注释,供用户理解原理图的实际连接情况。在右边的组件窗口中,切换到Off-Chip选项卡,添加如下设备:

“”

图中蓝色部分是Off-Chip组件,仅供参考,不做实际用途。

组件放置完毕,接下来要配置组件的引脚,即连接到哪个GPIO Pin。

在左侧的工程管理窗口中双击Pins,打开引脚配置编辑窗口,设置如下:

“”

当然这些设置是要参考硬件原理图的,例如LED的参考原理图如下:

“”

这里的G连接到P1_1,也就是绿色LED连接到商品P1_1。

检查一下,如果没有问题,就可以生成应用程序了。

生成应用程序

所谓的生成应用程序,实际上是根据用户对PSoC的配置,生成相应的C程序代码,这些代码主要是初始化硬件,设置硬件参数,同时根据用户对组件的命名生成对应的组件变量。

“”

工具栏上右边的三个工具按钮从左至右依次是生成应用程序、烧写应用程序及调试应用程序。点击生成应用程序按钮,PSoC Creator会根据用户配置生成对应的中间源代码文件。

不过在生成代码的时候出错了,错误信息如下:

“”

意思是说GPIO端口没有输入,所以要修改原来的配置,即去掉HW Connection这个选项。

“”

再次生成应用程序,就没有问题了。

接下来开始构建程序逻辑,例如打开UART通信功能。由于开发板上包含两个MCU,要决定该功能放到哪个MCU里执行,这里随便选择一个都没有关系。

打开CM4相关的代码文件main_cm4.c文件,在main()函数里添加如下代码:

“”

Cy_GPIO_Write()函数控制GPIO端口电平的高低,UART_1_PutString()输出信息到串口,CyDelay()函数做简单的延时处理。

其它一些符号如LED_GREEN_0_PORT等都是前面用户在配置组件时指定的值,可以参考对应的文件,如下:

“”

编译并将代码下载到开发板,可以看到RGB三色LED中的绿灯开始愉快的闪烁,此时打开串口通信软件,也可以看到有信息输出。

“”

这样,咱们的第一个Hello world程序就算完成了。

PSoC的开发流程和一般的MCU开发流程有什么区别呢?

简单的来说,在PSoC开发过程中,首先确定你需要什么功能,然后添加并配置相关的组件,然后PSoC Creator根据PDL生成相关的代码,这些都是基础工作,倒是与ST CUBEMX有点类似。最后的程序业务逻辑,还需要用户自行编写,这一点也与ST CUBEMX类似。

在这一节里,我们了解了PSoC 6 BLE Pioneer的主要特性,该开发套件主要帮助用户学习及了解如何使用PSoC 6系列产品来构建IoT产品,充分利用PSoC 6系列提供的最低功耗特性、灵活的配置方式及内置的安全特性。考虑到PSoC Creator 4.2与以前的版本变化比较大,故花了不少的篇幅详细介绍如何在新版软件里,结合PSoC 6来实现一个完整的Hello World工程。

相关阅读:

本文转载自:
转载地址:
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编邮箱: 进行处理。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 基于C51单片机实现汽车座椅自动控制系统的软硬件设计

    引言 随着人们生活水平的提高,对汽车座椅的舒适性要求也越来越高,要求对汽车座椅地调节能够更加简单、方便、快捷。目前,汽车座椅位置的调节多采用基于手动调节方式的机械和电动控制两种方式。汽车座椅位置的调节...

    前天
  • MCS51单片机程序设计时堆栈的计算方法解析

    用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己...

    前天
  • 51单片机定时器工作原理及用法

    TMOD : 控制定时器的工作方式。8个bit,高四位 bit 控制 T1,、低四位 bit 控制 T0。因为定时器有4种工作方式;TMOD = 0x00(工作方式0),TMOD = 0x01(工作方式0),TMOD = 0x02(工作方式2),TMOD = 0x03(工作方式3)。...

    前天
  • 51单片机学习单片机之路总结

    学习单片机有一学期了,现在也由51转到STM32了。一直想对51的学习做一个总结。也希望对别人有一些启发。也给后学者提供一些建议。当然本文是我对自己学习过程的总结,若有不对的地方,还请高手指出。 我想,再看本...

    前天
  • hot51增强型单片机开发板原理图

    功能要求: 一):绿灯25s倒计时,绿灯过度红灯有5s黄灯时间,红灯25s后直接跳绿灯。 二):按键按下模拟闯红灯输入,产生5s蜂鸣器鸣叫。 开发环境: 软件:Keil uVision4 硬件:HOT51增强型单片机开发板 程序代码:...

    07-01
  • 51单片机的延时子程序

    延时程序在单片机编程中使用非常广泛,但一些读者在学习中不知道延时程序怎么编程,不知道机器周期和指令周期的区别,不知道延时程序指令的用法, ,本文就此问题从延时程序的基本概念、机器周期和指令周期的区别和联系...

    07-01
  • 什么是Flash盘?Flash盘的结构是什么样的?

    Flash是大家常使用的存储之一,对于Flash,大家或多或少有所了解。上篇文章中,小编对Flash闪存的类型有所介绍。为继续增进大家对Flash的认识,本文将对Flash盘、Flash盘结构以及Flash读写操作予以介绍。如果你对本...

    07-01
  • 深谈嵌入式系统,嵌入式系统是如何组成的?

    嵌入式系统在生活中有诸多应用,大家对于嵌入式系统或多或少有所耳闻。在前两篇文章中,小编对嵌入式系统进行过详细介绍。为继续增进大家对嵌入式系统的认识,本文将对嵌入式系统的组成加以说明。如果你对嵌入式系...

    06-27
  • 嵌入式系统秘籍共享,最全嵌入式系统解析

    嵌入式系统的应用十分广泛,因此越来越多的人学习嵌入式系统。由此,在学习嵌入式系统之前,我们应当对嵌入式系统具备一些认识。所以在本文余下部分,小编将对嵌入式系统进行全面解析。如果你对嵌入式系统具有兴趣...

    06-27
  • 51单片机超声波测距程序详解

    51单片机超声波测距程序详解 超声波四通道测距:超声波测距实现分为三大块: 其一是12864带字库的液晶驱动程序: 代码如下: /////////////////12864驱动程序/////////////////////////// //1写数据 void WriteDat...

    06-25
  • 51系列单片机的引脚图

    51系列单片机的引脚图 端子介绍 l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8...

    06-25
  • 51单片机串口通信需要加超时中断吗?

    接收数据时,超过一定时间就算出错. 这个超时的时间是单片机自己算出的吗?超时的时间是由编程序的人定的,他定多长就多长从一段程序开始 实现电脑向 单片机发送一些数据,单片机返回Iget +数据 #include #define u...

    06-25
下载排行榜
更多
评测报告
更多
广告