打印
[活动专区]

【AT-START-WB415测评】SPI使用注意事项及蓝牙MCU部分SDK问题

[复制链接]
888|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 6552918 于 2022-9-16 09:16 编辑

#申请原创# #技术资源# @ArterySW @muyichuan2012

在使用蓝牙SDK例程中MCU部分添加SPI驱动显示屏时发现些需要注意的地方,线和大家分享一下。
首先我们看一下AT32WB415这款芯片SPI的情况,从框图上看,只有1路SPI,外设名称为SPI2


看了下引脚重映射,以为是全功能的,所有引脚的定义都给出了。

但在看管脚定义时发现并不是这样,由于封装限制,只引出了部分管脚,而且不支持I2S,所以这个SPI只能算是个阉割版的。所以在使用SPI时一定要注意一下这个问题


我这使用的LCD屏幕是Nokia5110的屏幕,SPI驱动最高到4M,驱动程序我原来在其他硬件上测试过,只要跟进芯片实际情况,修改配置即可。


接下来我来说一下我移植过程和发现的问题,移植是建立在我之前移植好的RT-Threadnano基础上的
首先使用RT-Thread上的自动初始化功能初始化一个线程和对涉及的GPIO和SPI进行配置

在对涉及的GPIO和SPI进行配置时,驱动程序支持软件模拟SPI和硬件SPI两种方式,选择方式通过nokia_5110.h内的宏定义选择

软件模拟方式涉及IO定义如下

硬件模式驱动涉及的IO配置如下


硬件模式时对SPI进行初始化如下。
这里有2个地方需要注意一下
1个是时钟分频系数,由于我使用的工程,主频是144M,SPI2是挂接在APB1总线上的,所以APB1频率为72M,而LCD的时钟最高是4M,想要让SPI频率最接近4M,只能采用32分频才行。
2由于这款芯片SPI的CS脚没有引出,只能使用其他引脚模拟,所以CS的配置要设为软件模式。


在此引出一个管脚映射问题,在用户手册内SPI2 的 IO 全局复用说明那,有2个配置值,但实际第二个模式是没有意义的,因为第二个配置值映射的管脚都没有被引出



在线程内进行LCD初始化和内容显示

配置完成后,我先使用SPI软件模拟的方式测试了下,显示正常

但在改为硬件SPI模式后,竟然没显示,我排查了很久,都没发现问题,确认不是硬件问题后我开始排查软件问题,因为驱动文件在很多板上都测试过,肯定是没问题,于是我对比了一下BSP和这个蓝牙SDK的文件,我发现蓝牙SDK所用的库文件版本是2.0.0的,而BSP的库文件是2.0.2的,于是,我把SDK里的库文件用2.0.2的都替换掉,重新编译下载,然后就正常显示了。
这说明原来2.0.0的库文件SPI是有问题的,所用大家在使用时一定要注意这个问题!!!我在这个问题上排查了好长时间!!!
要用最新的库!!!要用最新的库!!!要用最新的库!!!



附件为驱动源码
源码.zip (13.03 KB)


使用特权

评论回复
沙发
muyichuan2012| | 2022-9-16 09:16 | 只看该作者
感谢反馈一些使用上的问题,我们下一版BSP完善一下。

使用特权

评论回复
板凳
beimingkunn| | 2022-9-16 17:37 | 只看该作者
挺详细的过程描述

使用特权

评论回复
地板
Jacquetry| | 2022-10-4 21:24 | 只看该作者
写的很详细

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:北京汇冠触摸技术有限公司/电子工程师
简介:电子工程师,嵌入式应用爱好者。

102

主题

1249

帖子

9

粉丝