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

2024-02-29 21:52

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

这篇关于CY8C42(1.PSoC4 Pioneer Kit开箱及基本使用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/760219

相关文章

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

python 常见数学公式函数使用详解(最新推荐)

《python常见数学公式函数使用详解(最新推荐)》文章介绍了Python的数学计算工具,涵盖内置函数、math/cmath标准库及numpy/scipy/sympy第三方库,支持从基础算术到复杂数... 目录python 数学公式与函数大全1. 基本数学运算1.1 算术运算1.2 分数与小数2. 数学函数

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,