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

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

3天内不再提示

瑞萨RA产品家族初学者指南-第10章(1)

瑞萨嵌入式小百科 ? 来源:未知 ? 2023-01-11 13:10 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

瑞萨RA产品家族初学者指南》系列文章已收录成合集,欢迎点击上方查看合集并订阅!

10. 使用“灵活配置软件包”通过

USB端口发送数据

您将在本章中学到以下内容:

  • 如何使用RA产品家族微控制器的“灵活配置软件包”的中间件来设置USB传输。

  • 如何在主机工作站上接收MCU发送的数据。

在本部分,我们将使用瑞萨RA产品家族微控制器的“灵活配置软件包”(FSP)的USB中间件,在每次按下用户按钮S1时,将LED2的当前状态作为文本字符串通过USB端口发送到Windows工作站。与第9章不同的是,我们在此实验中不使用实时操作系统和信号量,而使用全局变量来指示按钮开关已激活和绿色LED2的状态已更改。

LED状态(ON或OFF)更新、USB端口的写操作,以及保存按钮按下时的信息的全局变量更新将在IRQ10的回调例程中完成。端口的写操作将触发USB传输,将LED的相关信息发送给主机。返回到hal_entry()函数内部的无限循环后,将处理USB事件,并通过将全局变量设置为“false”和将下一个字符串及下一个LED电平分配给各自的变量来准备LED状态的下次更新。图10-1详细描绘了该程序的流程和中断回调函数的流程。

该端口的大部分设置将在FSP配置器的图形界面中完成,应用程序程序员只需完成极少的编程工作。在执行该练习中的编程任务时,可再次体验到FSP给用户提供的便利,即便在构建如USB之类的复杂通信系统时也非常方便。

e545c77e-916d-11ed-bfe3-dac502259ad0.png

图10-1:本章练习的流程图

本章目录

  1. 使用FSP配置器设置USB端口

  2. 创建代码

  3. 在主机端设置接收器

10.1 使用FSP配置器设置USB端口

如果在完成上次练习后已关闭e2 studio,请再次打开并创建一个新项目。到目前为止您应该已经掌握了RA的相关知识,这里将不再赘述每个步骤,因为大部分需要执行的任务在之前的实验中已经做过介绍。将新项目命名为MyUSBProject,在进入“Device and Tools Selection”(器件和工具选择)屏幕后,选择EK-RA6M4作为电路板,我们将再次使用该评估板进行实验。在“Project Type Selection”(项目类型选择)页面,确保“Flat (Non-TrustZone) Project”(简单(非TrustZone)项目)处于启用状态,并确保RTOS Selection”(RTOS选择)下的“No RTOS”(无RTOS)条目已激活。最后,在“Project Template Selection”(项目模板选择)页面上选择“Bare Metal – Minimal”(裸机 – 最小化),然后单击“Finish”(完成)。

在项目配置器已创建项目并显示FSP配置器后,直接转到“Stacks”(堆)选项卡。首先,我们需要添加用于连接到用户按钮S1的外部中断的模块。在“HAL/Common Stacks”(HAL/通用堆栈)窗格上,单击“New Stack”(新堆),然后选择“Driver→Input →External IRQ Driver on r_icu(驱动程序 → 输入 → r_icu 上的外部IRQ驱动程序)。

e5bd5f32-916d-11ed-bfe3-dac502259ad0.jpg

图10-2:首先添加S1中断的驱动程序

在“Properties”(属性)视图中,将中断的“Name”(名称)修改为g_external_irq10,将它的“Channel”(通道)修改为10,以作为中断使用的通道。启用“Digital Filtering”(数字滤波)并将“Trigger”(触发器)设置为“Falling”(下降)。这有助于消除开关的抖动。最后,需要提供用于该中断的回调函数的名称:将其命名为external_irq10_callback,并将“Priority”(优先级)改为14,因为我们要确保USB中断的优先级高于按钮(参见图10-3)。

e5dd4cde-916d-11ed-bfe3-dac502259ad0.jpg

图10-3:以上是IRQ10的必要设置

接下来,将USB外设通信设备类(PCDC)的中间件添加到系统中:创建新堆栈,并选择“Middleware→USB→USB PCDC driver on r_usb_pcdc”(中间件→USB→ r_usb_pcdc上的USB PCDC驱动程序)(参见图10-4)。

e60365b8-916d-11ed-bfe3-dac502259ad0.jpg

图10-4:需要将USB外设通信设备类驱动程序的中间件添加到系统中

此操作将四个模块添加到项目中:用于全速USB端口的实际PCDC驱动程序(用于实现应用程序级USB PCDC接口),以及r_usb_basic上的基本USB驱动程序。堆中还显示两个具有粉红色横条的模块。这些模块用于添加可选的直接内存访问控制器DMAC)驱动程序,以传输或接收数据。我们将使用USB写入API函数直接发送状态消息,因此无需添加它们。关于模块的其他色彩色条的含义,只需记住以下规则:灰色标记仅可由一个其他模块实例引用的模块实例,蓝色标记可由多个其他模块实例(甚至跨多个堆)引用的通用模块实例。通过彩色条中的小三角形,可以展开或折叠模块树。

将USB端口作为PCDC设备来实现,可以将USB端口用作虚拟COM端口,从而简化主机端的接收器设置,因为在注册到Windows后,便可通过终端应用程序进行数据通信。这就是我们与评估板进行对话的方式。

添加所有堆栈后,“Stacks”(堆)窗格的外观如图10-5所示:

e629a020-916d-11ed-bfe3-dac502259ad0.jpg

图10-5:添加USB驱动程序后“堆”窗格的外观

只需要对基本USB驱动程序的“Properties”(属性)做出两处更改。突出显示“g_basic0USBDriver on r_usb_basic”(r_usb_basic上的g_basic0 USB驱动程序)模块,并在“Properties”(属性)视图的“Common”(通用)下,将“Continuous Transfer Mode”(连续传输模式)从“Disabled”(已禁用)切换为“Enabled”(已启用),将“DMA Support”(DMA支持)从“Enabled”(已启用)切换为“Disabled”(已禁用)。记录“g_basic0USBDriver on r_usb_basic”(r_usb_basic上的g_basic0 USB驱动程序)部分的“USB Descriptor”(USB描述符)的名称:g_usb_descriptor。稍后将创建一个具有该名称的结构,以描述系统USB的功能,因此应记住这个名称。图10-6显示了修改后模块的属性。

e64ead48-916d-11ed-bfe3-dac502259ad0.jpg

图10-6:进行必要更改后的连续传输设置。记录“USB Descriptor”(USB描述符)的名称

图10-7显示了在完成所有更改后“Stacks”(堆)选项卡的外观:

e66bd42c-916d-11ed-bfe3-dac502259ad0.jpg

图10-7:完成所有增加内容和修改后,“Stacks”(堆)选项卡的外观

“Stacks”(堆)选项卡中完成所有设置后,现在需要设置USB端口的正确操作模式。为此,请切换到“Pins”(引脚)选项卡,在“Pin Selection”(引脚选择)窗格中,首先展开“Peripherals”(外设)下拉列表,然后展开“Connectivity: USB”(连接:USB)列表。在“Pin Configuration”(引脚配置)窗格中,将“Operation Mode”(操作模式)从“Custom”(自定义)修改为“Device”(器件),作为要使用的模式。注意,输入/输出引脚分配将相应改变。

e688134e-916d-11ed-bfe3-dac502259ad0.jpg

图10-8:USB端口将使用器件模式,请进行相应更改

现在还差一步就完成了端口的设置。最后一步是启用“USB clock (UCLK)”(USB时钟 (UCLK)),用作全速(FS)USB模块的工作时钟,并将其设置为所需的48 MHz频率。为此,激活“Clocks”(时钟)选项卡,可通过该选项卡配置时钟生成电路。首先启用USB时钟,方法为:将靠近窗格底部的UCLK“Disabled”(已禁用)更改为“Enabled”(已启用),并选择PLL2作为源。接下来,启用PLL2,它是USB模块的专用PLL,并选择高速片上振荡器(HOCO)作为源。请注意,此时给定的UCLK频率为40 MHz,并以红色突出显示,因为USB要求的频率为48 MHz。将PLL2乘数值更改为24,以便将PLL2的频率更改为240 MHz。再使UCLK的除数5,此时UCLK的频率已正确设置为48 MHz。这里,采用Arm Cortex-M33内核的RA MCU系列凸显了巨大的优势:微控制器上还有第二个PLL,可以将USB的时钟频率设置为48 MHz,同时以最高速度200MHz运行MCU。

最后,将标准PLL的源从XTAL更改为HOCO。如果不确定要更改哪些字段,请参见图10-9。

e6a855c8-916d-11ed-bfe3-dac502259ad0.jpg

图10-9:USB FS需要使用48 MHz的时钟,因此需要相应地更改时钟生成电路。必要的更改已突出显示

至此,已经完成了必须在FSP配置器中进行的设置。保存配置,然后单击屏幕右上角的“Generate Project Content”(生成项目内容)按钮,以提取文件并创建所需的设置。最后一步,再次切换到C/C++透视图。


原文标题:瑞萨RA产品家族初学者指南-第10章(1)

文章出处:【微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。


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

    关注

    146

    文章

    18082

    浏览量

    371109
  • 瑞萨
    +关注

    关注

    36

    文章

    22398

    浏览量

    88491
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA8系列教程 | RA8 开发环境搭建,并点亮一个LED

    今天就给大家讲讲基于Cortex-M85内核RA8单片机快速上手指南
    的头像 发表于 06-04 17:32 ?928次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8系列教程 | <b class='flag-5'>瑞</b><b class='flag-5'>萨</b> <b class='flag-5'>RA</b>8 开发环境搭建,并点亮一个LED

    RA-Eco-RA4M2开发板评测】初学-使用flash programmer烧录程序

    本人刚入坑不久,对单片机的热情很高,于是也加入了的板子申请队伍,很荣幸也成为了试用者之一,此前对于的板子从未接触过,包括对于使用e2studio编写程序烧录等工作也是从小白开始
    发表于 04-29 17:28

    RA8D1单片机IO中断配置实现方法

    本文为结合e2 studio工具,以及CPKCOR_RA8D1B评估板,给大家讲述RA8D1
    的头像 发表于 04-09 15:05 ?1114次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA8D1</b>单片机IO中断配置实现方法

    RA系列MCU的命名方法与选型

    初学者来说,要理解RA产品家族产品型号中的不同数字和字母并不容易。我们首先以RA系列MCU中的
    的头像 发表于 03-27 14:32 ?1231次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>系列MCU的命名方法与选型

    RA8快速上手指南:Cortex-M85内核RA8开发环境搭建 并点亮一个LED

    因为Cortex-M内核,RA8系列单片机支持多种市面上常见的开发环境,像Keil MDK、IAR EWARM等,而本文讲述的是自家
    的头像 发表于 03-17 14:35 ?1132次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8快速上手<b class='flag-5'>指南</b>:Cortex-M85内核<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8开发环境搭建 并点亮一个LED

    RA2L1入门学习】+开箱评测

    R7FA2L1AB2DFL。RA2L1 产品组采用优化的制程和电子的低功耗工艺技术,是业界一流水平的超低功耗微控制器。 本次收到的开发板
    发表于 03-09 07:40

    RA4L1产品特色功能及应用场景

    近日电子推出了一款最新的RA产品RA4L1,它有哪些特性以及适用于什么样的应用场景呢?本篇文章给大家带来详细介绍。
    的头像 发表于 03-04 15:51 ?777次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA4L1</b><b class='flag-5'>产品</b>特色功能及应用场景

    电子RA4L1 MCU的基本特性和应用场景

    近日电子推出了一款最新的RA产品RA4L1,它有哪些特性以及适用于什么样的应用场景呢?本篇文章给大家带来详细介绍。
    的头像 发表于 02-28 16:53 ?1404次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA4L1</b> MCU的基本特性和应用场景

    新品上市 | RA4L1低功耗MCU--USB,CANFD,段码LCD,适用低功耗电池应用

    RA家族RA4L1低功耗MCU产品系列于2025年2月推出。
    的头像 发表于 02-27 12:11 ?1069次阅读
    新品上市 | <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA4L1</b>低功耗MCU--USB,CANFD,段码LCD,适用低功耗电池应用

    RA家族RA4L1低功耗MCU量产上市

    ? RA家族RA4L1低功耗MCU产品系列于2025年2月推出。
    的头像 发表于 02-20 13:39 ?910次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b><b class='flag-5'>RA4L1</b>低功耗MCU量产上市

    RA2L1入门学习】1. 点亮LED

    首次使用单片机,先说一下使用感受。 本次学习使用的是RA-Eco-RA2L1-48PIN-V1.0开发板+e2studio(官方的集成开发环境)+RAFP(官方的程序烧录工具)。 整个流程都是
    发表于 01-29 22:17

    EE-269:以太网802.3初学者指南

    电子发烧友网站提供《EE-269:以太网802.3初学者指南.pdf》资料免费下载
    发表于 01-05 09:48 ?1次下载
    EE-269:以太网802.3<b class='flag-5'>初学者</b><b class='flag-5'>指南</b>

    RA家族精品RA2L1产品介绍

    RA2L1MCU是RA家族RA2系列广受欢迎的一款产品
    的头像 发表于 12-27 18:07 ?719次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b>精品<b class='flag-5'>RA2L1</b><b class='flag-5'>产品</b>介绍

    电子RZ MPU家族精品RZ/N2L产品介绍

    生态合作伙伴RT-Thread推出了一款高性能、多功能以太网MPU开发板EtherKit,搭载电子RZ/N2L,并携手
    的头像 发表于 12-23 14:10 ?856次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子RZ MPU<b class='flag-5'>家族</b>精品RZ/N2L<b class='flag-5'>产品</b>介绍

    电子RA2L1 MCU产品介绍

    RA2L1 MCU是RA家族RA2系列广受欢迎的一款产品
    的头像 发表于 12-10 10:51 ?1061次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA2L1</b> MCU<b class='flag-5'>产品</b>介绍