
【英飞凌PSoC 6 RTT开发板试用】使用软件和硬件I2C点亮OLED屏,帧率从2FPS提升到51FPS
本文将会分别介绍——使用软件I2C和硬件I2C在PSoC开发板上点亮OLED屏,并进行屏幕刷新率对比测试,最后还会在硬件I2C的基础上继续优化屏幕刷新率。本文实验使用的OLED屏尺寸为0.96寸,分辨率为128x64,驱动芯片为SSD1306。本文使用的开发环境为RT-ThreadStudio,设备上运行的是RT-Thread实时系统。本文主旨在于,介绍如何在PSoC开发板上使用软件I2C和硬件硬件I2C驱动外设,以及对于屏幕刷新率优化的一些思路。
一、准备工作开始之前,需要准备实验所需的硬件和软件,接下来分别介绍。
1.1 硬件准备本次实验需要用到的硬件有:
(相关资料图)
本次实验需要使用的软件主要为:
RT-Thread StudioMobaXterm(其他串口调试工具也可以)假设你已经成功在电脑上安装了以上这些软件。
1.3 硬件连接硬件连接分为两部分,一部分是PC和开发板,通过USB Type-C线连接;这个没啥难度,不做过多介绍;需要注意的是,开发板一端接DAP口;否则无法正常下载程序。
另外一部分是,开发板和OLED屏幕之间的连接,具体如下表所示:
OLED屏引脚 | 开发板引脚 |
---|---|
SDA | SDA |
SCL | SCL |
GND | GND |
VCC | 3V3 |
开发板和OLED屏幕之间的硬件连接,如下图所示:
二、原理分析这么连接之后,如果主控芯片使用软件I2C驱动OLED屏,那么什么限制,对应管脚只需要使用GPIO模拟I2C时序即可。如果想要让主控芯片使用硬件I2C驱动OLED屏,则需要检查一下主控芯片对应引脚可以设置为硬件I2C功能,接下来即为检查的过程。
2.1 开发板原理图首先,检查开发板原理图的Arduino接口部分:
这里只能看到标号,看不到主控芯片的引脚名称。
所以,还需要继续搜索这两个引脚的标号,找到主控芯片对应的引脚标号:
对照这两处可以知道——Arduino接口I2C引脚和主控芯片直接的连接关系为:
SCL:P8.0SDA:P8.12.2 芯片数据手册《PSoC 6 MCU: CY8C62x8, CY8C62xA Datasheet》文档的 Pinouts 章节,Table 8. Multiple Alternate Functions引脚功能服用表,可以查到P8.0和P8.1的功能有:
可以看到,有scb[4].i2c_scl和scb[4].i2c_sda功能。
也就是说,P8.0和P8.1可以设置为硬件I2C功能。
三、软件I2C驱动OLED接下来,将使用RT-Thread Studio创建项目,并通过添加软件包和修改配置的方式,实现使用软件I2C驱动OLED屏幕。
3.1 创建RT-Thread项目在RT-Thread Studio中,打开“文件”→“新建”→”RT-Thread项目”菜单,如下图所示:
在弹出的创建项目界面中,Project name中填入psoc6_oled,选中基于开发板的项目,如下图所示:
点击“完成”,即可创建名为psoc6_oled的项目。
3.2 添加ssd1306软件包创建项目后,双击项目资源管理器视图中,项目下方的“RT-Thread Settings”,主编辑区如下图所示:
点击其中的“添加软件包”,弹出的软件包搜索界面,如下图所示:
按照图中标注的操作顺序,即可将ssd1306软件包添加到当前项目。
添加完成后,主编辑区如下图所示:
此时,按Ctrl+S快捷键,保存对项目配置的修改。如果网络通常,则会在控制台窗口中看到ssd1306软件包正常下载的日志:
这样,ssd1306软件包就成功添加到项目中了,位于packages子目录下:
3.3 配置软件I2C和ssd1306软件包接下来,在RT-Thread Studio主编辑器,点击详细配置按钮,按钮位置如下图所示:
主编辑器将会显示详细配置:
切换到“硬件”标签页,找到“Enable Software I2C”选项,并打开该选项,如下图所示:
接着,打开“使能I2C1 BUS”,并将scl和sda中分别改为64和65,如下图所示:
然后,在搜索框输入ssd1306,弹出悬浮菜单后,单击该悬浮菜单,如下图所示:
勾选“Enable debug log output”和“Enable ssd1306 sample”,如下图所示:
最后,按Ctrl+S保存对所有配置项的修改。
3.4 编译和下载程序首先,点击工具栏的锤子图标
审核编辑:汤梓红
标签:
互联网


【Start_DSC28034PNT湖人开发板免费体验】+开发板的下载问题
