基于STM32L476开发板的USB音频设备
现代音频设备中有很多知识产权。 我想研究创建一个与手机交互的算法设备(运行non-trivial算法的嵌入式设备)。 我发现创建一个Lightning设备比创建一个连接到Android手机的的USB设备要复杂的多,所以本文将采用USB设备的方式。
像ST这样的大型微控制器厂商都有带USB功能的产品线,并且提供一些例子和库来降低学习USB的难度。 自加入Jawbone以来,我一直在学习STM32微控制器,所以我会坚持使用STM32产品的ARM Cortex M4线。 我相信所有新的算法项目应该从一个具有浮点能力的平台开始。我特别喜欢STM32L4,因为它还是一个低功耗的微控制器。 我下载了L4产品线的STM32Cube FW示例和SDK,并且找到了一些STM32L476G评估板的USB设备应用程序FW示例 - 如HID_Standalone项目。
我已经有一个NUCLEO-L476RG开发板,控制器采用STM32L476RG,支持USB FS(全速:12 Mbps)。 我将要把这个开发板变成一个USB立体声输入和输出音频设备。 USB FS带宽限制将采样率限制为48 kHz(作为比较,CD采样率为44.1 kHz,高质量音频采样率为96 kHz或192 kHz)。 USB FS带宽远远大于低功率无线射频带宽(例如,对于BLE为〜1Mbps,对于NFMI为596Kbps)。
如何将NUCLEO-L476开发板变成USB设备
和昂贵的STM32L476G-EVAL评估板不同的是,NUCLEO开发板没有USB插座,以及分布在STM32L476G-EVAL板的DP / DM线上的漂亮的EMI / ESD滤波器。 不过至少所有的USB功能都被引出了,如下图所示。

● D +和D-位于PA12和PA11。
● 在设备模式下,VBUS(PA9)可以连接到Vbus(5V)以检测Vbus(和片上电压比较器一起)或者连接到电池充电检测器。 这对于使用USB充电的电池供电的设备可能是有用的,但是我只是尝试制作一个完全由手机USB供电的USB设备。 当收发器处于活动状态时,PA9将被置为无效,因此可能能够驱动USB活动的某些指示。
● 微控制器可以在帧的开始处拉低SOF引脚(PA8) - 用于与外部芯片同步(在高性能应用中,如音频)。
● U5V引脚是5V USB总线电压,当它连接到USB主机时为整个开发板提供电源,如在STM32L476G-eval板的原理图中所示,显示了USB总线VCC直接连接到U5V引脚。
原文链接:https://www.yiboard.com/thread-654-1-1.html
基于STM32L476开发板的USB音频设备的更多相关文章
- 荣品四核4412开发板的USB摄像头问题
RP4412开发板是荣品电子研发的一款三星四核Exynos4412评估板开发板,支持WIFI+LAN上网.蓝牙4.0.4G上网.500万自动对焦摄像头.GPS.网卡.音频,1080P HDMI音视频同 ...
- 基于uFUN开发板和扩展板的联网校准时钟
项目概述 上周在uFUN试用群里看到管理员说试用活动快结束了,要抓紧完成评测总结,看大家的评测总结也都写了,我也不能落后啊!正好最近做的扩展板到手了,于是赶紧进行调试,做了一个不用校准的时钟,时钟这种 ...
- 基于uFUN开发板的RGB调色板
前言 使用uFUN开发板配合Qt上位机,实现任意颜色的混合,Qt上位机下发RGB数值,范围0-255,uFUN开发板进行解析,然后输出不同占空比的PWM,从而实现通过RGB三原色调制出任意颜色. Qt ...
- 基于uFUN开发板的心率计(三)Qt上位机的实现
前言 上两周利用周末的时间,分别写了基于uFUN开发板的心率计(一)DMA方式获取传感器数据和基于uFUN开发板的心率计(二)动态阈值算法获取心率值,介绍了AD采集传感器数据和数据的滤波处理获取心率值 ...
- 基于uFUN开发板的心率计(二)动态阈值算法获取心率值
前言 上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析.心率计,重要的是要获取到心率值,本篇文章 ...
- 基于 Arduino 开发板,这款插座是可编程且开源的
基于 Arduino 开发板,这款插座是可编程且开源的 https://www.oschina.net/news/74861/open-source-socket https://github.com ...
- 【RTOS】基于V7开发板的uCOS-III,uCOS-II,RTX4,RTX5,FreeRTOS原版和带CMSIS-RTOS V2封装层版全部集齐
RTOS模板制作好后,后面堆各种中间件就方便了. 1.基于V7开发板的最新版uCOS-II V2.92.16程序模板,含MDK和IAR,支持uC/Probe https://www.cnblogs.c ...
- 基于Neptune开发板的键盘蓝牙模块DIY指南
目录: 1.下载开发板程序2.安装USB串口(CH340)驱动3.安装烧写工具4.烧写开发板程序 本期我们带来基于润和Neptune开发板(以下简称Neptune开发板)的键盘蓝牙模块DIY指南,利用 ...
- 小白自制Linux开发板 七. USB驱动配置
本文章基于https://whycan.com/t_3087.htmlhttps://whycan.com/t_6021.html整理 F1c100s芯片支持USB的OTG模式,也就是可以通过更改Us ...
随机推荐
- 【转】行内元素和inline-block产生的水平空隙bug
重构工程师们在设计代码时,有喜欢手动删除行内元素之间产生的额外空隙,并通过设置margin或padding来获取想要间距吗?如代码: <div class=“”><span clas ...
- Python3之内建模块datetime
datetime datetime是python处理日期和时间的标准库 获取当前日期和时间 >>> from datetime import datetime #获取当前的datet ...
- Cas(03)——Cas Server中各配置文件介绍
Cas Server中各配置文件介绍 Cas Server中所有的配置文件都是放在WEB-INF目录及其子目录下的. 在WEB-INF/classes下的配置文件有: l cas-theme-def ...
- CentOS 7/6系统升级内核版本到5.2.2
由于公司服务器新业务需要,需要将CentOS 7系统的内核(3.10.0-229)进行升级. 关于内核版本的定义:版本性质:主分支ml(mainline),稳定版(stable),长期维护版lt(lo ...
- JavaScript图形实例:图形的旋转变换
旋转变换:图形上的各点绕一固定点沿圆周路径作转动称为旋转变换.可用旋转角表示旋转量的大小. 旋转变换通常约定以逆时针方向为正方向.最简单的旋转变换是以坐标原点(0,0)为旋转中心,这时,平面上一点P( ...
- AVIator -- Bypass AV tool
前提概要 项目地址:https://github.com/Ch0pin/AVIator AV:全名为AntiVirus,意指为防病毒软件 AVIator是一个后门生成器实用程序,它使用加密和注入技术来 ...
- P1993 小K的农场(差分约束)
小K的农场 题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b至少多种植了 ...
- ucore 源码剖析
lab1 源码剖析 从实模式到保护模式 初始化ds,es和ss等段寄存器为0 使能A20门,其中seta20.1写数据到0x64端口,表示要写数据给8042芯片的Output Port;seta20. ...
- LeetCode 112. 路径总和(Path Sum) 10
112. 路径总和 112. Path Sum 题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节 ...
- spring 整合guava
一.ApplicationContext.xml中的配置 <!--开启缓存注解--> <cache:annotation-driven /> <bean id=" ...