0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子发烧友论坛 来源:电子发烧友论坛 2024-06-04 09:21 次阅读

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

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

01

一、简介

59ed3e52-2206-11ef-91d2-92fbcf53809c.jpg

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

02

二、环境搭建

1、创建工程

5a0c5652-2206-11ef-91d2-92fbcf53809c.jpg

2、SPI配置

R7FA8D1BHECBD SPI内部框图如下:

5a2d0e38-2206-11ef-91d2-92fbcf53809c.jpg

5a4e6b14-2206-11ef-91d2-92fbcf53809c.jpg

5a717410-2206-11ef-91d2-92fbcf53809c.jpg

3、FSP配置

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

5a918c82-2206-11ef-91d2-92fbcf53809c.jpg

5aaf1e78-2206-11ef-91d2-92fbcf53809c.jpg

5ad8807e-2206-11ef-91d2-92fbcf53809c.jpg

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);

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

5af7f7ba-2206-11ef-91d2-92fbcf53809c.jpg

04

四、运行测试

5b1335b6-2206-11ef-91d2-92fbcf53809c.jpg5b3e2438-2206-11ef-91d2-92fbcf53809c.jpg5b58a72c-2206-11ef-91d2-92fbcf53809c.jpg

05

五、结论

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

审核编辑:彭菁

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

    关注

    17

    文章

    1706

    浏览量

    91524
  • Vision
    +关注

    关注

    1

    文章

    196

    浏览量

    18174
  • RT-Thread
    +关注

    关注

    31

    文章

    1285

    浏览量

    40094

原文标题:Vision Board开发板体验,验证RT-Thread SPI功能

文章出处:【微信号:gh_9b9470648b3c,微信公众号:电子发烧友论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    深度解析Linux SPI总线和设备驱动架构

    SPI控制器不用关心设备的具体功能,它只负责把上层协议驱动准备好的数据按SPI总线的时序要求发送给SPI
    的头像 发表于 02-07 08:16 8080次阅读
    深度解析Linux <b class='flag-5'>SPI</b>总线和<b class='flag-5'>设备</b><b class='flag-5'>驱动</b>架构

    STM32H743基于SPI的SD卡驱动开发流程简析

    board.h文件中,参考SPI配置说明依次配置SPI参数
    的头像 发表于 08-15 11:19 2787次阅读
    STM32H743基于<b class='flag-5'>SPI</b>的SD卡<b class='flag-5'>驱动</b>开发流程简析

    Vision Board创客营连载体验】RA8D1 Vision BoardSPI实践

    驱动配置和简单的SPI主控外部loopback功能
    发表于 04-22 23:56

    SPI方式FPGA配置SPI flash编程

    SPI方式FPGA配置SPI flash编程
    发表于 05-16 18:01 165次下载
    <b class='flag-5'>SPI</b>方式FPGA<b class='flag-5'>配置</b>和<b class='flag-5'>SPI</b> flash编程

    DSP之spi_loopback教程

    DSP之spi_loopback教程,很好的DSP自学资料,快来学习吧。
    发表于 04-15 17:00 34次下载

    在FPGA编写通过SPI总线配置外部PLL芯片AD9518和ADC9268的程序

    本文档的主要内容详细介绍的是在FPGA编写通过SPI总线配置外部PLL芯片AD9518和ADC9268的程序免费下载。
    发表于 03-10 15:50 53次下载

    在FPGA编写的通过SPI总线配置外部PLL芯片AD9518和ADC9268的程序

    在FPGA编写的通过SPI总线配置外部PLL芯片AD9518和ADC9268的程序(开关电源威廉希尔官方网站 与设计潘永雄.pdf)-在FPGA编写的
    发表于 09-16 11:37 64次下载
    在FPGA<b class='flag-5'>上</b>编写的通过<b class='flag-5'>SPI</b>总线<b class='flag-5'>配置</b><b class='flag-5'>外部</b>PLL芯片AD9518和ADC9268的程序

    嵌入式Linux SPI驱动

    函数transfer_one_message: SPI发送护具函数,发送一个spi_message数据1.2 SPI设备驱动Linux内核使
    发表于 11-01 17:05 14次下载
    嵌入式Linux <b class='flag-5'>SPI</b><b class='flag-5'>驱动</b>

    SPI配置要点

    SPI配置要点SPI_DeInit(SPI1);SPI_Init(SPI1,
    发表于 11-30 12:21 7次下载
    <b class='flag-5'>SPI</b><b class='flag-5'>配置</b>要点

    STM32L4使用SPI驱动TFTLCD

    STM32L4使用SPI驱动TFTLCD在上新建工程的基础添加使用SPI功能(新建工程见STM32使用LL库建立工程)一、CubeMX的
    发表于 12-22 19:20 11次下载
    STM32L4使用<b class='flag-5'>SPI</b><b class='flag-5'>驱动</b>TFTLCD

    SPI控制器驱动功能介绍

    SPI 控制器驱动SPI 控制器驱动层负责最底层的数据收发,主要有以下功能: 申请必要的硬件资源,比如中断、DMA 通道、DMA 内存缓
    的头像 发表于 07-25 10:58 1212次阅读
    <b class='flag-5'>SPI</b>控制器<b class='flag-5'>驱动</b>层<b class='flag-5'>功能</b>介绍

    SPI子系统:SPI设备驱动

    SPI 设备驱动设备】声明在设备树中 注意:设备的声明,slave device node
    的头像 发表于 07-25 11:05 970次阅读
    <b class='flag-5'>SPI</b>子系统:<b class='flag-5'>SPI</b><b class='flag-5'>设备</b><b class='flag-5'>驱动</b>

    SPI默认生成工程存在SPI驱动配置不当问题处理

    在使用RT-Thread Studio生成的默认工程SPI驱动部分有笔误,导致SPI实际输出频率与配置参数不符合
    发表于 08-10 14:54 515次阅读
    <b class='flag-5'>SPI</b>默认生成工程存在<b class='flag-5'>SPI</b><b class='flag-5'>驱动</b><b class='flag-5'>配置</b>不当问题处理

    RA8D1 Vision BoardSPI loopback测试

    一、简介 Vision-Board 开发板是 RT-Thread 推出基于瑞萨 Cortex-M85 架构 RA8D1 芯片,为工程师们提供了一个灵活、全面的开发平台,助力开发者在机器视觉领域获得
    的头像 发表于 04-23 00:00 944次阅读
    RA8D1 <b class='flag-5'>Vision</b> <b class='flag-5'>Board</b><b class='flag-5'>上</b>的<b class='flag-5'>SPI</b> <b class='flag-5'>loopback</b><b class='flag-5'>测试</b>

    Vision Board 创客营】Vision Board的DAC实践

    选择的是DAC功能测试。 2、环境配置 配置 ​ 系统:Win11 ​ 开发板:RA8-M85-vision-board ​ 开发IDE:
    的头像 发表于 04-24 21:55 596次阅读
    【<b class='flag-5'>Vision</b> <b class='flag-5'>Board</b> 创客营】<b class='flag-5'>Vision</b> <b class='flag-5'>Board</b><b class='flag-5'>上</b>的DAC实践