一、簡(jiǎn)介
Vision-Board 開(kāi)發(fā)板是 RT-Thread 推出基于瑞薩 Cortex-M85 架構(gòu) RA8D1 芯片,為工程師們提供了一個(gè)靈活、全面的開(kāi)發(fā)平臺(tái),助力開(kāi)發(fā)者在機(jī)器視覺(jué)領(lǐng)域獲得更深層次的體驗(yàn)。
Vision Board搭載全球首顆 480 MHz Arm Cortex-M85芯片,擁有Helium和TrustZone技術(shù)的加持。SDK包里集成了OpenMV機(jī)器視覺(jué)例程,配合MicroPython 解釋器,使其可以流暢地開(kāi)發(fā)機(jī)器視覺(jué)應(yīng)用。
二、環(huán)境搭建
(一)創(chuàng)建工程
通過(guò)RT-Thread官方提供的RT-Studio IDE,開(kāi)發(fā)者可以很輕松的搭建基于Vision-Board開(kāi)發(fā)板的工程。
至于開(kāi)發(fā)板SDK和各種工具(包括ARM CC, PyOCD等)的更新,直接參考官方指南(Vision-Board (rt-thread.org)),比較清楚。
(二)SPI配置
R7FA8D1BHECBD SPI內(nèi)部框圖如下:
因?yàn)槟康氖菧y(cè)試SPI,看了下板子的SPI引出情況,樹(shù)莓派引腳看了下沒(méi)硬件SPI,只有幾個(gè)軟SPI沒(méi)意思,放棄。然后看到RW007的針腳上給了個(gè)SPI1,好就這個(gè)測(cè)試。
需要在RT-Studio中選擇打開(kāi)SPI1總線。
(三)FSP配置
瑞薩的這個(gè)RASC功能還是很強(qiáng)大,堪比STM的CubeMX。配置Vision-Board開(kāi)發(fā)板需要更新FSP到5.1版本。在建好后的工程中,打開(kāi)RASC來(lái)配置具體外設(shè)驅(qū)動(dòng)。
首先在Pins選項(xiàng)中配置好SPI1相關(guān)pin,選擇混合模式。
然后在Stacks選項(xiàng)中新建r_spi_b類型的SPI1,具體屬性如下:
選擇好之后,點(diǎn)擊產(chǎn)生工程代碼按鈕,生成相關(guān)驅(qū)動(dòng)源文件。
三、SPI測(cè)試
測(cè)試SPI主控的外部loopback,直接短接SPI1的MISO和MOSI針腳,測(cè)試數(shù)據(jù)發(fā)送是否能收到。
#define SPI_NAME "spi10" #define CS_PIN BSP_IO_PORT_04_PIN_13 static struct rt_spi_device *spi_dev; /* attach spi device */ static int rt_spi_device_init(void) { struct rt_spi_configuration cfg; rt_hw_spi_device_attach("spi1", SPI_NAME, CS_PIN); cfg.data_width = 8; cfg.mode = RT_SPI_MASTER | RT_SPI_MODE_0 | RT_SPI_MSB | RT_SPI_NO_CS; cfg.max_hz = 1 *1000 *1000; spi_dev = (struct rt_spi_device *)rt_device_find(SPI_NAME); if (RT_NULL == spi_dev) { rt_kprintf("spi sample run failed! can't find %s device!n", SPI_NAME); return -RT_ERROR; } rt_spi_configure(spi_dev, &cfg); return RT_EOK; } INIT_APP_EXPORT(rt_spi_device_init); /* spi loopback mode test case */ static int spi_sample(int argc, char **argv) { rt_uint8_t t_buf[32], r_buf[32]; int i = 0; static struct rt_spi_message msg1; for (i = 0; i < sizeof(t_buf); i++) { t_buf[i] = i; } msg1.send_buf = &t_buf; msg1.recv_buf = &r_buf; msg1.length = sizeof(t_buf); msg1.cs_take = 1; msg1.cs_release = 1; msg1.next = RT_NULL; rt_spi_transfer_message(spi_dev, &msg1); rt_kprintf("spi rbuf : "); for (i = 0; i < sizeof(r_buf); i++) { rt_kprintf("%x ", r_buf[i]); } rt_kprintf("nspi loopback mode test over!n"); return RT_EOK; } MSH_CMD_EXPORT(spi_sample, spi loopback test);
編譯后生成可執(zhí)行文件,下載到Vision Board開(kāi)發(fā)板:
四、運(yùn)行測(cè)試
打開(kāi)串口連上Vision Board開(kāi)發(fā)板,還是熟悉的logo:
list device可以看到SPI1總線和SPI10設(shè)備都在。
接下來(lái)根據(jù)電路圖,用鑷子將SPI的MISO和MOSI針腳連起來(lái)。
輸入測(cè)試命令spi_sample,即可得到測(cè)試結(jié)果:
五、結(jié)論
本文通過(guò)創(chuàng)建RT-Studio工程,實(shí)現(xiàn)了Vision Board上的SPI設(shè)備驅(qū)動(dòng)配置和簡(jiǎn)單的SPI主控的外部loopback功能測(cè)試,依托于RT-Studio和FSP強(qiáng)大的功能,用戶可以很方便的完成功能實(shí)現(xiàn)。
審核編輯 黃宇
-
芯片
+關(guān)注
關(guān)注
459文章
52176瀏覽量
436140 -
測(cè)試
+關(guān)注
關(guān)注
8文章
5628瀏覽量
128303 -
機(jī)器視覺(jué)
+關(guān)注
關(guān)注
163文章
4510瀏覽量
122250 -
SPI
+關(guān)注
關(guān)注
17文章
1783瀏覽量
94718
發(fā)布評(píng)論請(qǐng)先 登錄
基于瑞薩電子RA8D1 MCU的USB和I2S數(shù)字音頻應(yīng)用解決方案

瑞薩RA8系列教程 | 基于 Keil 開(kāi)發(fā) RA8單片機(jī)

瑞薩RA8D1單片機(jī)IO中斷配置實(shí)現(xiàn)方法

CAN loopback模式測(cè)試
瑞薩電子RA8E1和RA8E2 MCU新品解讀

【瑞薩RA8D1 CPK開(kāi)發(fā)板】RA8D1移植ThreadX操作系統(tǒng)
如何在RA8D1 MIPI LCD上顯示任意內(nèi)容

【瑞薩RA8D1 CPK開(kāi)發(fā)板試用】開(kāi)箱與點(diǎn)燈
【Vision Board創(chuàng)客營(yíng)連載體驗(yàn)】基于RA8D1-Vision Board的自動(dòng)路徑規(guī)劃小車
【Vision Board創(chuàng)客營(yíng)連載體驗(yàn)】基于Vision Board的垃圾分類
【Vision Board創(chuàng)客營(yíng)連載體驗(yàn)】使用 Vision Board 做一個(gè) UVC Camera
基于Arm Cortex-CM85內(nèi)核的RA8D1作為控制器 通過(guò)MIPI DSI實(shí)現(xiàn)LVGL顯示

評(píng)論