硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1423|回复: 7
收起左侧

[USB] STM32H7S7 USB Composite Device MSC 与 CDC

[复制链接]

10

主题

53

回帖

83

积分

初级会员

积分
83
发表于 2024-9-17 15:14:48 | 显示全部楼层 |阅读模式
最近想做USBD MSC 与 CDC复合。使用STM32 CubeMX(版本6.12.0)软件包( CubeH7RS 1.1.0) 生成 Threadx + USBX 。但是,生成代码后发现一个问题,MSC只要一加上就有问题,不加MSC,只有CDC_ACM就是正确的。
尝试改很多东西,不是SCSI CMD 不响应,就是 识别出了U盘盘符但是打不开。

USB分析仪

USB分析仪


最终发现需要注意几个地方(尤其是前两处!)。

一、在usb_otg.c文件中 对于hpcd_USB_OTG_HS(hpcd_USB_OTG_FS)变量需要定义在内部ram,最好是AXI ram!。
[C] 纯文本查看 复制代码
#include "usb_otg.h"

/* USER CODE BEGIN 0 */
#if defined ( __ICCARM__ ) /* IAR Compiler */
#pragma location = ".UsbHpcdSection"
#elif defined ( __CC_ARM ) || defined(__ARMCC_VERSION) /* ARM Compiler 5/6 */
__attribute__((section(".IN_RAM")))
#elif defined ( __GNUC__ ) /* GNU Compiler */
__attribute__((section(".UsbHpcdSection")))
#endif
/* USER CODE END 0 */

PCD_HandleTypeDef hpcd_USB_OTG_HS;

二、在stm32H7rsxx_it.c 文件中
#include "ux_device_msc.h"
这个文件中又
#include "main.h"
#include "sdmmc.h"
#include "app_usbx_device.h"

三、中断
记得开USB 、SDMMC中断(因为我使用了SD模拟U盘)
其中SDMMC需要优先级比USB高!
四、确认USBX的用户参数
比如最大class数目,不能超过这个 ,会导致初始化失败。
抑或是 USBX栈设置太小,会导致初始化失败。
相同类型(IN / OUT)端点不要重复!对于STM32来说 IN 和 OUT是可以重复的,比如端点1的 IN / OUT, IN为 0x81,OUT为0x01。

对于记得开FIFO
[C] 纯文本查看 复制代码
  HAL_PCDEx_SetRxFiFo(&hpcd_USB_OTG_HS, 0x400);
  /* Set Tx FIFO 0 */
  HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_HS, 0, 0x40);
  /* Set Tx FIFO 1 */
  HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_HS, 1, 0x100);

记得查看 Fifo最大是多少,我看了 H743 H7S7的都是4K
对于设备来说 所有OUT端点的信息都由一个FIFO接收
IN端点,则是一对一,这个内容可以在芯片的参考手册中查看!

USB分析仪

USB分析仪
回复

使用道具 举报

10

主题

53

回帖

83

积分

初级会员

积分
83
 楼主| 发表于 2025-2-25 18:57:21 | 显示全部楼层
补充一点,使用USBX时,USBX的内存池最好也是 内部ram,外部ram会导致只有CDC可以使用
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2024-9-18 08:05:56 | 显示全部楼层
谢谢分享。
回复

使用道具 举报

6

主题

90

回帖

108

积分

初级会员

积分
108
发表于 2024-9-19 08:42:46 | 显示全部楼层
感谢大佬分享
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
发表于 2024-11-15 09:17:03 | 显示全部楼层
高大上的芯片目前还没有捣鼓过哟

后续可能会用上, 感谢分享
回复

使用道具 举报

22

主题

196

回帖

262

积分

高级会员

积分
262
发表于 2024-11-15 11:34:59 | 显示全部楼层
这个上位机软件是啥
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2024-11-16 10:30:55 | 显示全部楼层
yuanzhongda 发表于 2024-11-15 11:34
这个上位机软件是啥

沁恒出的一个。
回复

使用道具 举报

10

主题

53

回帖

83

积分

初级会员

积分
83
 楼主| 发表于 2024-11-16 16:44:04 | 显示全部楼层
yuanzhongda 发表于 2024-11-15 11:34
这个上位机软件是啥

沁恒的 USB2.0分析仪 带的软件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-13 03:31 , Processed in 0.046524 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表