1.前言說(shuō)明
1.1 本章內(nèi)容
第一次接觸RTT是在2022年的參加的系統(tǒng)集成與芯片設(shè)計(jì)大賽,當(dāng)時(shí)報(bào)名了RTT賽道從此就打開(kāi)了我使用RTT的大門(mén),RTT是一個(gè)非常好的實(shí)時(shí)操作系統(tǒng),擁有很多的組件包以及功能,好了回歸正題,今天使用開(kāi)發(fā)板進(jìn)行一個(gè)W5500 TCP通訊的測(cè)評(píng)。
1.2 模塊介紹
我們通過(guò)查閱數(shù)據(jù)手冊(cè)發(fā)現(xiàn)RA6M3 HMI Board開(kāi)發(fā)板是具有兩個(gè)硬件SPI的,這里我們使用SPI1與W5500進(jìn)行通訊,通過(guò)重映射方式設(shè)置以下IO口作為SPI引腳配置連接方式如下所示
P202——>MISO
P203——>MOSI
P204——>RSPCK
P009——>CS
1.3 開(kāi)發(fā)環(huán)境
開(kāi)發(fā)軟件:RT-Thread Studio 2.2.6版本+FSP3.5
下載與調(diào)試:板載DAP-Link
2.開(kāi)發(fā)過(guò)程
2.1 新建文件
選擇文件-新建-RT-Thread項(xiàng)目,選擇基于開(kāi)發(fā)板 選中HMI Board即可,調(diào)試器我選擇DAP-Link,當(dāng)然也可以選擇其他的調(diào)試器因?yàn)榘遢d帶了調(diào)試起來(lái)就畢竟方便,右側(cè)RTT官方還貼心的給出了原理圖以及數(shù)據(jù)手冊(cè)供大家參考,因?yàn)槲疫@有這個(gè)名字了所以就報(bào)錯(cuò)提醒了一下
2.2 Studio配置SPI以及編譯
先打開(kāi)RT-Thread Setting設(shè)置,然后選擇硬件,使能SPI總線以及使能SPI1
接著寫(xiě)一段SPI初始化代碼以及將設(shè)備掛載到總線上,隨后我們編譯一下代碼查看一下設(shè)備是否掛載上
#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 findrn");
}
else {
rt_kprintf("spi get readyrn");
}
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 errorrn");
}
else {
LOG_E("spi successrn");
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); //自動(dòng)初始化
通過(guò)杜邦線與W5500連接進(jìn)行測(cè)試
可以看到我們已經(jīng)成功把設(shè)備掛載上了
2.3 測(cè)試通訊
編寫(xiě)完W5500驅(qū)動(dòng)后使用ping 命令測(cè)試以下是否移植成功,官方有W5500軟件包,不過(guò)我直接自己移植了一個(gè),可以看到可以成功ping通并且TCP通訊也是正常的。
3 心得體會(huì)
一開(kāi)始移植上去后發(fā)現(xiàn)無(wú)法正常ping通數(shù)據(jù),發(fā)現(xiàn)使用rt_spi_send函數(shù)時(shí)候發(fā)送一次數(shù)據(jù)就拉回去片選了,在發(fā)送32位地址時(shí)候片選沒(méi)有連續(xù)發(fā)送8位地址數(shù)據(jù)的時(shí)候是正常,就導(dǎo)致無(wú)法ping通設(shè)備,可以更換rt_spi_send_then_send發(fā)送函數(shù),或者用pin框架寫(xiě)一個(gè)片選,都是可以的,雖然是第一次接觸瑞薩的板子不過(guò)RTT做了很好的適配,在很大程度上簡(jiǎn)化了開(kāi)發(fā)難度,這次只測(cè)試了一下SPI與W5500的通訊,后續(xù)有時(shí)間的話可以出一個(gè)騎行碼表,好了本次測(cè)評(píng)就到這了感謝大家的觀看。
-
SPI接口
+關(guān)注
關(guān)注
0文章
258瀏覽量
34228 -
調(diào)試器
+關(guān)注
關(guān)注
1文章
297瀏覽量
23568 -
W5500
+關(guān)注
關(guān)注
5文章
45瀏覽量
17420 -
TCP通信
+關(guān)注
關(guān)注
0文章
146瀏覽量
4184 -
RTThread
+關(guān)注
關(guān)注
7文章
132瀏覽量
40684 -
RA6M3
+關(guān)注
關(guān)注
0文章
52瀏覽量
58
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論