站内搜索
发作品签到
CH32 uac 2.0 usb声卡 + PCM1794
专业版

CH32 uac 2.0 usb声卡 + PCM1794

简介

对所有的烦恼说嗨嗨

简介:对所有的烦恼说嗨嗨

开源协议

GPL 3.0

创建时间:2026-04-08 22:50:42更新时间:2026-07-10 09:23:28

描述

说明

  • 抄了这个项目USB to I2S 异步时钟声卡,然后魔改了一通
  • 屏幕用的是 中景园 2.4寸 320x240 ST7789
  • 模电不太懂,dac板子瞎画的,能响就行
  • 描述符是基于fiio ka3改的,阉了usb fs下的uac1.0,为了1794把采样率限制在了192k,其实176k就已经有卡顿了
  • 成本又高,面积又大,费力不讨好,真是造不如买,纯折腾,还不如xmos或cm66xx方案
  • 外壳模型适配1.2mm的板厚
  • 谨以此作献给这个月奔3的自己

音量

描述符 FEATURE_UNIT 段写了设备自己可以管理音量,
主机只会把音量值set cur给设备,然后音频数据全部按原始大小传输,
设备收到后再放大或衰减,才有了那又贵又大只的pga2311

如果想画自己的dac,
要不改描述符,把那3个bmaControls全改成0(由主机衰减完再传输,设备不处理音量,但频谱图和电平表会变得很小);
要不也加上2311;
要不换别的音量控制ic然后改代码;
不然系统音量怎么调都是最大声。

另外,由设备管理音量,在linux下播放时修改音量会很卡,而原版ka3却没有这个情况
wireshark抓包显示setup状态阶段超时,windows下倒是很正常,
不深究了。

按钮

按钮和旋钮用作调音量、静音、播放、上下曲,都是走HID协议,
也就是说对音量的控制是先上报给电脑,电脑再setup回设备。
可惜无法控制全局,只能作用于自身,AI说可能是微软自带的驱动没有把设备视为键盘。
但上下曲倒是能作用于全局。

另外,开始播放之后主机就不轮询了,也有可能是mcu处理不过来(USBHS_UC_INT_BUSY)
因为播放之后sof中断也不太灵了,基本摆设,别焊了

LED

  1. led1 表示fifo剩余数据时长不足25ms,或者占用过1/3。
    播放时可能会闪,但只要声音没出现卡顿,那么fifo就肯定没上溢或下溢
    因为一旦发生下溢会重新凑够25ms数据才开始播放,人绝对听得出来
    这个25是我随便取的值,又兴趣自己改
  2. led2 表示静音
  3. led3+4,表示 0 16 24 32bit。

固件烧录

烧录软件放网盘,就不浪费阿嘉的硬盘了,或者自己官网找
https://pan.baidu.com/s/199uTdqNQfHfOBG3OpRoq2A?pwd=d7w2 提取码: d7w2

单片机

  • 两种方法都要把芯片内存分配改为 "128K ROM + 192K RAM"
  • 手册说有些批次的ch32不支持这种配置,那就自己想办法了
方法1 使用 WCH-Link 下载
  1. 连上WCH-Link
  2. 打开 WCH-LinkUtility,把 fw_mcu.hex 下载进去
方法2 使用 USB 下载
  1. boot0 上拉到 3.3V 后,插上电脑
  2. 安装 WCHISPTool,然后打开WCHISPStudio,把 fw_mcu.hex 下载进去
  3. 断开 boot0 的上拉

CPLD

  • 鉴于epm240涨了很多,所以顺便给ag也编译了一份固件
使用epm240
  1. 连上 USB Blaster
  2. 打开 QuartusProgrammer
  3. 把 fw_cpld epm240.pof 下载进去
使用ag256s
  1. 连上 USB Blaster
  2. 打开 supra,Tool->Program
  3. 把 "fw_cpld ag256s.prg" 下载进去,出错的话,Programming speed 可以适当调低点

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
1
z.stp
10
2
x.stp
10
3
c.stp
10

附件

序号文件名称下载次数
1
固件.7z
16
2
源码.7z
17
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航