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分,放心下载。

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

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

FPGA音频驱动 320AIC23

320AIC23音频解码芯片,在红色飓风开发板上已实现,ISE工程,verilog

中文tlv320aic3212芯片手册

中文tlv320aic3212芯片手册

FANUC机器人电弧跟踪功能深度解析:从电流采样原理到ROBOGUIDE仿真避坑指南

本文深度解析FANUC机器人电弧跟踪技术,从电流采样原理到ROBOGUIDE仿真避坑指南,详细介绍了电流波形分析、实时补偿机制及现场调试技巧。针对工业焊接中的常见问题,提供从底层原理到高阶应用的解决方案,帮助工程师优化自动化焊接质量。

weixin_31785177的博客 551

spring-ai 1.0.0 学习(四)——提示词管理

摘要:本文介绍Spring AI中提示词管理的最佳实践。首先展示基础样例,指出直接传递用户输入的局限性。随后分析优质提示词应包含系统消息、上下文信息、输出结构和问答样例四要素。文章详述两种实现方式:链式调用(使用ChatClient构建器)和传统对象创建方法。进阶部分涵盖核心接口(Prompt、Message等)、消息类型、模板渲染配置(支持自定义)及提示词工程技巧(如RAG、任务分解)。最后提及高级功能如少样本模板和提示词库。全文强调结构化提示词对提升AI输出质量的关键作用,并展示Spring AI的灵活

hzp的专栏 1365

【异常】Cursor IDE 扩展主机超时错误处理文档The agent execution provider did not respond within 4 seconds.

该错误通常是 Cursor IDE 的临时性问题,不影响项目代码。大多数情况下,重新加载窗口或重启 IDE 即可解决。如果问题持续,可按上述进阶方案排查。重新加载窗口(最快)重启 IDE检查系统资源清理缓存检查扩展更多关于 AI+教育领域的干货,可以关注我的微信公众号第一时间获取哦~

奶爸的编程之路,也就一周冷个三天 2700

408 | 408常用计算公式与方法 —— 计组篇 汇总

408常用计算公式与方法 —— 计算机组成原理篇 汇总

"You are worthy! You can do it!" 4652

智能办公助手——OpenClaw办公自动化集成(2026办公版)

OpenClaw智能办公助手是一款集成任务管理、文档处理等功能的办公自动化系统。该系统采用Python实现,核心功能包括:1)任务管理系统,支持任务增删改查、状态跟踪和统计报表生成;2)文档智能助手,提供文档处理能力。任务管理模块具备优先级设置、状态变更、时间记录等功能,并能生成包含完成率等指标的任务报告。该系统旨在通过自动化办公流程提升工作效率,减少重复性工作。开发者可利用这些模块构建完整的智能办公解决方案。

一键难忘的博客 349

LVGL misc timer 定时器(lv_timer.c)

定时器机制是LVGL中非常重要的一项功能,它承载了LVGL的延时任务执行,周期任务执行,时序任务执行等,可以说理解定时器的设计就一定程度上理解发LVGL的任务调度机制。

Bigan(安)的博客 4729

TIA protal与SCL从入门到精通(4)——软件单元使用

平台: TIA portal 15.1 1.添加软件单元 添加软件单元如下图: 关于软件单元使用基本限制,看如下文章即可 TIA protal与SCL从入门到精通(3)——软件单元基本介绍 每个软件单元是一个独立结构,所以每个软件单元的运行方式与实际PLC类似,所以首先添加主函数块: 注意:无论系统是否是具有并发性(这里不要混淆并行与并发的概念),在PLC所有主函数执行总是按主函数依次完成...

苦走一口田 7375

将指定文件夹下每张用LabelImg标注的图片中标注部分抠出来保存到指定文件夹下。

将指定文件夹下每张用LabelImg标注的图片中标注部分抠出来保存到指定文件夹下。

weixin_44119674的博客 440

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 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、付费专栏及课程。

余额充值