找回密码
 立即注册

微信扫码登录

查看: 223|回复: 3

[Audio] Setup Audio Line-In to Speakers

[复制链接]

2

主题

3

回帖

32

积分

新手上路

积分
32
发表于 2024-9-18 05:13:21 | 显示全部楼层 |阅读模式
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: B91 Generic Starter Kit
驱动SDK版本: Telink_RDS_v323
Hello,


How can I setup audio 24bits 48k from the line-in to Speakers(DACs)?
I need setup the B91 Generic Starter Kit  to get audio from the Line-In to the the Audio output


//audio parameters
#define    AUDIO_BUFF_SIZE    4096
volatile unsigned short AUDIO_BUFF[AUDIO_BUFF_SIZE>>1] __attribute__((aligned(3))); ///Is it correct 3 instead 4 on aligment?


void Audio_user_init()
{
        audio_init(LINE_IN_TO_BUF_TO_LINE_OUT,AUDIO_48K,STEREO_BIT_24);
        audio_rx_dma_chain_init(DMA2,(unsigned short*)AUDIO_BUFF,AUDIO_BUFF_SIZE); /// is unsigned short  correct?
        audio_tx_dma_chain_init (DMA3,(unsigned short*)AUDIO_BUFF,AUDIO_BUFF_SIZE);


        audio_codec_dac_power_on(); // Is it required?
        audio_codec_adc_power_on(); // Is it required?
            audio_rx_dma_en(); // Is it required?
            audio_tx_dma_en(); // Is it required?

}


Also, Can I send the audio input simultanestly to speaker and save on memory?

Regards,
Heiner

2

主题

12

回帖

95

积分

版主

积分
95
发表于 2024-9-18 17:03:19 | 显示全部楼层

/*
* en   : 1-enable, 0-disable
* Gain : 0dB ~ -31dB(0x00~0x1f);
* ain  : 0-Left, 1-Right
*/
void side_tone_en(int en, uint8_t gain, uint8_t ain)
{
        if(en)
        {
                REG_ADDR8(0x1202d8) = 0x80 | (gain & 31);
                REG_ADDR8(0x1202a0) = 0x41;
                REG_ADDR8(0x1202a4) = ain ? 0x04 : 0x01;
                REG_ADDR8(0x1202a0) = 0x40;
                REG_ADDR8(0x1202a4) = 0x01;
                REG_ADDR8(0x1202a0) = 0x00;
        }
        else
        {
                REG_ADDR8(0x1202a0) = 0x40;
                REG_ADDR8(0x1202a4) = 0x00;
                REG_ADDR8(0x1202a0) = 0x00;
        }
}
可以通过上面这个函数把MIC的数据通过硬件直通的SPK

2

主题

12

回帖

95

积分

版主

积分
95
发表于 2024-9-18 17:05:01 | 显示全部楼层
如果要改成24bits   需要将AUDIO_BUFF这个数组改为32位的,并且依然是4字节对齐  因为C语言只有8 16 32位  没有24位的变量

2

主题

12

回帖

95

积分

版主

积分
95
发表于 2024-9-18 17:09:29 | 显示全部楼层
其他的初始化抄的 和audio demo一样就好了  如果需要软件上声音从MIC到SPK,可以做个简单处理,开个10ms定时器  每10ms把mic里面的buff推送的SPK即可,注意,这个定时器需要严格10ms并且要精确控制读写指针才不会有杂音
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2024-10-12 08:22 , Processed in 0.087728 second(s), 20 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表