AT32 MCU F415 OTG新功能使用

这篇博客详细介绍了如何在AT32F415C芯片中启用OTGFSDevice模式下的新特性。功能1允许在OTG模式下释放VBUS(PA9)引脚供其他外设使用,通过设置OTG_FS_GCCFG寄存器实现。功能2则展示了端点3支持重配置,能同时处理端点3和4的数据通信。通过示例代码和步骤指导,用户可以了解这两个功能的启用方法,并在AT-START-F415开发板上进行实践验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AT32F415 OTG新功能使用

示例目的
演示AT32F415C OTG 新功能的使用方法,415C新增两个功能,
功能1:在OTGFS Device模式下,VBUS(PA9)可通过配置释放给其它外设使用。
功能1使能方法:设置寄存器OTG_FS_GCCFG bit[21] 为1。
功能2:在OTG_FS Device模式下,端点3支持重配置,使能该功能之后,使用这个端点可同时支持端点3和端点4与主机通信,具体使用端点3还是端点4是通过USB设备的配置描述进行配置。
功能2使能方法:((uint32_t *)0x40021044) |= 0x80000000。该示例适用于雅特力科技的AT32F415系列中的C版本芯片。该芯片系列集成了ARM™ 32位Cortex®-M4内核。表2列出了所有的产品型号。表1列出了本文涉及产品的识别:
通过芯片封装上产品标识下的版本号
通过包装盒标签上的产品标识的最后1个数字
在这里插入图片描述

  1. 产品容量信息和器件唯一ID寄(UID基地址:0x1FFF F7E8)中的Bit[78:76] Mask_Version指明芯片的版本号,即通过地址0x1FFFF7F1的Bit[6:4]获知版本号,比如B版:0b001C版:0b010
  2. 关于在不同芯片封装上识别版本号,请参 2 产品上硅版本号标示。
    支持型号列表:
    AT32F415C
    主要使用外设列表:
    OTG
    快速使用方法
    硬件资源
  1. AT-START-F415 开发板
  2. USB接口
    软件资源
  3. SourceCode
     415_OTG_Device_NewFunction
    功能 1 示例使用(PA9 释放)
  4. 打开 project\at_start_f415\examples\usb_device\ vcp_Loopback_funtion1,编译后下载到实验板
  5. 实验使用AT-START-F415开发板
  6. 此例程展示了如何在AT32F415C使用OTG Device的时候释放VBUS(PA9)引脚给其它外设使用,此例程将PA9释放给USART使用。
  7. 示例代码部分展示,打开USB_VBUS_IGNORE宏定义:
    /**
  • @brief ignore vbus detection, only available in at32f415xx revision C.
  • at32f415xx revision B: (not support)
  • the vbus detection pin (pa9) can not be used for other functionality.
  • vbus pin must kept at VBUS or VDD.
  • at32f415xx revision C: (support)
  • ignore vbus detection, the internal vbus is always valid.
  • the vbus pin (pa9) can be used for other functionality
    */
    #define USB_VBUS_IGNORE
  1. 使用此例程时,将例程下载到目标板,然后将OTG接口与PC连接即可,USB连接上主机之后,可观察到USB和USART都能正常收发数据。
    功能 2 示例使用(端点 3,4 同时使用)
    1)打开 project\at_start_f415\examples\usb_device\ custom_hid_funtion2 源程序,编译后下载到实验板
    2)实验使用AT-START-F415开发板
    3)此例程展示了如何在AT32F415C使用端点号4的功能,使用 project\at_start_f415\examples\usb_device\ Artery_UsbHid_Demo_V1.0.1 上位机进行通信测试。
    4)如下是USB抓包结果:OUT使用端点3, IN使用端点4
    在这里插入图片描述

产品上硅版本号标示
下图显示了AT32F415芯片上硅版本标示的位置,标出的部分是R (Revision Code)的第1碼。
’C’表示該芯片硬件版本為硅版本C。
在这里插入图片描述

### 关于 STM32F070CB 的资料与教程 STM32F070CB 是基于 ARM Cortex-M0 内核的低功耗微控制器,属于 STM32F0 系列的一部分。以下是关于此微控制器的相关资源汇总: #### 1. **数据手册** 官方提供了详细的 STM32F070CB 数据手册 (Datasheet),其中涵盖了芯片的技术规格、电气特性以及引脚定义等内容。可以通过 ST 官方网站获取最新的数据手册[^2]。 #### 2. **参考手册** 除了数据手册之外,还需要查阅 STM32F0 系列的参考手册 (Reference Manual)。它详细描述了 MCU 的内部架构、寄存器配置方法以及其他硬件细节。对于开发人员来说,这是非常重要的参考资料之一[^3]。 #### 3. **固件库和支持工具** 为了简化应用开发过程,意法半导体推出了标准外设库 (Standard Peripheral Library) 和 HAL 库 (Hardware Abstraction Layer) 来支持不同系列的 STM32 微控制器。虽然引用中提到的是针对 STM32F1/F2/F4 的 OTG 驱动库[^1],但对于 F0 系列也有相应的软件包可供使用。例如: - `STM32CubeF0` 提供了一个全面的中间件集合和示例项目,适用于包括 STM32F070CB 在内的多个型号。 可以访问以下链接下载适合的版本:[STM32CubeMX](https://www.st.com/en/development-tools/stm32cubemx.html) #### 4. **在线学习资源** 网络上存在大量有关 STM32 学习的文章和视频课程。一些推荐的学习平台如下: - YouTube 上有许多专注于嵌入式系统的频道分享如何设置环境并编写第一个程序的教学视频; - 博客论坛像 EEWeb 或者 Embedded Lab 中也可能找到具体案例分析和技术讨论; 另外值得注意的是,在实际操作前应仔细阅读相关文档以确保理解所有必要的概念和步骤。 ```python // 示例代码片段展示如何初始化 GPIO 引脚作为输出模式 #include "stm32f0xx.h" void GPIO_Init(void){ RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // Enable clock access to Port A GPIOA->MODER &= ~(GPIO_MODER_MODE5_Msk); // Clear bits first GPIOA->MODER |= (1 << (5*2)); // Set pin PA5 as output mode } int main(){ GPIO_Init(); while(1){ GPIOA->ODR ^= (1<<5); // Toggle state of LED connected at PA5 every loop iteration } } ``` 上述代码展示了如何通过修改寄存器来控制一个简单的LED闪烁功能。这只是一个基础例子,更多复杂的功能实现则依赖于深入研究各个模块的工作原理及其对应API调用方式。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值