当前位置: 首页 > news >正文

CY8C42(1.PSoC4 Pioneer Kit开箱及基本使用)

1.开箱

最近了解到赛普拉斯有一种芯片,属于PSoC系列,与传统MCU不同,有点类似跨界芯片,于是就买来玩玩了,老实说用完还是很特别的,因为我没有用过FPGA,不确定是不是FPGA的开发流程(有玩过FPGA的老哥可以说说)

那么为啥选择这一块板子呢?

首先是CY8C42有可编程模拟和数字模块,这是用这个芯片最核心的地方

还有就是好买啊,我在咸鱼上100能拿到手

这是实际的样子,还不错,挺新的

如果大家想看看PSOC4系列其他芯片的特点可以去这个网站,介绍的比较齐全

Cypress PSoC® 4微控制器芯片方案 - 产品亮点 - DigiKey得捷电子

2.安装IDE与创建工程

首先我们要去下载官方的软件Psoc creator,链接在下面

PSoC™ Creator - Infineon Technologies

然后就是下载安装一条龙,没啥好说的

然后我们找到软件双击打开

进到主界面后点击生成一个工程

在跳出来的窗口中选择连接的芯片,选择Psoc4再最后一个对话框中我们可以看到有非常多的4200系列,当选择一个芯片后我们可以在对话框的最上端看到芯片,我这里是4245芯片,大家看到合适的就行。

点击next后在下一个对话框里选择empty schematic

然后填入工工作区名称,路径,工程名称,之后点击finish

当我们进入到一个类似于空白的原理图就表示我们工程创建成功了,我这里是因为把周边的框都折叠起来了,所以比较空,第一次周边应该都是各种框。

3.导入官方例程

依然是创建新工程,并选择芯片

选择code example

然后就是官方的例程了,我们可以在filter输入我们要找的内容

比如最简单的led

点击next,这是你要导入的路径

点击finish,可以看到例程导入成功了

4.环境介绍

在开始前我们首先要对整个工程进行编译,在对话框的左上角可以找到

这是没有编译前的工程

这是编译后的工程

可以明显看到多出了非常多的东西,这些是我们使用芯片必不可少的东西,关于这些文件的用法,一会我来具体介绍

下图我所框出来的东西都是和硬件相关的,Psoc的使用并非完全由程序控制,反而是由硬件导向的,我们在写程序前必须要先配置相关硬件,再由IDE根据我们配置的硬件创建相关程序文件,我们的程序文件只是用来控制硬件何时开启的,这一点与传统的MCU非常不同

5.初始化

5.1管脚配置

首先我们先配置管脚,双击TopDesign(下面称为原理图)

然后我们在右侧器件对话框里搜索pin,因为我们是led输出,因此这里找到数字输出管脚

点击并拖拽到原理图空白位置

之后我们双击管脚进行配置

我们对管脚进行修改,修改名称,模式设置为上拉模式,并设置额外延展

点击OK,我们可以看到管脚修改成功了

然后我们找到左侧pins,双击进入

可以看到我们刚刚创建的管脚

但是此时还没有关联到实际的管脚,我们要映射到物理的管脚上

在开发板上,板载了一个RGB灯,原理图如下

这里我以P1.6介绍了,也就是红灯

我们在ide的右侧点击port,并选择P1.6

可以看到管脚已经映射上去了

我们重新回到原理图界面,可以看到,管脚已经改为1.6

5.2PWM模块

下一步我们PWM模块

在元器件框里搜索PWM

拖入原理图中

双击pwm模块来进行设置

我们先可以设置名称

然后我们对对PWM进行设置

点击PWM页面,进入下图界面

我们需要对下图的这些参数进行设置

此处的2000表示增加到2000就复位,1000就是PWM值,那么占空比也就是50%

点击OK完成设置

5.3时钟

我们的PWM需要时钟源,因此找到clock

拖到原理图上

双击clock设置频率

点击OK完成设置

5.4中断

在对话框中搜索interrupt,找中断

拖到原理图中

双击中断进行设置,我们只需要设置名称

原理图中也同步过来了

5.5连接原理图

连接线在左侧

按照下图连接

6.程序

在开始前我们要先编译一些工程,并生成对应的文件,这些根据我们刚刚设置的模块创建的,也是我们一会写程序根据。

双击左侧main.c打开程序

首先是添加头文件,比如这里我们模块的名称是pwm

假如我们在原理中将模块重新改名为AA,可以看到PWM消失了,取而代之的是AA,如果这时添加PWM头文件就会报错

下面我们将各类头文件添加进去

下面我们就可以开始写程序了

这里并没有什么固定的函数,因为所有函数都是根据你的硬件原理图而做出来的函数,大家在复杂项目里肯定不一样!!

我们看初始化,这一句是初始化中断

这个函数原型在PWM中断文件里(我这里是PWM_TC)

参数则是根据你写的来,保证这里一样就行,初始化的参数是根据中断服务函数来的,中断服务函数我一会介绍

然后是开启PWM

这个函数在PWM文件里(我这里是PWM.c)

最后我们来看中断服务函数,函数名是固定的,这是系统决定的(类似STM32)然后参数就是给初始化用的

之后就是清空PWM中断,在PWM文件里

这个函数的参数是固定的,是系统决定,无论你用什么都一样

 7.编译与下载

编译的时候我们总是能看到是编译其他工程

我们选择我们主要编译的工程,选择第一个工程,set it active,可以看到需要的工程加粗了

此时编译的就是我们要的工程了

编译完成后我们可以下载和仿真了

8.效果

程序

#include "project.h"
#include "PWM.h"
#include "RGB_R.h"
#include "PWM_TC.h"CY_ISR(TC_ISR_Handler)
{/* Interrupt is cleared */ PWM_ClearInterrupt(PWM_INTR_MASK_TC);
}int main(void)
{/* Enable global interrupts. */CyGlobalIntEnable; /* Enable interrupt component and set up handler */PWM_TC_StartEx(TC_ISR_Handler);/* Start the PWM Component */PWM_Start();while(1){}
}
/* [] END OF FILE */

原理图

实物

可以看到红灯按照既定程序闪烁了

9.小结

官方对于程序也给出了对应的教程,我们导入对应的工程后也能出现对应的PDF

这就是官方给出的教程

总的来说Psoc的开发与传统的MCU开发完全不是一个思路,可以说非常独特,强调的核心并非程序而是硬件,感觉非常类似FPGA了(吗?)我在网上完全搜不到这类的教程,后续我再看看可编程模拟与数字模块,来看看有何独特的。

相关文章:

  • MATLAB读取txt文本数据及可视化指南
  • WiFi模块引领智能家居革命:连接未来的生活
  • python笔记_键盘输入
  • Python爬虫实战:从API获取数据
  • SQL 语句创建数据库
  • 【SadTalker】源码部署搭建HTTP服务
  • Oracle 数据泵 导入导出 最简说明
  • 仿真科普|CAE技术赋能无人机 低空经济蓄势起飞
  • RubyMine 2023:让Ruby编程变得更简单 mac/win版
  • pyuic生成py文件到指定文件夹
  • 一文讲清DTO、BO、PO、VO
  • 自动化构建平台(一)Linux下搭建私有代码仓库Gitblit的安装和使用详解
  • 蓝桥杯算法 一.
  • IDEA基础——Maven配置tomcat
  • 如何提高国有旅游企业的管理效能
  • __proto__ 和 prototype的关系
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • CSS实用技巧干货
  • ES6 ...操作符
  • JavaScript设计模式与开发实践系列之策略模式
  • JavaScript学习总结——原型
  • k8s 面向应用开发者的基础命令
  • k8s如何管理Pod
  • mysql外键的使用
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • VuePress 静态网站生成
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 第二十章:异步和文件I/O.(二十三)
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • # Apache SeaTunnel 究竟是什么?
  • (1)常见O(n^2)排序算法解析
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (2)MFC+openGL单文档框架glFrame
  • (BFS)hdoj2377-Bus Pass
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (二十三)Flask之高频面试点
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (十一)图像的罗伯特梯度锐化
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)linux文件内容查看
  • (四)鸿鹄云架构一服务注册中心
  • (一)Dubbo快速入门、介绍、使用
  • (原)本想说脏话,奈何已放下
  • (转)iOS字体
  • .NET MVC之AOP
  • .NetCore 如何动态路由
  • .net分布式压力测试工具(Beetle.DT)