WM8976G声卡驱动的研究

继续跟着韦老师的步伐,研究声卡WM8976G芯片

硬件连接

在这里插入图片描述

我们从芯片原理图上面看出,s3c2440连接我们的音频芯片是用 IIS总线进行传输,而通过下面的L3这三根线进行控制
在这里插入图片描述

读一下芯片手册

在这里插入图片描述
打开声卡的datasheet ,怎么快速开发呢,设备描述的,控制介绍
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
分为两线和三线模式,开始的7bit是地址,后面的9bit控制的是对应的寄存器,两线模式对应的就是IIC沟通
在这里插入图片描述
从原理图上看我们应该用的是三线模式,下面接入的为高电平
在这里插入图片描述
小小的整理一下,对应的gpio口,那么我们自己控制 clk的时序,并且传输准确的信号
在这里插入图片描述

写出控制芯片函数
//所以我们就可以写出wm8976的写函数
 static void wm8976write(int reg,int data)
 {
 		s3c2410_gpio_setpin(MY_SCLK,1);
		s3c2410_gpio_setpin(MY_CSB,1);
		s3c2410_gpio_setpin(MY_SDIN,1);
		 short write_data = (reg<<9)|(data & 0x3ff);
		 for(int i =0; i<16;i++)
		{
				 		s3c2410_gpio_setpin(MY_CSB,1);
						if((1<<(16-i) & write_data)  )
						{
							s3c2410_gpio_setpin(MY_SCLK,0);
							s3c2410_gpio_setpin(MY_SDIN,1);
							udelay(1);
							s3c2410_gpio_setpin(MY_SCLK,1);
						}
						else{
							s3c2410_gpio_setpin(MY_SCLK,0);
							s3c2410_gpio_setpin(MY_SDIN,0);
							udelay(1);
							s3c2410_gpio_setpin(MY_SCLK,1);
								}
						
			s3c2410_gpio_setpin(MY_CSB,0);
			udelay(1);
			s3c2410_gpio_setpin(MY_CSB,1);
				}
}
驱动编写
进行初始化分析

那肯定是开始先要看 poweron也在之前的device description里面
在这里插入图片描述
昂 看了这么久 也没看懂混音器怎么用啊

static void init_wm8976(void)
{
	//不使用boost
	//3.设置R3,addr0x03,data:0 0000 1111
	wm8976write(0x03,0xf);
	//4.R1,等待VMID
	
	//5.R1,BIASEN=1
	wm8976write(0x01,0x8);
	//6.R2, L/ROUT1EN = 1 in register R2.
	wm8976write(0x02,0x180);
	//7.MIXER
	
	//8.OUTPUT
	//9.remaining
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值