This commit is contained in:
PhatenIoT-yan
2026-03-09 16:50:37 +08:00
parent 14544eccd3
commit e469ee0144
55 changed files with 4539 additions and 417 deletions

View File

@@ -72,6 +72,52 @@ keywords: A316固件开发, XU316通信问题, USB设备供电, 固件开发FAQ,
</div>
### Q3: 底板上电后XMOS-A316模组未发送任何命令
<div class="grid" markdown>
=== "问题现象"
- 底板上电后XMOS-A316模组没有通过串口发送命令
=== "可能原因"
1. 供电异常
- 底板未给模组供电
- 焊接不牢固
2. 硬件连接问题
- 串口引脚连接错误
=== "排查步骤"
1. 测量电压
- 检查模组的 0.9V、1.8V、3.3V 电压是否正常
2. 检查电源能力
- 0.9V 要求 1A 以上
- 3.3V/1.8V 要求 300mA 以上
3. 检查IO连接
- 对照硬件参考设计排查IO连接
- 对照规格书确认IO定义
</div>
### Q4: XMOS-A316模组偶尔发送 0x00 命令
<div class="grid" markdown>
=== "问题现象"
- 模组通过串口偶尔发送 0x00 命令
=== "问题分析"
1. 供电不稳定
- 供电问题导致模组重启
2. 异常重启机制
- 模组仅在两种情况下发送 0x00
- 上电启动时发送4次
- 切换不支持的输入/输出模式导致失败重启后
=== "解决方案"
- 检查底板给模组的供电稳定性
</div>
## 设备识别问题
### Q1: 设备在PC上正常识别和播放但手机无法识别设备
@@ -99,6 +145,138 @@ keywords: A316固件开发, XU316通信问题, USB设备供电, 固件开发FAQ,
</div>
## 协议与命令交互
### Q1: 0x00~0x05 初始化命令的注意事项
<div class="grid" markdown>
=== "通信原则"
- 必须遵循“有收必有发”原则
- 模组主动发送命令后必须收到MCU的回复才会继续发送后续命令
=== "0x00命令详解"
- **触发时机**:模组上电后发送
- **发送频率**连续发送4次间隔300ms
- **MCU响应**必须在4次发送结束前回复否则模组将判定启动失败进入默认模式
</div>
### Q2: 如何修改设备信息 (0x01命令)
<div class="grid" markdown>
=== "操作说明"
- 严格按照协议文档格式发送
- 推荐使用官方提供的串口协议测试脚本进行测试和生成命令
- 脚本包含输入设备信息的功能,可供参考
</div>
### Q3: 启动后为何未收到 0x20 命令
<div class="grid" markdown>
=== "原因说明"
- 0x20 命令目前未应用到当前固件中,因此不会发送。
</div>
### Q4: 0x22 命令为何自动发送
<div class="grid" markdown>
=== "功能说明"
- **作用**:返回当前音频流格式
- **触发机制**
- 启动成功后 1秒内无操作自动发送
- 切换输入/输出模式后 1秒内自动发送
</div>
## 模式切换与音频控制
### Q1: 0x23 切换输入/输出模式注意事项
<div class="grid" markdown>
=== "注意事项"
1. **确认固件支持**
- 发送前确认固件支持该模式(参考固件介绍或测试脚本)
- 发送不支持的模式会导致模组重启
2. **握手流程**
- MCU发送 0x23 (切换模式)
- 模组返回 0x23 并发送 0x04 (请求确认)
- MCU回复 0x04 (确认模式) -> **注意模式值必须一致**
- 模组发送 0x05 (模式切换完成)
</div>
### Q2: 切换模式后无声或无数据输出
<div class="grid" markdown>
=== "排查步骤"
1. **检查通信**
- 确认是否收到模组的返回命令,确保切换成功
2. **检查硬件**
- 对照固件介绍,检查输入/输出模式对应的引脚连接如IIS/DSD引脚
</div>
### Q3: 切换模式时出现静音或断续
<div class="grid" markdown>
=== "原因分析"
- MCU未收到回复而重复发送切换命令
- 切换过程中的信号不稳定
=== "建议方案"
- 切换模式前拉低 Mute 脚(静音)
- 确认切换成功后拉高 Mute 脚(恢复输出)
</div>
### Q4: 0x21 音量控制命令无效
<div class="grid" markdown>
=== "控制逻辑"
- **0x21 作用**:控制 PC 端系统音量(通过 HID
- **流程**
1. MCU 发送 0x21 -> 模组
2. 模组 -> PC (HID音量调节)
3. PC 音量变化 -> 模组
4. 模组 发送 0x24 -> MCU
5. MCU 接收 0x24 后调节实际 DAC/功放音量
- **结论**:不能直接用 0x21 调节 DAC 音量,需处理 0x24 回调。
</div>
## 其他功能咨询
### Q1: 固件是否支持 MQA 格式
<div class="grid" markdown>
=== "说明"
- **支持版本**:带 "Q" 后缀的固件(如 xxxx_Q.bin
- **不支持版本**:不带 "Q" 后缀的固件
</div>
### Q2: 模组使用内部时钟还是外部时钟
<div class="grid" markdown>
=== "说明"
- **默认**:使用内部时钟
- **切换**:可通过 0x26 命令切换为外部时钟
- **限制**SPDIF-IN 模式下只能使用内部时钟
</div>
## 咨询反馈
<details>
<summary>点击展开咨询反馈表单</summary>

View File

@@ -0,0 +1,49 @@
问题1底板上电后XMOS-A316模组没有通过串口发送命令出来。
回答:这可能是以下几种情况导致的:
1.底板没有给 XMOS-A316模组 供上电。这个情况可能是焊接不牢固或者硬件设计有关。
2.串口引脚没有接好。
排查:
1.先测量模组的 0.9V 、1.8V 、3.3V 电压是否正常,不正常检查供电部分电路。
2.查看 供电部分dc-dc 电流能力是否满足如0.9V 要求 1A以上3.3V/1.8V 要求 300mA 以上。
3.对比硬件参考设计排查IO连接是否正常。
4.对照规格书查看IO 是否与定义一致。
问题2底板上电后XMOS-A316模组通过串口 会偶尔发送 0x00 命令。
回答偶尔发送0x00命令的话应该是底板给XMOS-A316模组供电不问题导致的。
XMOS-A316模组只有在两种情况下会发送0x00命令
1.XMOS-A316模组上电的时候会发送4次0x00命令
2.XMOS-A316模组发送0x23命令切换输入/输出模式的时候,当前的固件没有这个输入/输出模式的时候会切换失败然后就重启紧接着发送4次0x00命令
问题30x01命令应该怎样修改设备信息这个命令有什么要求吗
回答:这个命令就按照协议文档上进行发送就可以,如果不知道怎么发送,可以用我们网站上提供的串口协议测试脚本,上面提供了输入设备信息的功能,运行后可以参考那里面收发的命令。
问题4当前固件是否支持MQA格式的音频
回答网站上的固件都有对应的支持MQA格式音频的固件带Q的固件和不支持MQA格式音频的固件不带Q的固件
问题50x00这个命令MCU返回的时候有什么注意事项
回答0x00这个命令是XMOS-A316模组上电后发送的上电后会连续发送4次每次间隔300msMCU要在这4次内返回对应的命令否则会上电未成功进入到默认模式中。
问题60x00~0x05命令的通讯有什么注意事项吗
回答00~05的命令都必须遵循有收必有发的原则。XMOS-A316模组主动发送的MCU要返回对应的命令给XMOS-A316模组后XMOS-A316模组才会继续发送后面的命令。
问题7为什么MCU发送0x05命令完成启动后却没有看到XMOS-A316模组发送0x20命令发送出来
回答0x20命令目前没有应用到固件中。
问题8在发送0x23切换输入/输出模式命令的时候,需要注意那些地方?
回答:
1.要先确认当前XMOS-A316模组中烧录的固件有哪些模式这个可以参考网站上的固件介绍也可以使用网站上提供的串口协议测试脚本。如果发送当前固件不存在的模式的0x23命令XMOS-A316模组会重启。
2.XMOS-A316模组接收到MCU发送的模式对应的0x23命令后会返回0x23命令并发送0x04命令这时候MCU要返回0x04命令之后XMOS-A316模组会返回对应模式的0x05命令。
3.MCU发送的0x04中的模式要与0x23中的模式一致。
问题9切换输入/输出模式后没有声音出来data0也没有数据输出。这是怎么回事
回答:
1.切换模式没有切换成功需要看一下串口命令的收发是否收到了XMOS-A316模组的返回命令。
2.输入/输出模式对应的引脚没有接对,需要对比一下网站上的固件介绍。
问题10切换输入/输出模式后,有时候会有一段时间的静音,有时候会断断续续的。
回答这种情况可能是MCU设定了未接收到某个命令后重新或者重复发送切换模式的命令导致的。建议切换模式的时候将XMOS-A316模组的mute脚拉低等到模式确认切换成功后再将mute脚拉高使其正常输出信号。
问题11XMOS-A316模组使用的是内部时钟还是外部时钟
回答XMOS-A316模组默认使用内部时钟也可以接外部时钟然后用0x26命令进行切换。
spdif-in的几个模式只能使用内部时钟。
问题12为什么0x21媒体控制命令里面的音量调节只能调节PC端的音量条不能实际控制音量大小
回答0x21媒体控制这个命令的具体流程是MCU发送0x21给316316收到指令后会转换为相应的HID命令发送给PC端PC端的音量变化后会发送对应的值给316316发送0x24命令给MCUMCU接收到0x24命令后去调节dac功放的音量。
问题130x22这个命令是怎么回事为什么会自动发送
回答0x22这个命令是返回音频流格式的命令具体的音频流格式可以去看网站上的说明XMOS-A316模组启动成功后若是1秒内不做任何操作就会自动发送这个命令。切换输入/输出模式后1秒内也会发送这个命令。