[评测分享]
【RISC-V 全志-V821 PERF2B开发板评测试用试用体验】+ 声卡播放
#板卡评测
705 人阅读
|
0 人回复
|
2025-06-18
TA的每日心情 | 慵懒 2025-8-14 10:26 |
|---|
签到天数: 117 天 连续签到: 1 天 [LV.6]常住居民II
进士
- 积分
- 1966
|
本帖最后由 oxlm 于 2025-6-18 17:24 编辑
前言
看全志的介绍,V821比较适合用于做目前比较火的AI眼镜的主控平台(据说V881号称更加适合,但貌似还没出),因此就想从开发的角度确认一下该平台是否真的如宣传那样,可以满足AI眼镜最基础的需求。拿到板卡后,第一时间查找资料,但在查找的过程中,发现全志针对该平台开源的代码并未提供,因此前期无法直接进行底层开发,只能在上层的基础上进行操作体验,看看是否可以进行应用层业务逻辑开发。
声卡播放
播放前准备
播放资料准备
本来想推一个wav文件进去播放的,但是推送的时候,发现报错,提示v821内存不够,无法推送,因此尝试查找板卡自带的wav文件。这么一查找,还真找到了板卡有存测试用的wav文件,具体路径如下:
- root@(none):/mnt/extsd# ls -lah
- drwxrwxr-x 1 root root 0 Jan 1 00:03 .
- drwxrwxr-x 1 root root 0 Mar 1 2025 ..
- -rw-rw-r-- 1 root root 0 Mar 1 2025 .gitkeep
- -rw------- 1 root root 160.0K Jan 1 00:03 coredump-mkfs.jffs2-342-11-188
- -rw------- 1 root root 712.0K Jan 1 00:03 coredump-mkfs.jffs2-368-11-231
- -rw-r--r-- 1 root root 158.0K Jan 1 00:00 sample_ai_pcm.wav</div></article>
复制代码 另外,此板卡硬件上有一个TF卡座,拿一个TF卡格式化后插入TF卡槽,会发现TF卡被挂载到mnt/extsd路径下,也能通过adb push将文件推送进去,但是使用tinyplay播放时,会提示无法打开声卡,由于缺少板卡对应的tinyplay源码,暂时无法确定原因,需等拿到代码后再详细确认原因。
声卡确认
这点让我感觉比较懵,声卡里提示有I2S0声卡,但实际上硬件上并未接I2S0,感觉这个属于没有关干净的部分。
- root@(none):/# cat proc/asound/cards
- 0 [audiocodec ]: audiocodec - audiocodec
- audiocodec
- 1 [sndi2s0 ]: sndi2s0 - sndi2s0
- sndi2s0</div></article>
复制代码 全志释放的资料
目前看,官网上的信息应该还只是从PERF2板卡复制过来的,具体的内容,并未完全更新。至少音频部分的接口,官网资料写的是非常用的tinyplay,tinymix,tinycap这一套逻辑,而是arecord,amixer,aplay,实际上,板卡自带的程序并没有这套接口。
实际板卡适配的命令
tinymix
查询和设置目前系统提供的音频相关的配置接口的工具。也可以发现,目前板卡提供的接口并不算复杂,学习成本不算高
- root@(none):/mnt/extsd# tinymix --help
- usage: tinymix [options] <command>
- options:
- -h, --help : prints this help message and exists
- -v, --version : prints this version of tinymix and exists
- -D, --card NUMBER : specifies the card number of the mixer
- commands:
- get NAME|ID : prints the values of a control
- set NAME|ID VALUE : sets the value of a control
- controls : lists controls of the mixer
- contents : lists controls of the mixer and their contents
- root@(none):/mnt/extsd# tinymix contents
- Number of controls: 19
- ctl type num name value
- 0 ENUM 1 tx hub mode , OffOn
- 1 ENUM 1 rx sync mode , OffOn
- 2 ENUM 1 DAC DRC Mode , OffOn
- 3 ENUM 1 DAC HPF Mode , OffOn
- 4 ENUM 1 ADC DRC0 Mode , OffOn
- 5 ENUM 1 ADC HPF0 Mode , OffOn
- 6 ENUM 1 ADC DRC1 Mode , OffOn
- 7 ENUM 1 ADC HPF1 Mode , OffOn
- 8 ENUM 1 LINEOUT Output Select DIFFER, SINGLE
- 9 ENUM 1 ADDA Loop Mode , OffDAC-to-ADC
- 10 INT 1 DAC Volume 63 (range 0->63)
- 11 INT 1 DACL Volume 180 (range 0->255)
- 12 INT 1 ADC Volume 180 (range 0->255)
- 13 INT 1 LINEOUT Gain 27 (range 0->31)
- 14 INT 1 MIC Gain 31 (range 0->31)
- 15 BOOL 1 MIC Switch Off
- 16 BOOL 1 LINEOUT Switch On
- 17 BOOL 1 SPK Switch On
- 18 INT 1 Soft Volume Master 130 (range 0->255)</div></article>
复制代码 tinypcminfo
查询目前声卡的详细信息
- root@(none):/mnt/extsd# tinypcminfo
- Info for card 0, device 0:
- PCM out:
- Access: 0x000009
- Format[0]: 0x000444
- Format[1]: 00000000
- Format Name: S16_LE, S24_LE, S32_LE
- Subformat: 0x000001
- Rate: min=0Hz max=4294967295Hz
- Channels: min=1 max=1
- Sample bits: min=16 max=32
- Period size: min=64 max=32768
- Period count: min=1 max=8
- PCM in:
- Access: 0x000009
- Format[0]: 0x000444
- Format[1]: 00000000
- Format Name: S16_LE, S24_LE, S32_LE
- Subformat: 0x000001
- Rate: min=0Hz max=4294967295Hz
- Channels: min=1 max=1
- Sample bits: min=16 max=32
- Period size: min=64 max=32768
- Period count: min=1 max=8</div></article>
复制代码 tinycap
基本上可以认为是直接录音的命令。系统默认文件系统无法写入,无法录音,只能在TF卡挂在目录下进行录音操作,录音前需将 MIC Switch 设置到on状态。
- root@(none):/mnt/extsd# tinycap
- Usage: tinycap {file.wav | --} [-D card] [-d device] [-c channels] [-r rate] [-b bits] [-p period_size] [-n n_periods] [-t time_in_seconds]
- Use -- for filename to send raw PCM to stdout
- root@(none):/mnt/extsd# tinymix set "MIC Switch" 1
- root@(none):/mnt/extsd# tinycap test.wav -D 0 -d 0 -c 1 -r 16000 -b 16 -t 20
- Capturing sample: 1 ch, 16000 hz, 16 bit
- Captured 323584 frames</div></article>
复制代码 录音完成后,通过adb pull命令将录音文件导出,在使用audacity打开文件查看,发现已经录到音频文件。
tinyplay
播放音频的工具。使用以下命令,板卡靠近mic的喇叭出声,另一个喇叭暂时无法出声(看原理图写的是默认使用靠近mic的喇叭,另一个喇叭LINEOUT串的电容未贴(CA25 和CA10),因此无法出声,需要声,可以直接贴上两颗390nF的电容)
- root@(none):/mnt/extsd# tinyplay sample_ai_pcm.wav -D 0 -d 0 -c 2
- playing 'sample_ai_pcm.wav': 2 ch, 48000 hz, 16 bit</div></article>
复制代码 tinyplay_hub
暂时不清楚是什么功能,看帮助信息,其格式和tinyplay类似,但实际使用,并未出声什么的,而且命令运行后,没找到指令退出,只能进行系统断电才能终止运行。
- root@(none):/mnt/extsd# tinyplay_hub
- Usage: tinyplay_hub file.wav [-D card] [-d device] [-HD card_hub] [-Hd device_hub] [-p period_size] [-n n_periods]
- root@(none):/mnt/extsd# tinyplay_hub sample_ai_pcm.wav -D 0 -d 0 -c 2</div></article>
复制代码
总结
1. 从目前的使用看,开源代码上,板卡支持的声卡逻辑,基本上alsa那套逻辑,可以在板卡上跑起来,但使用TF卡方式进行播放,tinyplay就挂掉了,这个需要等拿到源码针对性查看。
2. 目前发现板载固件,插上tf卡开机,默认会跑到TF卡找系统,导致无法开机,暂时只能通过开机后插入TF卡的方式使用TF卡,也需等拿到代码后,更换uboot来解决。
|
|
|
|
|
|
|
|
|