Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SPI
HMI-Board
瑞萨_Renesas
RA6M3 HMI Board 之硬件SPI实践
发布于 2023-06-12 10:39:55 浏览:865
订阅该版
[tocm] #1. 前言说明 ## 1.1 本章内容 第一次接触RTT是在2022年的参加的系统集成与芯片设计大赛,当时报名了RTT赛道从此就打开了我使用RTT的大门,RTT是一个非常好的实时操作系统,拥有很多的组件包以及功能,好了回归正题,今天使用开发板进行一个W5500 TCP通讯的测评。 ##1.2 模块介绍 我们通过查阅数据手册发现RA6M3 HMI Board开发板是具有两个硬件SPI的,这里我们使用SPI1与W5500进行通讯,通过重映射方式设置以下IO口作为SPI引脚配置连接方式如下所示 P202---->MISO P203---->MOSI P204---->RSPCK P009---->CS ![screenshot_1686468580590.png](https://oss-club.rt-thread.org/uploads/20230611/44941e4437e5f7072e78401b533351ba.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230611/bd98c19c28916c41362e2f68d364ddaf.png.webp) ## 1.3 开发环境 开发软件:RT-Thread Studio 2.2.6版本+FSP3.5 下载与调试:板载DAP-Link #2. 开发过程 ##2.1 新建文件 选择文件-新建-RT-Thread项目,选择基于开发板 选中HMI Board即可,调试器我选择DAP-Link,当然也可以选择其他的调试器因为板载带了调试起来就毕竟方便,右侧RTT官方还贴心的给出了原理图以及数据手册供大家参考,因为我这有这个名字了所以就报错提醒了一下 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230611/b3559a43fd780580bbe4f7721c2d4e95.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230611/b8fe1fd60982a237f4c55fa73b393084.png.webp) ## 2.2 Studio配置SPI以及编译 先打开RT-Thread Setting设置,然后选择硬件,使能SPI总线以及使能SPI1 ![screenshot_ce0030ba0fe80ae509938cf257daaf3.png](https://oss-club.rt-thread.org/uploads/20230611/5cae14663f4e71467f467c540a854b20.png.webp) 接着写一段SPI初始化代码以及将设备挂载到总线上,随后我们编译一下代码查看一下设备是否挂载上 ```c #define SPI_Name "spi1" struct rt_spi_device *spi_device; void W5500_SPI_Init(void) { #define W5500_CS1 BSP_IO_PORT_00_PIN_10 /* W5500 CS pins */ static rt_device_t spi; rt_err_t spi_mont; struct rt_spi_configuration cfg; spi = rt_device_find(SPI_Name); uint8_t test[5] = "Test"; if(!spi) { rt_kprintf("spi no find\r\n"); } else { rt_kprintf("spi get ready\r\n"); } spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device)); spi_mont = rt_spi_bus_attach_device_cspin(spi_device,"spi10","spi1",RT_NULL,RT_NULL); if(spi_mont != RT_EOK) { LOG_E("mount spi error\r\n"); } else { LOG_E("spi success\r\n"); cfg.data_width = 8; cfg.mode = RT_SPI_MASTER | RT_SPI_MODE_0 | RT_SPI_MSB; //LL模式 cfg.max_hz = 10 *1000 *1000; //10M rt_spi_configure(spi_device, &cfg); // rt_spi_send(spi_device, test, 4); } } INIT_APP_EXPORT(W5500_SPI_Init); //自动初始化 ``` 通过杜邦线与W5500连接进行测试 ![screenshot_8f35b019d785f999352a7b27dc96068.jpg](https://oss-club.rt-thread.org/uploads/20230611/dc248f49782d71182c07affd55be895a.jpg.webp) 可以看到我们已经成功把设备挂载上了 ![screenshot_d6993be26ca224c5acb55013b3390e0.png](https://oss-club.rt-thread.org/uploads/20230612/c3be1a32a7138d4ed481d95fe16dbb88.png) ## 2.3 测试通讯 编写完W5500驱动后使用ping 命令测试以下是否移植成功,官方有W5500软件包,不过我直接自己移植了一个,可以看到可以成功ping通并且TCP通讯也是正常的。 ![screenshot_f29eec9a89acbb145539a138b116737.jpg](https://oss-club.rt-thread.org/uploads/20230611/f1dd654263ae53a7ed0f32dd4d47f116.jpg.webp) ![screenshot_118cf7cea6ce257151a49327be3196e.jpg](https://oss-club.rt-thread.org/uploads/20230611/18a5493d66c0053e215846eba8356acc.jpg.webp) ## 3 心得体会 一开始移植上去后发现无法正常ping通数据,发现使用rt_spi_send函数时候发送一次数据就拉回去片选了,在发送32位地址时候片选没有连续发送8位地址数据的时候是正常,就导致无法ping通设备,可以更换rt_spi_send_then_send发送函数,或者用pin框架写一个片选,都是可以的,虽然是第一次接触瑞萨的板子不过RTT做了很好的适配,在很大程度上简化了开发难度,这次只测试了一下SPI与W5500的通讯,后续有时间的话可以出一个骑行码表,好了本次测评就到这了感谢大家的观看。
7
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
是舒克呀
这家伙很懒,什么也没写!
文章
1
回答
1
被采纳
0
关注TA
发私信
相关文章
1
BBB的SPI驱动
2
求个SPI上挂两个或多个设备的使用例子
3
SPI设备有个bug
4
spi flash 的fatfs使用一段时间后读写文件出现故障
5
SPI驱动
6
请教rt_spi_configure函数理解
7
SPI FLASH挂载的问题
8
SPI-FLASH 文件系统 SPIFFS
9
求助一个完整的 spi flash 驱动
10
关于同时使用文件系统与SPI FLASH的问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
出出啊
1518
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
5
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部