智能音箱---TAS5754M 音频DSP 到Android
文章目录
- TI5754M 简介
- 硬件Block Digram 和THD+N
- Audio DSP在EVM上调整
- 连线等初始化
- Biquad
- EQ[^4] DRC [^5],DBE/PBE[^6]
- 在线调试效果
- 导出最后结果
- driver
- AP 调试
TI5754M 简介
TAS5754M 是TI一款DAC芯片,D类。
主要应用:
• LCD/LED TV and Multi-Purpose Monitors
• Sound Bars, Docking Stations, PC Audio
• Wireless Subwoofers, Bluetooth and Active
硬件Block Digram 和THD+N
datasheet 1
Audio DSP在EVM上调整
安装软件 purePath2
连线等初始化
启动应用,选择5754M:
连接EVM
进行基本配置:
Biquad
调试Audio 处理流程,根据下图一个一个模块处理:
EQ3 DRC 4,DBE/PBE5
调整对应的参, 以DRC 三段设置为例
在线调试效果
修改寄存器对应的值,点击运行按钮,可以动态调整。
导出最后结果
保存已经调试好参数。导出结果
driver
定义数据结构,与工作队列
typedef struct
{ unsigned char bAddr;unsigned int bLength;unsigned char bArray[MAX_AMP_REG_LEN];
}TAS5754M_REGMAP;struct TAS5754M_PRIV
{ int gpio_nreset;int gpio_pdn;struct workqueue_struct *dspworkqueue;struct delayed_work dwork;struct i2c_client *tasi2cdev;
};
驱动流程一致,参考TAS其他系列
*/static const struct of_device_id tas5754m_dt_ids[] = {{ .compatible = "ti,tas5754m", },{ }
};
MODULE_DEVICE_TABLE(of, tas5754m_dt_ids);static const struct i2c_device_id tas5754m_i2c_id[] = {{ "tas5754m", 0 },{ }
};
MODULE_DEVICE_TABLE(i2c, tas5754m_i2c_id);static int tas5754m_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *id)
{struct TAS5754M_PRIV *priv;struct device *dev = &i2c->dev;int gpio_nreset = -EINVAL;int gpio_pdn = -EINVAL;int ret =0;int err = -ENOMEM;unsigned char array5754[2] = {0x3E,0x45};priv = devm_kzalloc(dev, sizeof(struct TAS5754M_PRIV), GFP_KERNEL);...i2c_set_clientdata(i2c, priv);if (of_match_device(of_match_ptr(tas5754m_dt_ids), dev)) {struct device_node *of_node = dev->of_node;gpio_nreset = of_get_named_gpio(of_node, "reset-gpio", 0);gpio_pdn = of_get_named_gpio(of_node, "mute-gpio", 0);}.../*gpio 初值 */priv->gpio_nreset = gpio_nreset;priv->gpio_pdn = gpio_pdn;priv->tasi2cdev = i2c;g_taspridata = priv;/* DSP 初始值*/tas5754_i2c_write_interface(i2c,array5754,2);/*加载 DSP调整好的效果寄存器 */tas5754_init();...return ret;
err_gpio_reset:if (gpio_is_valid(gpio_nreset))gpio_free(gpio_nreset);
err_gpio_pdn:if (gpio_is_valid(gpio_pdn))gpio_free(gpio_pdn);kfree(priv);return err;
}static int tas5754m_i2c_remove(struct i2c_client *i2c)
{struct TAS5754M_PRIV *priv = i2c_get_clientdata(i2c);if (gpio_is_valid(priv->gpio_nreset)){gpio_free(priv->gpio_nreset);}if (gpio_is_valid(priv->gpio_pdn)){gpio_free(priv->gpio_pdn);}kfree(priv);return 0;
}static struct i2c_driver tas5754m_i2c_driver = {.driver = {.name = "tas5754m",.owner = THIS_MODULE,.of_match_table = of_match_ptr(tas5754m_dt_ids),},.id_table = tas5754m_i2c_id,.probe = tas5754m_i2c_probe,.remove = tas5754m_i2c_remove,
};module_i2c_driver(tas5754m_i2c_driver);
参考文章6
static void tas575x_task(struct work_struct *work)
{int i = 0;unsigned char array[2];int cnt = sizeof(tas5754registers)/sizeof(tas5754registers[0]);for(i = 0; i<cnt; i++){array[0]=tas5754registers[i].reg;array[1]=tas5754registers[i].value;tas5754_i2c_write_interface(g_taspridata->tasi2cdev,array,2);}
}static int tas5754_init(void){//创建工作队列g_taspridata->dspworkqueue = create_singlethread_workqueue("tas575x_workqueue");// 创建工作,调用函数是tas575x_taskINIT_DELAYED_WORK(&g_taspridata->dwork,tas575x_task);//延时5s去执行queue_delayed_work(g_taspridata->dspworkqueue ,&g_taspridata->dwork,1500);return 0;
}
/*增加ioctl,为上层提供systemcall接口 */
static const struct file_operations tas5754io_fops = {.owner = THIS_MODULE,.unlocked_ioctl = tas5754io_ioctl,
};static struct miscdevice tas5754io_misc = {.minor = MISC_DYNAMIC_MINOR,.name = "tas5754io-dsp",.fops = &tas5754io_fops,
};static int __init tas5754io_modinit(void)
{int ret = 0;ret = misc_register(&tas5754io_misc);if (ret < 0) {printk(KERN_ERR "Failed to register 5754M MISC driver: %d\n", ret);}return ret;
}
module_init(tas5754io_modinit);static void __exit tas5754io_exit(void)
{misc_deregister(&tas5754io_misc);
}
module_exit(tas5754io_exit);
AP 调试
喇叭连接到AP THD+N 需要小于1%
5754M datasheet ↩︎
软件 ↩︎
EQ ↩︎
DRC ↩︎
Dynamic Bass Enhancement(DBE) Psychoacoustic Bass Enhancement (PBE). ↩︎
workqueue ↩︎
智能音箱---TAS5754M 音频DSP 到Android相关推荐
- 智能音箱 之 音频通路质量--测试与参数
一.概述 当将语音识别算法接入到设备时,务必要保证设备的音频通路具有足够的质量.因此对设备进行音频测试,以评估能够影响语音识别性能的音频前端的音频参数.如下要点对语音识别至关重要: 自然声音 合适的增 ...
- RT-Thread智能音箱音频应用实践
国内智能音箱的问世早于国外,但由于国内对智能化概念普及程度较低,初期智能音箱并没有受到很多关注.但近几年国内智能音箱行业经历了从百花齐放到三足鼎立的发展阶段,来自RT-Thread的黄天翔将从占据主流 ...
- AI智能音箱高性价比出好音质的功放芯片
近几年人工智能等技术的不断发展,AI智能音箱已成为炙手可热的爆款:众多企业纷纷加入其中:如我们熟知的天猫精灵.小爱同学.小度智能音箱.华为AI音箱.腾讯叮当等等智能音箱:据不完全统计,目前国内做智能音 ...
- 智能音箱中喇叭腔体的参数测量
最近一直忙碌于喇叭腔体的测试, 只有平衡好 喇叭 / 腔体 / 功放三者之间的关系, 才能保证好的效果. 一款好的音响,喇叭是非常关键的一个零部件,基本上可以说决定了音质的成败,其中最重要的两个因素 ...
- mini2440+阿里云+Qt/android 打造智能音箱
华为在2018年10月26日发布了一款音箱,AI智能音箱,载了来自猎户星空的语音合成技术.用户通过语音或者华为智能家居App,可轻松控制音箱的播放.暂停等等操作. 以华为AI智能音箱为背景,我们自己动 ...
- 2018智能音频报告:智能音箱带来的智能音频和广播媒体的机遇
来源:199IT互联网数据中心 摘要:前中国智能音箱正热,阿里巴巴.京东.百度纷纷发布自己的智能音箱产品,大打价格战,希望以绝对底价抢占市场. 前中国智能音箱正热,阿里巴巴.京东.百度纷纷发布自己的智 ...
- ESP32系列音频开发板方案,智能音箱无线WiFi技术升级应用
移动互联网发展至今,视频及直播已成为主流传播方式.短视频及电商直播进一步黏合人们的碎片化时间,用户渗透率高达90.4%,视频的电商转化率也升至72%,各场景使用比例全线增长. 而相关硬件支持的智能音频 ...
- android智能音响,蜂巢智能音箱
蜂巢智能音箱是一款全智能的音响辅助工具,通过这个app大家可以更好的使用智能音箱的相关服务,比如听资讯,听FM电台之类的都是可以轻松操作,远程控制音响设备,还能够推送各种儿童节目,帮助进行亲子教育,感 ...
- TWS耳机、智能音箱爆火,麦克风、扬声器与音频IC火速成长
一.声学器件迎来新机遇 声学器件是电子产品的重要组成部分,具体包括麦克风.扬声器与音频IC. 当前智能手机是声学器件下游最大的应用市场.仅将麦克风.扬声器与受话器.音频编解码器纳入测算,一部低端智能手 ...
- 转:阿里智能音箱天猫精灵发布,联发科成了背后大赢家
原文网址:http://www.icsmart.cn/12719/ 上周五,芯智讯写了一篇题为<AI智能音箱市场火爆,阿里巴巴开始进场收割!>的文章.在看今天这篇文章之前,建议大家再去看下 ...
最新文章
- 我的世界服务器无限小号,我的世界惊现全新无限刷物品bug 服主大大都要注意了...
- 使用URI设计松散耦合的Metro应用程序
- Android应用程序消息处理机制(Looper、Handler)分析
- pytorch nn.Softmax
- 阅读理解常规解题思路
- x64 盗版PCHunter
- Hibernate拦截器字段加密解密
- 数据包络分析-超效率模型
- mac 环境变量 配置
- 开考!狮子,老虎,企鹅,技术圈的这些飞禽走兽你认识多少?
- php不使用第三变量互换,总结PHP不用第三个变量交换两个变量的值的几种方法
- 使用经验 1 C++程序由哪些部分构成
- MSDC 4.3 接口规范(17)
- java项目开发的工具选型对比,这10条建议你一定要关注!
- win10+yolov5尝鲜体验
- 数据库数据的备份和还原
- 洛谷 CF7E Defining Macros 题解
- v免签对接易支付插件(已测试)
- Linux配置Wifi模块
- 数据库Date数据与字符串如何转换