请问有大神会不会widora MT7688 驱动 NS4168 I2S声卡驱动, 用widora的固件库SDK
NS4168手册下载:NS4168.pdf
最近编辑记录 jimmy (2017-10-31 11:07:51)
离线
板子我们飞了一下线,外挂在现有的WM8690板子上,
现在可以WM8960和NS4168同时都可放音,
但是去掉WM8960后,就不work了。
离线
首先执行后台播放杂音:
root@Widora:~# aplay /dev/urandom &
根据MT7688手册,读寄存器:
root@Widora:~# devmem 0x10000a00
0xE1014040
最高位置0关闭了声音输出:
root@Widora:~# devmem 0x10000a00 32 0x61014040
最高位置1重新开启了声音输出:
root@Widora:~# devmem 0x10000a00 32 0xe1014040
离线
读出正在播放杂音时所有I2S寄存器:
root@Widora:~# devmem 0x10000a00
0xE1014040
root@Widora:~# devmem 0x10000a04
0x00000000
root@Widora:~# devmem 0x10000a08
0x00000000
root@Widora:~# devmem 0x10000a0c
0x00001003
root@Widora:~# devmem 0x10000a0c
0x00001003
root@Widora:~# devmem 0x10000a0c
0x00001003
root@Widora:~# devmem 0x10000a10
0x00001003
root@Widora:~# devmem 0x10000a14
0x00000000
root@Widora:~# devmem 0x10000a18
0x00000000
root@Widora:~# devmem 0x10000a20
0x00000000
root@Widora:~# devmem 0x10000a28
0x00000000
离线
不能I2S播放的寄存器值:
root@Widora:~# devmem 0x10000a00
0xE1014040
root@Widora:~# devmem 0x10000a0c
0x00000010
root@Widora:~# devmem 0x10000a10
0x00000000
离线
void i2s_dma_tx_init(i2s_config_type* ptri2s_config)
{
void i2s_dma_tx_handler(u32 dma_ch)
{
int i2s_dma_tx_transf_data(i2s_config_type* ptri2s_config, u32 dma_ch)
{
}
}
}
离线
我做过驱动MT7688 (widora neo 开发板) 驱动 PCM5102A 声卡的,也是没有I2C控制的, 直接I2S输入输出.
原理就是创建一张无需codec的虚拟声卡,然后把MT7688的i2s设置为master(非常重要!!!)
widora的代码驱动WM8960声卡, 声卡处于主模式, 时钟是WM8960提供给MT7688的,
如果用NS4168这种不能作为I2S master的声卡,一定要把mt7688改为master.
离线
歪朵拉开源硬件: https://widora.cn
淘宝: https://widora.taobao.com/
离线
离线
可能用到,好好好。
离线
我做过驱动MT7688 (widora neo 开发板) 驱动 PCM5102A 声卡的,也是没有I2C控制的, 直接I2S输入输出.
https://whycan.cn/files/members/3/QQ20180407173256.jpg
https://whycan.cn/files/members/3/QQ20180407173253.jpg
https://whycan.cn/files/members/3/QQ20180407173247.jpg
https://whycan.cn/files/members/3/QQ20180407173258.png
原理就是创建一张无需codec的虚拟声卡,然后把MT7688的i2s设置为master(非常重要!!!)
widora的代码驱动WM8960声卡, 声卡处于主模式, 时钟是WM8960提供给MT7688的,
如果用NS4168这种不能作为I2S master的声卡,一定要把mt7688改为master.
这操作够骚,学到了。
离线