AIC3104_音频驱动

linux驱动:音频驱动(一)ALSA 一、【基础知识】 1、J2 《--HPR_OUT+HPL_OUT 《-- U13(TLV320AIC3104IRHBR)的HPROUT+HPLOUT 2、驱动源码 IPNC_RDK_V3.8.0.1/Source/ti_tools/ipnc_psp_arago/kernel/sound/soc/codecs/tlv320aic3x.c 3、依赖于I2C驱动 4、声卡驱动框架:ALSA( 阅读详情
这两周一直在调AIC3104的驱动,这是个音频codec芯片,可以实现语音对讲功能。
AIC3104是通过I2C方式与CPU通信,来设置寄存器,另外是IIS接口进行语音的Mic_in和Line_out功能。
 
下面是aic3104的驱动源代码:
/*   extdrv/peripheral/vda/adv7179.c
 *
 *
 * Copyright (c) 2006 Hisilicon Co., Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.
 *
 *
 * History:
 *     17-Apr-2006 create this file
 *
 */
#include <linux/unistd.h>
#include <linux/module.h>
//#include <linux/config.h>
#include <linux/errno.h>
#include <linux/miscdevice.h>
#include <linux/fcntl.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/proc_fs.h>
#include <linux/workqueue.h>
#include <asm/uaccess.h>
#include <asm/system.h>
#include <asm/io.h>
//#include <linux/kcom.h>
#include <linux/random.h>
//#include "stapp_main.h"
#include "sti7105.h"
#include "stsys.h"
#include "stddefs.h"
#include "sti2c.h"
#include "staudlx_aic3104.h"
//#include "stcommon.h"
//#include "stavmem.h"
///////////////////////PRE-DEFINITIONS/////////////////////////
//module name string
#define MOD_STR     "aic3104"
#define MOD_STR_E    "aic3104 ERROR"
//chip and id register addr
#define CHIP_A_I2C_ADDR  0x30//0x30//0x18
#define I2C0 0x00
//#define TRUE (bool) 1
/***************************************************
 (1). AIC3104 I2S work mode
Define 0xd0 if work as master
Define 0x00 if work as slave
***************************************************/
#define AIC3104_WORK_MODE  0x00
/***************************************************
(2). Global debug info switch
***************************************************/
#define GLOBAL_DEBUG
//AIC3104 version info.
#define AIC3104_VER_MIN  0//  0~63
#define AIC3104_VER_SEC  0//  0~63
#define AIC3104_VER_MAJ  1//  0~31
#define AIC3104_VER_DAY  25// 1~31
#define AIC3104_VER_MON  3// 1~12
#define AIC3104_VER_YER  10// 00~63

static STI2C_Handle_t i2c_handle;
static int nbpages = 0, chains[2] = {0,0};
 
typedef enum _tagDRV_ERR_CODE_
{
 //general return code
 NO_ERROR = 0,
 ERR_NO_DEV ,
 ERR_GPIO_I2C_RD,
 ERR_GPIO_I2C_WR,
 ERR_VERSION_CHK,
 ERR_DRV_REG,
 ERR_OUT_OF_RANGE,
 ERR_INVALID_CMD
}DRV_ERR_CODE;
/*
ST_ErrorCode_t STI2C_Read (   STI2C_Handle_t Handle,         //chip, I2CHandle
                              U8             *Buffer_p,                     //read reg
                              U32            MaxLen,                       //MAX_BYTE_READ, 
                              U32            Timeout,                     //100,
                              U32            *ActLen_p)                //target buffer
ST_ErrorCode_t STI2C_Write(   STI2C_Handle_t Handle,// ----chip
                              const U8       *Buffer_p,           //write reg
                              U32            NumberToWrite,     
S100P tlv320aic3104 codec bringup 背景:地瓜S100P平台,Ubuntu 操作系统,音频Codec是TLV320aic3104。添加以上代码后,speaker播放ok,有测试声音输出;tinymix查看所有kcontrol和widght。问题: 播放音乐无声音,录音没有声音;手动加载相关audio 驱动。 阅读详情

相关推荐

音频芯片TLV320aic3104配置,mic和line输入

音频芯片TLV320aic3104配置,mic和line输入

TLV320AIC3104中文手册

TLV320AIC3104中文datasheet, 内有硬件介绍, 也有编程部分寄存器介绍,完全按照英文文档翻译过来的,绝对值5分,放心下载。

tlv320aix32x4声卡驱动源码(针对海思hi35xx的移植)

TI的tlv320aic3254声卡驱动在海思平台的移植,内含驱动源代码,ioctl命令说明,tlv320aic32x4用户手册原版和部分翻译的中文版

CC1110 + AIC3104 音频代码,C语言源程序

程序采用CC1110+AIC3104组成。可采集音频数据并进行无线发送。采集速率8-48K,精度16/24位,无线通信最大速率500kbit/s。。。。。。。。。

中文tlv320aic3212芯片手册

中文tlv320aic3212芯片手册

详细教程:如何使用elasticsearch 8.x进行向量搜索

大模型的热度使得向量数据库和embedding也成了ai领域的热门话题,有别于从头开始训练一个大模型或基于基础模型进行微调的方式,embedding检索相关上下文是对大模型进行定制的各种方法中成本最低、技术实现最便捷的方式。从技术实现的角度,

qq_50790981的博客 1万+

多智能体强化学习论文——SEAC(NIPS 2020)

存在的问题&研究动机&研究思路 在稀疏奖励的环境下,多智能体的exploration存在效率不足等问题。 在IAC的基础上尝试加入重要性采样,使得每次更新智能体iii的参数时,不再仅仅使用智能体iii的数据,而是使用所有智能体的数据进行智能体iii数据的更新。 对于原始的IAC算法是on-policy的,而SEAC则是off-poligy的。 创新点 在每个智能体iii的actoriactor_iactori​和criticicritic_icritici​的更新过程中,都加入了重要性

我的AI笔记 1206

SQL Server2008详细安装步骤(超详细步骤)

https://pan.baidu.com/s/1yvolqfU-AbiuGrIzblA7pA 提取码:lzw81.下载好安装包后解压到除C盘以外的磁盘,避免系统卡顿2.使用管理员身份打开安装程序注意:使用管理员身份打开时,此时如果显示以下画面属于正常现象,下载安装即可。因为.net现在有很多软件都需要,包括SQLSERVER2008,它里面有visual studio都要有net,电脑系统没有的话安装一下好了。3.选择全新安装或向现有安装添加新功能4.点击确定5.出现以下画面之后,输入产品密钥即可(密钥在

m0_67402774的博客 4万+

手把手搭建你的第一个OCT仿真模型:用Python和光学仿真库重现A-SCAN信号

本文详细介绍了如何使用Python和光学仿真库搭建OCT仿真模型,重现A-SCAN信号。从环境配置、干涉仪建模到信号处理全流程,手把手教你实现光学相干层析成像的核心技术。通过代码示例和性能优化技巧,帮助开发者深入理解OCT原理并应用于医疗诊断等领域。

weixin_42562079的博客 240

中文实体关系抽取数据集大盘点:从百度Duie2.0到医疗CBLUE,哪个更适合你的NLP项目?

本文全面分析了中文实体关系抽取领域的主流数据集,包括百度DuIE 2.0、医疗CBLUE等,帮助开发者根据项目需求选择最适合的数据集。文章详细对比了各数据集的特点、适用场景及优化策略,为自然语言处理项目提供实用指南。

weixin_29284657的博客 121

【ZYNQ】OV5640 图像采集与显示

OV5640 是豪威(OmniVision)半导体公司推出的高性能的 CMOS 数字图像传感器,支持最高 500 万像素图像采集,支持 RAW RGB、RGB565、YCbCr422 等图像格式输出,可应用于手机、平板等电子设备。本文主要介绍如何使用 Zynq 驱动 OV5640 摄像头进行图像采集,并通过 HDMI 实时显示。

洋洋Young的博客 1433

AI量化学习入门指南:从零开始掌握人工智能投资策略

量化投资:利用数学模型和计算机算法进行投资决策的方法算法交易:自动执行预定义交易规则的系统机器学习:让计算机从数据中学习并改进的技术回测:用历史数据检验交易策略表现的过程特征工程:将原始数据转化为模型可理解的输入过拟合:模型过度适应历史数据,导致未来表现不佳夏普比率:衡量单位风险所获得的超额收益AI量化投资不仅仅是技术的应用,更是一种理性、系统化的投资哲学。它不追求预测市场的每一个拐点,而是通过概率思维和风险管理,在不确定性的市场中寻找统计优势。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 1128

0.嵌入式控制器EC实战 Embedded Controller开发概述

文章目录前言1.嵌入式控制器EC概述2.EC芯片框图(IT8502为例)3.General Purpose I/O Port (GPIO)4.SMBus(System Management Bus,系统管理总线)5.PWM、TACH6.KBC(KeyBoard Controller)7.PS/28.ADC(模数转换)总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 1.嵌入式控制器EC概述 嵌入式控制器EC是挂在CPU的L

qq_30135687的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: eeprom_AT24C256_I2C驱动
下一篇: I2C驱动程序设计
lamdoc
博客等级 码龄18年 155粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值