|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我最近在搞uda1341音频芯片驱动!
现在能够很流畅地播放44k,16位,2声道的wav文件!
可是在播放22k,8位,1声道的wav文件时却有问题!
我初步估计是频率引起的!
但是我想请问各位大侠,在linux 2.4.18的内核中,有关uda1341驱动的采样格式是怎样实现的?
我在内核中配置如下:
static void init_s3c2410_iis_bus_txrx(void)
{
IISCON = 0;
IISMOD = 0;
IISFIFOC = 0;
/* lihgong: 下面是我自己需要的工作模式 */
/* HACK: 16bit/ channel, 都是這樣嗎? */
/* 8 KHz , 384fs */
IISPSR = (IISPSR_A(iispsr_value(S_CLOCK_FREQ, 22050))
| IISPSR_B(iispsr_value(S_CLOCK_FREQ, 22050))); /*8000*/
IISCON = (IISCON_RX_DMA /* Receive DMA service request */
|IISCON_TX_DMA /* Transmit DMA service request */
|IISCON_PRESCALE); /* IIS Prescaler Enable */
IISMOD = (IISMOD_SEL_MA /* Master mode */
| IISMOD_SEL_RX /* Receive mode */
| IISMOD_SEL_TX /* Transmit mode */
| IISMOD_CH_RIGHT /* Low for left channel */
| IISMOD_FMT_MSB /* MSB-justified format */
| IISMOD_BIT_16 /* Serial data bit/channel is 16 bit */
| IISMOD_FREQ_384 /* Master clock freq = 384 fs */
| IISMOD_SFREQ_32); /* 32 fs */
IISFIFOC = (IISFCON_TX_DMA /* Transmit FIFO access mode: DMA */
| IISFCON_RX_DMA /* Receive FIFO access mode: DMA */
| IISFCON_TX_EN /* Transmit FIFO enable */
| IISFCON_RX_EN); /* Receive FIFO enable */
IISCON |= IISCON_EN; /* IIS enable(start) */
}
在应用程序中也相应的配置了采样频率,采样位数和声道!
可是播放22k,8位,1声道的wav文件有噪音?
请大家指教! |
|