测评目的
使用psoc™ 62 with capsense™ evaluation kit开发板适配的rtt spi驱动,做显示测试。
硬件分析
图1 芯片内部系统框图
如图1所示,这个芯片内部的spi是通过scb(serial communications block)实现的。并且,所有的外设都是挂在同一总线上。
图2 系统时钟连接框图
如图2所示,spi(scb)这些常用外设与内核时钟同一来源。
图3 摘自数据手册中对spi的描述
可见常见的motorola和ti标准都是支持的,鉴于本人之前只用过motorolab标准的spi,后面的测试也是使用的这种。
spi的使用
rtt官方已经对这块板子进行了系统与驱动的适配,所以我们可以直接使用rtt的spi驱动设备框架(rtt赛高!)。
使用的开发环境为rt-thread studio ,选择基于开发板创建工程。再是能spi驱动就可以了。
我手上的spi驱动模块只有屏幕和w25q64,屏幕驱动比较简单,所以我选择了这种方式。
使用的模块为1.3寸st7789屏幕
参考后的程序如下
rt_err_t _spi_lcd_init(void)
{
rt_err_t res = rt_eok;
lcd_pin_init();
spi_device_attach(pkg_st_7789_spi_bus_name, pkg_st_7789_spi_device_name, pkg_st_7789_cs_pin);
lcd_dev = (struct rt_spi_device *)rt_device_find(pkg_st_7789_spi_device_name);
if (lcd_dev != rt_null)
{
struct rt_spi_configuration spi_config;
spi_config.data_width = 8;
spi_config.max_hz = 20 * 1000 * 1000;
spi_config.mode = rt_spi_master | rt_spi_mode_0 | rt_spi_msb;
rt_spi_configure(lcd_dev, &spi_config);
}
else
{
res = -rt_error;
}
lcd_init();
return res;
}
init_component_export(_spi_lcd_init);
注册设备操作如下
rt_err_t spi_device_attach(const char *bus_name, const char device_name, rt_base_t cs_pin)
{
rt_assert(bus_name != rt_null);
rt_assert(device_name != rt_null);
rt_err_t result = rt_eok;
struct rt_spi_device spi_device;
/ attach the device to spi bus /
spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device));
rt_assert(spi_device != rt_null);
result=rt_hw_spi_device_attach(bus_name, device_name, cs_pin);
if (rt_eok != result)
{
log_e(%s attach to %s faild, %dn, device_name, bus_name, result);
}
else
{
log_i(%s attach to %s done, device_name, bus_name);
}
return result;
}
使用的引脚和设备名如下
#define pkg_st_7789_spi_bus_name spi0
#define pkg_st_7789_spi_device_name spi01
#define pkg_st_7789_dc_pin get_pin(5, 6)
#define pkg_st_7789_res_pin get_pin(5, 7)
#define pkg_st_7789_blk_pin get_pin(11, 5)
#define pkg_st_7789_cs_pin get_pin(0, 5)
如下显示,注册成功
对刷屏进行简单的时间测试
static int lcd_spi_test(void)
{
uint8_t index = 0;
uint16_t time_tick0=0,time_tick1=0;
for (index = 0; index you need init lcd first);
三星取消附赠充电器耳机被证实
米尔科技MY-TFT043RV2液晶模块概述
Octasic推出Opus2 DSP核心OCT2200系列,有何应用?
工业以太网打造工厂联网基础
如何在树莓派Pico上使用红外线接收模块?
英飞凌开发板模块评测任务大挑战-SPI驱动测试
只付加密货币是一种在怎样的体验
京东方实现五大领域出货量全球第一
数字化制造助力经济重新腾飞
TPS61194-Q1常见问题汇总
WiFi 6已完成应用测试,将在全球部署推广
语音助理搭配人工智能将是不可或缺的环节
工业物联网解决方案:制粒机监控运维系统
实施物联网可能遇到怎样的障碍
中芯国际、华润微公开喊话,半导体市场有望触底,存储器率先反击
如何创建可感知声音的智能门锁
智能变电站如何实现智能化?
如何破解历史行为稀少的用户冷启动问题
微雪电子Arduino 音频播放扩展板简介
苹果营收下跌27%iPhone定价或下调 iPhone9或去掉刘海屏