《瑞萨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之类的复杂通信系统时也非常方便。
图10-1:本章练习的流程图
本章目录
使用fsp配置器设置usb端口
创建代码
在主机端设置接收器
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驱动程序)。
图10-2:首先添加s1中断的驱动程序
在“properties”(属性)视图中,将中断的“name”(名称)修改为g_external_irq10,将它的“channel”(通道)修改为10,以作为中断使用的通道。启用“digital filtering”(数字滤波)并将“trigger”(触发器)设置为“falling”(下降)。这有助于消除开关的抖动。最后,需要提供用于该中断的回调函数的名称:将其命名为external_irq10_callback,并将“priority”(优先级)改为14,因为我们要确保usb中断的优先级高于按钮(参见图10-3)。
图10-3:以上是irq10的必要设置
接下来,将usb外设通信设备类(pcdc)的中间件添加到系统中:创建新堆栈,并选择“middleware→usb→usb pcdc driver on r_usb_pcdc”(中间件→usb→ r_usb_pcdc上的usb pcdc驱动程序)(参见图10-4)。
图10-4:需要将usb外设通信设备类驱动程序的中间件添加到系统中
此操作将四个模块添加到项目中:用于全速usb端口的实际pcdc驱动程序(用于实现应用程序级usb pcdc接口),以及r_usb_basic上的基本usb驱动程序。堆中还显示两个具有粉红色横条的模块。这些模块用于添加可选的直接内存访问控制器(dmac)驱动程序,以传输或接收数据。我们将使用usb写入api函数直接发送状态消息,因此无需添加它们。关于模块的其他色彩色条的含义,只需记住以下规则:灰色标记仅可由一个其他模块实例引用的模块实例,蓝色标记可由多个其他模块实例(甚至跨多个堆)引用的通用模块实例。通过彩色条中的小三角形,可以展开或折叠模块树。
将usb端口作为pcdc设备来实现,可以将usb端口用作虚拟com端口,从而简化主机端的接收器设置,因为在注册到windows后,便可通过终端应用程序进行数据通信。这就是我们与评估板进行对话的方式。
添加所有堆栈后,“stacks”(堆)窗格的外观如图10-5所示:
图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显示了修改后模块的属性。
图10-6:进行必要更改后的连续传输设置。记录“usb descriptor”(usb描述符)的名称
图10-7显示了在完成所有更改后“stacks”(堆)选项卡的外观:
图10-7:完成所有增加内容和修改后,“stacks”(堆)选项卡的外观
在“stacks”(堆)选项卡中完成所有设置后,现在需要设置usb端口的正确操作模式。为此,请切换到“pins”(引脚)选项卡,在“pin selection”(引脚选择)窗格中,首先展开“peripherals”(外设)下拉列表,然后展开“connectivity: usb”(连接:usb)列表。在“pin configuration”(引脚配置)窗格中,将“operation mode”(操作模式)从“custom”(自定义)修改为“device”(器件),作为要使用的模式。注意,输入/输出引脚分配将相应改变。
图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。
图10-9:usb fs需要使用48 mhz的时钟,因此需要相应地更改时钟生成电路。必要的更改已突出显示
至此,已经完成了必须在fsp配置器中进行的设置。保存配置,然后单击屏幕右上角的“generate project content”(生成项目内容)按钮,以提取文件并创建所需的设置。最后一步,再次切换到c/c++透视图。
原文标题:瑞萨ra产品家族初学者指南-第10章(1)
文章出处:【微信公众号:瑞萨mcu小百科】欢迎添加关注!文章转载请注明出处。
知情人士称富士康深圳工厂部分车间即将进入iPhone 13打样第一阶段
HDZF智能蓄电池充电放电放电综合测试仪系统操作方法
现代电子集成技术剖析:集成的尺度和维度
如何利用二级输出滤波器防止开关电源噪声
三种串行通信简单介绍以及其接口标准
瑞萨RA产品家族初学者指南-第10章(1)
传音旗下Infinix品牌宣布将于10月发布全新ZERO系列
中科大成功研发高性能测风激光雷达
在复用库互操作方法上有哪些分类比较?
富士康在印度成立合资芯片封装测试公司
一款可以基于图文内容自动生成短视频的人工智能Aliwood
屏下指纹触控与侧边指纹触控它们的区别
Mouser获Amphenol Industrial授予年度分销商奖
上能电气&江南大学联合实验室揭牌,共谱绿色未来
WiFi与蜂窝技术走向融合,5G技术可期
哪吒新车型将搭载禾赛AT128激光雷达,预计2025年落地
华为已成功备下1年以上的5G芯片
汽车USB3.1连接器系统设计注意事项
台湾市场智能手机销量Top20
日本创意太阳能充电的iPad用键盘