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了(吗?)我在网上完全搜不到这类的教程,后续我再看看可编程模拟与数字模块,来看看有何独特的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/719495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL的事务与隔离级别

1. 什么是事务? 数据库中的事务是指对数据库执行一批操作,而这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。这个时候就需要用到事务。 最经典的例子就是转账,你要给朋友小白转 1000 块钱&…

一代传奇宗庆后:把员工宠成上帝

作者:积溪 琥珀酒研社快评: 梅子真是哭了 一代传奇就此陨落 咱们又少了一个良心企业家 2月25日10时30分 娃哈哈集团创始人、董事长宗庆后 在杭州逝世,享年79岁 在过去一个多月的病危期间 他的病房里最显眼的 不是呼吸机、检测仪 而…

智慧城市中的公共服务创新:让城市生活更便捷

目录 一、引言 二、智慧城市公共服务创新的实践 1、智慧交通系统 2、智慧医疗服务 3、智慧教育系统 4、智慧能源管理 三、智慧城市公共服务创新的挑战 四、智慧城市公共服务创新的前景 五、结论 一、引言 随着信息技术的迅猛发展,智慧城市已成为现代城市发…

技术总结: PPT绘图

目录 写在前面参考文档技巧总结PPT中元素的连接立方体调整厚度调整图形中的文本3D 图片调整渐变中的颜色 写在前面 能绘制好一个好看的示意图非常重要, 在科研和工作中好的示意图能精准表达出自己的想法, 减少沟通的成本, 可视化的呈现也可以加强自身对系统的理解, 时间很久后…

分分钟搞定JSON解析

json 库能够解析字符串或文本中的 JSON 内容。 该库将 JSON 解析为 Python 字典或列表,也能将 Python 字典或列表转换为 JSON 字符串。 解析 JSON 如下的 JSON 格式的字符串: json_string {"first_name": "Guido", "last_na…

瑞芯微RK3588 C++部署Yolov8检测和分割模型

最近这一个月在研究国产瑞芯微板子上部署yolov8的检测和分割模型,踩了很多坑,记录一下部署的过程和遇到的一些问题: 1 环境搭建 需要的环境和代码主要包括: (1)rknn-toolkit2-1.5.2:工具链&am…

微服务day04-基于Feign的远程调用

一.Feign的认识 是http客户端,因为使用RestTemplate存在一些问题:代码可读性差,参数配置费事,不够优雅… String url"http://userservice/user/"order.getUserId(); User userrestTemplate.getForObject(url,User.cla…

初始计算机组成原理

1.初始计算机组成原理 本人相关文章:Linux之计算机概论 声明:大部分图片均来自网络,侵删 一个完整的计算机系统包括硬件子系统和软件子系统两大部分。 组成一台计算机的物理设备的总称叫做计算机硬件子系统,是看得见摸得着的实体,是计算机工…

华工的各类型PPT模板

华工的各类型PPT模板,包括原创的PPT及改良内容的PPT,适合科研/比赛/组会汇报等 前言各种毕业答辩夏令营答辩复试答辩奖学金答辩比赛/项目答辩组会汇报 前言 设计不易,排版不易,内容编排不易 待更新项目1 原创声明:不经…

【论文阅读】(2006)Dual-Optimal Inequalities for Stabilized Column Generation

文章目录 摘要一、介绍二、对偶最优不等式(Dual-Optimal Inequalities)三、确定P的最优原始解四、二元切割下料问题4.1 约束聚合4.2 相等约束4.3 计算结果 五、切割下料问题5.1 计算结果 六、三元组的深度对偶最优不等式(Deep Dual-Optimal I…

C/C++ 乘积尾零问题(蓝桥杯)

如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650,4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 9937 1173 6866 3397 4759 7557 3070 2287 1453 9899…

做测试还是测试开发,选职业要慎重!

【软件测试面试突击班】2024吃透软件测试面试最全八股文攻略教程,一周学完让你面试通过率提高90%!(自动化测试) 突然发现好像挺多人想投测开和测试的,很多人面试的时候也会被问到这几个职位的区别,然后有测…

每日五道java面试题之mysql数据库篇(三)

目录: 第一题. 百万级别或以上的数据如何删除?第二题. 前缀索引第三题. 什么是最左前缀原则?什么是最左匹配原则?第四题. B树和B树的区别第五题. 使用B树和B树好处 第一题. 百万级别或以上的数据如何删除? 关于索引:…

光伏储能MPPT控制系统如何进行浪涌静电保护?

MPPT(Maximum Power Point Tracking)是太阳能电池板光伏发电系统中重要的一种控制技术。MPPT控制器能够实时侦测太阳能板的发电电压,并追踪最高电压电流值(VI),使系统以最大功率输出对蓄电池充电&#xff0…

06 - ip route和route -n的区别

1 ip route和route -n的区别 ip route 和 route -n 都是用于查看和管理Linux系统路由表的命令。但下面是它们的区别: ip route:是Linux系统中的现代工具,它属于iproute2套件;它提供了更多的选项,可以更精确地控制路由表…

使用git的小笔记

平时工作中使用git存储项目代码, 常用的命令 拉取仓库代码 git clone http://100.100.100.100:9080/my_test/test.git 拉取到以后, 先切换到自己的分支 git checkout my_name 一顿魔改代码 然后 add 新增的文件或者修改的文件 git add * 然后提交 并写…

【go从入门到精通】什么是go?为什么要选择go?

go的出生: go语言(或Golang)是Google开发的开源编程语言,诞生于2006年1月2日下午15点4分5秒,于2009年11月开源,2012年发布go稳定版。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持…

拦截大语言模型API调用 无需深究文档源码

背景众多库致力于通过自动重构或创建提示符来优化大语言模型的输出。这些建库宣称能够使大语言模型的输出更加: 安全(例如:安全护栏) 可预测(例如:智能指导) 结构化(例如:指令生成器) 鲁棒(例如:语言链) … 或者针…

如何在 Windows 上安装 ONLYOFFICE 文档 8.0

使用社区版,您可以在本地服务器上安装 ONLYOFFICE 文档,并将在线编辑器与 ONLYOFFICE 协作平台或其他热门系统集成在一起。 ONLYOFFICE 文档是什么 ONLYOFFICE 文档是一个功能强大的文档编辑器,支持处理文本文档、电子表格、演示文稿、可填写…

FPGA时序约束与分析--数据到达路径和数据需求路径

文章目录 前言一、定义二、时序模型三、公式推导前言 时序约束的定义–设计者根据实际的系统功能,通过时序约束的方式提出时序要求; FPGA 编译工具根据设计者的时序要求,进行布局布线;编译完成后, FPGA 编译工具还需要针对布局布线的结果,套用特定的时序模型( FPGA 器件…