input keyevent 24
1|console:/sdcard # cat /proc/asound/cards
console:/sdcard # ls -l /dev/snd/
【需要打开Android13内置的音乐应用才会有声音出来,原因未知!】
1|console:/sdcard # tinyplay /sdcard/Music/kiss8.wav -D 1 -d 0
20250917在荣品RD-RK3588-MID开发板的Android13系统下使用tinyplay播放wav格式的音频
2025/9/17 20:37
缘起:板子的音频/喇叭部分是按照荣品RD-RK3588-MID开发板设计的,但是没有声音。
排除了静音了/声音过小。
播放网页视频/wav音频都没有声音。
后来才定位到是耳机检测引脚GPIO1C4恒定为低,开机RK3588就认为是耳机模式了!
喇叭肯定没有声音了。
Y:\MID_MX_RK3588_android13-20250818\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588\rp-audio-rt5640.dtsi
/ {
rt5640-sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,name = "rockchip,rt5640-codec";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,widgets =
"Microphone", "Mic Jack",
"Headphone", "Headphone Jack";
simple-audio-card,routing =
"Mic Jack", "MICBIAS1",
"IN1P", "Mic Jack",
"Headphone Jack", "HPOL",
"Headphone Jack", "HPOR";
simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
simple-audio-card,codec {
sound-dai = <&rt5640>;
};
};
// 2025/9/17 20:09 wenyuanbo add Close headset for LoudSpeaker
// rk_headset: rk-headset {
// status = "okay";
// compatible = "rockchip_headset";
// headset_gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
// pinctrl-names = "default";
// pinctrl-0 = <&hp_det>;
// };
};
&i2s0_8ch {
status = "okay";
};
&i2c7 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c7m0_xfer>;
rt5640: rt5640@1c {
#sound-dai-cells = <0>;
compatible = "realtek,rt5640";
reg = <0x1c>;
clocks = <&mclkout_i2s0>;
clock-names = "mclk";
realtek,in1-differential;
pinctrl-names = "default";
pinctrl-0 = <&i2s0_mclk>;
io-channels = <&saradc 4>;
hp-det-adc-value = <500>;
spk-play-volume = <7>; ////63-0 min-max
hp-play-volume = <15>; ////63-0 min-max
capture-volume = <127>; //0-127 min-max
assigned-clocks = <&mclkout_i2s0>;
assigned-clock-rates = <12288000>;
};
};
// 2025/9/17 20:09 wenyuanbo add Close headset for LoudSpeaker
//&pinctrl {
// rt5640_pinctrl {
// hp_det:hp_det {
// rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
// };
// };
//};
【ADB】播音的LOG:
Microsoft Windows [版本 10.0.19045.6216]
(c) Microsoft Corporation。保留所有权利。
C:\Users\QQ>adb shell
rk3588_t:/ $ su
rk3588_t:/ # input keyevent 24
rk3588_t:/ # cat /proc/asound/cards
0 [rockchipdp0 ]: rockchip-dp0 - rockchip-dp0
rockchip-dp0
1 [rockchiprt5640c]: rockchip_rt5640 - rockchip,rt5640-codec
rockchip,rt5640-codec
2 [rockchiphdmi0 ]: rockchip-hdmi0 - rockchip-hdmi0
rockchip-hdmi0
rk3588_t:/ # ls -l /dev/snd/
total 0
crw-rw---- 1 system audio 116, 3 2025-09-10 19:21 controlC0
crw-rw---- 1 system audio 116, 6 2025-09-10 19:21 controlC1
crw-rw---- 1 system audio 116, 8 2025-09-10 19:21 controlC2
crw-rw---- 1 system audio 116, 2 2025-09-10 19:21 pcmC0D0p
crw-rw---- 1 system audio 116, 5 2025-09-10 19:21 pcmC1D0c
crw-rw---- 1 system audio 116, 4 2025-09-10 19:21 pcmC1D0p
crw-rw---- 1 system audio 116, 7 2025-09-10 19:21 pcmC2D0p
crw-rw---- 1 system audio 116, 33 2025-09-10 19:21 timer
rk3588_t:/ # tinyplay /sdcard/Music/kiss8.wav -D 1 -d 0
Playing sample: 2 ch, 44100 hz, 16 bit 53268480 bytes
rk3588_t:/ # cd /sdcard/M
Movies/ Music/
rk3588_t:/ # cd /sdcard/Music/
rk3588_t:/sdcard/Music # ls -l
total 56748
-rw-rw---- 1 u0_a94 media_rw 4835832 2025-06-14 11:09 kiss8.mp3
-rw-rw---- 1 u0_a94 media_rw 53268598 2025-09-17 17:26 kiss8.wav
rk3588_t:/sdcard/Music # tin
tinycap tinymix tinypcminfo tinyplay
rk3588_t:/sdcard/Music # tinyp
tinypcminfo tinyplay
rk3588_t:/sdcard/Music # tinyplay k
kiss8.mp3 kiss8.wav
rk3588_t:/sdcard/Music # tinyplay kiss8.mp3
Error: 'kiss8.mp3' is not a riff/wave file
1|rk3588_t:/sdcard/Music #
1|rk3588_t:/sdcard/Music # tiny
tinycap tinymix tinypcminfo tinyplay
1|rk3588_t:/sdcard/Music # tinyplay ki
kiss8.mp3 kiss8.wav
1|rk3588_t:/sdcard/Music # tinyplay kiss8.wav
Playing sample: 2 ch, 44100 hz, 16 bit 53268480 bytes
^Crk3588_t:/sdcard/Music #
rk3588_t:/sdcard/Music # tinyplay kiss8.wav -D 1
Playing sample: 2 ch, 44100 hz, 16 bit 53268480 bytes
rk3588_t:/sdcard/Music # tinyplay kiss8.wav -D 1 d 0
Playing sample: 2 ch, 44100 hz, 16 bit 53268480 bytes
查询rt5640声卡的I2C挂载:
rk3588_t:/ # i2cdetect -y 7
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
rk3588_t:/ #
rk3588_t:/ # i2cdump -y 7 0x1C
i2cdump: ioctl 703: Device or resource busy
1|rk3588_t:/ #
1|rk3588_t:/ # i2cdump -y -f 7 0x1C
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 00 c7 0f c8 80 00 00 00 00 00 00 00 00 00 00 08 .????..........?
10: 00 00 00 00 00 00 00 00 00 af af 00 2f 7f 00 00 .........??./?..
20: 00 00 00 00 00 00 00 70 70 80 14 54 aa 00 0c 00 .......pp??T?.?.
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
40: 00 00 00 00 00 00 00 00 f8 38 00 00 fc 00 00 01 ........?8..?..?
50: 00 00 01 f0 00 00 00 00 00 00 00 00 00 00 00 00 ..??............
60: 00 98 00 e8 00 c0 0c 00 00 00 00 00 04 00 00 00 .?.?.??.....?...
70: 80 80 80 01 0c 1d 00 00 00 00 00 00 00 00 00 00 ??????..........
80: 00 00 00 00 00 00 00 00 00 00 00 06 02 a0 00 11 ...........???.?
90: 07 0e 00 30 00 00 00 00 00 00 00 00 00 00 00 00 ??.0............
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
b0: 20 00 00 00 22 1f 00 00 03 00 00 00 00 00 00 00 ..."?..?.......
c0: 04 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 ?..... .........
d0: 06 1c 8c aa 00 00 04 00 00 08 00 00 00 00 00 00 ????..?..?......
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
f0: 00 00 00 00 00 00 00 00 00 00 3f 40 00 00 10 62 ..........?@..?b
rk3588_t:/ #
rk3588_t:/ # cd /sys/class/i2
i2c-adapter/ i2c-dev/
rk3588_t:/ # cd /sys/class/i2c-adapter/i2
i2c-0/ i2c-1/ i2c-10/ i2c-2/ i2c-4/ i2c-6/ i2c-7/ i2c-8/ i2c-9/
rk3588_t:/ # cd /sys/class/i2c-adapter/i2c-7
rk3588_t:/sys/class/i2c-adapter/i2c-7 # ls -l
total 0
drwxr-xr-x 3 root root 0 2025-09-17 16:47 7-001c
--w------- 1 root root 4096 2025-09-17 16:51 delete_device
lrwxrwxrwx 1 root root 0 2025-09-17 16:51 device -> ../../fec90000.i2c
drwxr-xr-x 3 root root 0 2025-09-17 16:47 i2c-dev
-r--r--r-- 1 root root 4096 2025-09-17 16:51 name
--w------- 1 root root 4096 2025-09-17 16:51 new_device
lrwxrwxrwx 1 root root 0 2025-09-17 16:51 of_node -> ../../../../firmware/devicetree/base/i2c@fec90000
drwxr-xr-x 2 root root 0 2025-09-17 16:47 power
lrwxrwxrwx 1 root root 0 2025-09-17 16:51 subsystem -> ../../../../bus/i2c
-rw-r--r-- 1 root root 4096 2025-09-17 16:47 uevent
-r--r--r-- 1 root root 4096 2025-09-17 16:51 waiting_for_supplier
rk3588_t:/sys/class/i2c-adapter/i2c-7 # cd 7-001c
rk3588_t:/sys/class/i2c-adapter/i2c-7/7-001c # ls -l
total 0
lrwxrwxrwx 1 root root 0 2025-09-17 16:51 driver -> ../../../../../bus/i2c/drivers/rt5640
-r--r--r-- 1 root root 4096 2025-09-17 16:51 modalias
-r--r--r-- 1 root root 4096 2025-09-17 16:51 name
lrwxrwxrwx 1 root root 0 2025-09-17 16:51 of_node -> ../../../../../firmware/devicetree/base/i2c@fec90000/rt5640@1c
drwxr-xr-x 2 root root 0 2025-09-17 16:47 power
lrwxrwxrwx 1 root root 0 2025-09-17 16:51 subsystem -> ../../../../../bus/i2c
lrwxrwxrwx 1 root root 0 2025-09-17 16:51 supplier:platform:fd58c318.mclkout-i2s0 -> ../../../../virtual/devlink/platform:fd58c318.mclkout-i2s0--i2c:7-001c
lrwxrwxrwx 1 root root 0 2025-09-17 16:51 supplier:platform:pinctrl -> ../../../../virtual/devlink/platform:pinctrl--i2c:7-001c
-rw-r--r-- 1 root root 4096 2025-09-17 16:47 uevent
rk3588_t:/sys/class/i2c-adapter/i2c-7/7-001c # cat name
rt5640
rk3588_t:/sys/class/i2c-adapter/i2c-7/7-001c #
rk3588_t:/sys/class/i2c-adapter/i2c-7/7-001c # reboot -p
Done
rk3588_t:/sys/class/i2c-adapter/i2c-7/7-001c #
E:\DOCX9\声音>
参考资料:
由于大家都拿到的常见音频格式为mp3,但是tinyplay只支持wav格式。
在线免费的mp3转wav网站:
https://convertio.co/zh/mp3-wav/
https://convertio.co/zh/epub-docx/
1|console:/sdcard # cat /proc/asound/cards
console:/sdcard # ls -l /dev/snd/
1|console:/sdcard # tinyplay kiss8.wav -D 0 -d 0
https://blog.csdn.net/wb4916/article/details/149885045?spm=1011.2415.3001.5331
20250803让飞凌OK3576-C开发板在Rockchip的原厂Android14下适配声卡NAU88C22YG【Android部分】
https://blog.csdn.net/wb4916/article/details/135632136?spm=1011.2415.3001.5331
20240116使用Firefly的AIO-3399J的预编译的Android10固件确认RT5640声卡信息
百度:rk3588 耳机检测
input keyvent 音量+
https://blog.csdn.net/u011774634/article/details/137873834?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Ebaidujs_baidulandingword%7ECtr-5-137873834-blog-144431586.235%5Ev43%5Epc_blog_bottom_relevance_base5&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Ebaidujs_baidulandingword%7ECtr-5-137873834-blog-144431586.235%5Ev43%5Epc_blog_bottom_relevance_base5&utm_relevant_index=10
RK3588 Android12 拔出耳机后一段时间后系统才检测到耳机拔出的状态
https://blog.csdn.net/u011774634/article/details/137873834
原因:
耳机检测引脚HP_DET的上拉电阻阻值过大,因硬件设计耳机未插入时HP_DET为高电平,耳机插入后为低电平。当把耳机拔出后HP_DET由低电平转为高电平所需的时间较长(几十秒),所以系统在耳机拔出后一段时间后才检测到拔出事件。
https://blog.csdn.net/STM32TSZ/article/details/138584992
Linux-笔记 i2c-tools
4. i2cdump
(1)查看i2c设备所有寄存器的值,输入命令i2cdump -y -f 1 0x51
-y 取消交互过程,直接执行命令
-f 强制访问该设备
1 表示i2c总线编号
0x51 表示i2c设备地址
https://www.cnblogs.com/MrNull/p/14279118.html
adb shell按键操作(input keyevent)
每个数字与keycode对应表如下:
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"