刚刚接触到DM8148处理器,最近使用McASP4接收音频芯片I2S接口传来的数字音频信号。可是发现DVRRDK4.0提供的内核中并没有提供McASP4的驱动。我自己添加了一些寄存器的配置,可是不能正常工作,请问能不能提供McASP4的驱动或者一些指导和帮助?
Chris Meng:
你好,
请问你是否有参考下面链接的信息?
http://processors.wiki.ti.com/index.php/TI81xx_PSP_Porting_Guide#Audio_driver_.28McASP.29
Tery lee:
回复 Chris Meng:
你好,我看了这份资料,可是觉得介绍不够详细,这样只从介绍的方面模仿mcasp2,mcasp4并不能正常工作
Chris Meng:
回复 Tery lee:
你好,
请问你现在mcasp4是需要接收还是发送?目前具体的问题是什么?
我看了一下,mcasp4和mcaps0/1的区别是它没有ACLKR/AFSR,请问你是否配置ACLKXCTL.ASYNC=0?
Tery lee:
回复 Chris Meng:
你好,我是想McASP4只用来接收,音频数据来自I2S。ACLKXCTL.ASYNC=0已经配置了。
Chris Meng:
回复 Tery lee:
你好,
当ACLKXCTL.ASYNC=0的时候,接收的时钟/帧同步是由发送时钟/帧同步而来,所以我理解必须要发送接收同时做。你能否做一个无用的发送,看是否接收就工作正常了?
Tery lee:
回复 Chris Meng:
你好,
我使用的是tvp5158采集单路音频,使用的DVRRDK4.0版本,音频从tvp5158的I2S接口输出。tvp5158的I2S接口连接至DM8148的McASP4接口。目前我仿照McASP2添加了以下内容:
static struct resource ti81xx_mcasp4_resource[] = {
{.name = "mcasp",.start = TI81XX_ASP4_BASE, //#define TI81XX_ASP4_BASE 0x4A1A8000
.end = TI81XX_ASP4_BASE + (SZ_1K * 12) – 1,.flags = IORESOURCE_MEM,},/* TX event */{.start = TI81XX_DMA_MCASP4_AXEVT, //62 .end = TI81XX_DMA_MCASP4_AXEVT,.flags = IORESOURCE_DMA,},/* RX event */{.start = TI81XX_DMA_MCASP4_AREVT, //63 .end = TI81XX_DMA_MCASP4_AREVT,.flags = IORESOURCE_DMA,},};
ti814x_dma_rsv_chans[][2] {56, 6},
ti814x_dma_rsv_slots[][2] {56, 6}.
snd_platform_data ti8148_evm_snd_data = {
.tx_dma_offset = 0x4A1AB000,
.rx_dma_offset = 0x4A1AB000,
}
请问这样的配置正确吗,还有其他需要设置的地方吗?
Chris Meng:
回复 Tery lee:
你好,
我说的是调用驱动时候需要同时做采集和发送。
Tery lee:
回复 Chris Meng:
McASP4可以工作于从模式吗?也就是以Tvp5158输出的位时钟和帧时钟作为时钟(I2S)。连接方式是McASP4的ACLKX和AFSKX脚,连接Tvp5158的I2S位时钟和帧时钟引脚,tvp5158工作于主模式。谢谢!
Chris Meng:
回复 Tery lee:
你好,
McASP4应该可以做从的。数据手册里面只听到McASP4的引脚较少,但功能上没有减少。
The device McASP0 and McASP1 modules have up to 10 serial data pins, while McASP2, McASP3, McASP4, and McASP5 are limited to up to four serial data pins each.
fengfei lv:
你好,
我遇到和你一样的问题,不过我用的mcasp5,不知道你的问题解决没有?要是解决了,能否告知你的解决步骤,谢谢!