Vision Board上的SPI设备驱动配置和SPI主控的外部loopback功能测试

描述

感谢发烧友&RT-Thread,很高兴能加入Vision Board创客营,体验Vision Board!

本次测试任务是RT-Thread SPI功能验证。

01

一、简介

RT-Thread

Vision Board搭载全球首颗 480 MHz Arm Cortex-M85芯片,拥有Helium和TrustZone技术的加持。SDK包里集成了OpenMV机器视觉例程,配合MicroPython 解释器,使其可以流畅地开发机器视觉应用。

02

二、环境搭建

1、创建工程

RT-Thread

2、SPI配置

R7FA8D1BHECBD SPI内部框图如下:

RT-Thread

RT-Thread

RT-Thread

3、FSP配置

瑞萨的这个RASC功能还是很强大,堪比STM的CubeMX。配置Vision-Board开发板需要更新FSP到5.1版本。在建好后的工程中,打开RASC来配置具体外设驱动。

RT-Thread

RT-Thread

RT-Thread

03

三、SPI测试

外接SPI设备,或者直接利用已经接上的RW007模组都OK,甚至可以测试SPI主控的外部loopback。

直接短接SPI1的MISO和MOSI针脚,测试数据发送是否能收到。

 

#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!
", 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("
spi loopback mode test over!
");
    return RT_EOK;
}
MSH_CMD_EXPORT(spi_sample, spi loopback test);

 

(左右移动查看全部内容)

RT-Thread

04

四、运行测试

RT-ThreadRT-ThreadRT-Thread

05

五、结论

本文通过创建RT-Studio工程,实现了Vision Board上的SPI设备驱动配置和简单的SPI主控的外部loopback功能测试,依托于RT-Studio和FSP强大的功能,用户可以很方便的完成功能实现。

 

 

        审核编辑:彭菁

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分