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

news2024/11/16 13:28:00

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.coloradmin.cn/o/1479766.html

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

相关文章

Spring 学习记录

Spring 学习记录 1. Spring和SpringFrameWork1.1 广义的Spring2.1 狭义的Spring2.3 SpringFrameWork / Spring框架图 2. Spring IOC容器(即上图中的Core Container)2.1 相关概念 (IOC DI 容器 组件)2.2 Spring IOC容器的作用2.3 Spring IOC容器接口和具体实现类 3. Spring IOC …

p18 线性代数,行阶梯型矩阵

行阶梯型矩阵 行最简型矩阵

Docker实战——网络通信

目录 一、Docker 容器网络通信的基本原理1、查看 Docker 容器网络(1)新建一个 Dockerfile文件,内容如下:(2)使用以下命令创建镜像(3)基于 debian 的镜像创建一个容器,并进…

QML中表格中数据获取

1.在生成的动态表格中获取某格数据的内容 import QtQuick 2.15 import QtQuick.Window 2.15import QtQuick.Controls 2.0 import Qt.labs.qmlmodels 1.0 import QtQuick.Layouts 1.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")TableMod…

基于SpringBoot和MyBatisPlus实现的代码插件

1. 为什么自己开发插件 目前市面上基于Mybatis或MybatisPlus的代码生成器或插件有很多,本人前几年也开发了一款:基于SpringBoot微服务代码自动生成插件。之前的开发的这款插件底层使用的持久层框架是通用Mapper,不是现在主流的MyBatisPlus&am…

【探索AI】十二 深度学习之第2周:深度神经网络(一)深度神经网络的结构与设计

第2周:深度神经网络 将从以下几个部分开始学习,第1周的概述有需要详细讲解的的同学自行百度; 深度神经网络的结构与设计 深度学习的参数初始化策略 过拟合与正则化技术 批标准化与Dropout 实践:使用深度学习框架构建简单的深度神…

奇安信发布《2024人工智能安全报告》,AI深度伪造欺诈激增30倍

2024年2月29日,奇安信集团对外发布《2024人工智能安全报告》(以下简称《报告》)。《报告》认为,人工智能技术的恶意使用将快速增长,在政治安全、网络安全、物理安全和军事安全等方面构成严重威胁。 《报告》揭示了基于…

为什么电池对eVTOL来说是一个问题

Electric Power Systems首席技术官Michael Armstrong表示,电动垂直起降(eVTOL)飞机面临着独特的电池挑战,这将要求开发人员改变他们对电池系统和电动汽车设计的看法。 阿姆斯特朗说:“如果我们研究先进空中交通、第23部…

iPhone上备忘录分享到微信 苹果手机备忘录微信分享

在繁忙的生活中,iPhone的备忘录功能一直是我记录琐事、灵感和待办事项的得力助手。然而,每当我精心编辑好一段内容,想要将其分享给微信好友或发到朋友圈时,却常常遭遇分享难题。那种无法将精彩瞬间轻松分享给朋友的无奈&#xff0…

易货模式微信小程序的可行性分析

随着移动互联网技术的快速发展,微信小程序作为一种轻量级的应用形态,已经成为众多创业者和服务提供者关注的焦点。微信小程序以其便捷的使用体验、较低的开发成本和广泛的用户基础,成为了各类业务模式的创新平台。在这样的背景下,…

如何将java程序打包成可执行文件

问题提出 当你写了一个很炫酷的java小游戏,你迫不及待想给朋友分享。然而,你发给朋友之后,他却表示无法执行。因为我们无法保证其他人的电脑上已经安装了java运行环境。 所以,我们有哪些方法把我们的炫酷代码分享给朋友呢&#…

基于SSM SpringBoot vue服装物流管理系统

基于SSM SpringBoot vue服装物流管理系统 系统功能 首页 图片轮播 人个中心 登录注册 后台管理: 登录注册 个人中心 货物信息管理 货物入库管理 订单信息管理 商品出库管理 快递追踪管理 用户管理 供应商信息管理 盘点信息管理 管理员管理 开发环境和技术 开发语言&#xf…

纯css实现-让字符串在文字少时显示为居中对齐,而在文字多时显示为左对齐

纯css实现-让字符串在文字少时显示为居中对齐,而在文字多时显示为左对齐 使用flex实现 思路 容器样式(.container): Flex容器的BFC性质使得其内部的子元素(.text-box)在水平方向上能够居中,通过justify-c…

Python web框架fastapi数据库操作ORM(一)

文章目录 Fastapi ORM操作1、创建模型2、创建数据库连接配置文件3、启动项目4、根据模型类创建数据库表1. 初始化配置,只需要使用一次2. 初始化数据库,一般情况下只用一次3. 更新模型并进行迁移4. 重新执行迁移,写入数据库5. 回到上一个版本6…

RFID射频识别技术的优势

目前RFID在金融支付、物流、零售、制造业、医疗、身份识别、防伪、资产管理、交通、食品、动物识别、汽车、等行业都已经实现不同程度的商业化使用。未来,RFID技术有不可替代的六大优势,也保证了物联网的万物互联的有序发展! 1、无需可视,在无…

第零章_计算机导论

0.1 计算机:辅助人脑的好工具 所谓的计算机就是一种计算器,而计算器其实是:『接受用户输入指令与数据,经由中央处理器的数学与逻辑单元运算处理后,以产生或储存成有用的信息』。因此,只要有输入设备(不管是键盘还是触摸…

【软考高项】【计算专题】- 5 - 进度类 - 横道图/甘特图

一、知识点 1、基本定义 甘特图(Gantt chart )又称为横道图、条状图(Bar chart),通过条状图来显示项目各活动的进 度情况。以提出者亨利劳伦斯甘特( Henry Laurence Gantt)先生的名字命名。 目前许多文档工具都可以画甘特图。 (1)我的举例 …

PSO-CNN-LSTM多输入回归预测|粒子群算法优化的卷积-长短期神经网络回归预测(Matlab)——附代码数据

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序数据分享下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台…

javaWeb个人学习04

AOP核心概念: 连接点: JoinPoint, 可以被AOP控制的方法 通知: Advice 指哪些重复的逻辑,也就是共性功能(最终体现为一个方法) 切入点: PointCut, 匹配连接点的条件,通知仅会在切入点方法执行时被应用 目标对象: Target, 通知所应用的对象 通知类…

内网穿透 nas/树莓派+ipv4服务器 (ipv6)

nas 1.有个服务器 2.有个nas https://github.com/snail007/goproxy/blob/master/README_ZH.md https://github.com/snail007/proxy_admin_free/blob/master/README_ZH.md 2个官网一个是程序,一个是网站 手册 https://snail007.host900.com/goproxy/manual/zh/#/?i…