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