Linux驱动开发-编写VS1053芯片音频驱动
1. 前言
VS1053是一款硬件编解码的音频芯片,提供SPI接口和IIS接口两种通信协议,这篇文章是介绍在Linux下如果模拟SPI时序来操作VS1053完成录音、播放音频歌曲功能。但是没有注册标准的音频驱动,没有对接音频框架,只是在驱动层完成VS1053的直接控制,本篇的重点主要是介绍如何初始化开发板的GPIO口,使用Linux的延时函数,模拟SPI时序,代码写了两种版本,一种是直接通过ioremap
直接映射GPIO口地址,完成配置,一种是直接调用官方内核提供的库函数接口,完成GPIO口初始化,控制。
当前采用的开发板是友善之臂的Tiny4412,芯片是三星的EXYNOS4412,这款芯片出来有很长一段时间了,之前用在三星的S系列手机上的,最高主频是1.5GZ,稳定推荐主频是1.4GHZ,内核是三星提供的demon,友善之臂在基础上完成了移植适配,也就是现在拿到的Tiny4412开发板内核,Linux 版本是3.5,不支持设备树。
2. VS1053硬件介绍
VS1053这款编码解码芯片在单片机里用的较多,性价比很高,因为支持SPI接口,所以单片机操作起来也比较容易,编码解码都是芯片内部完成,不消耗CPU资源,芯片的电压支持是3.3V。
可以使用VS1053设计MP3播放器,比如:用在跑步机上听歌&#
Linux驱动开发-编写VS1053芯片音频驱动相关推荐
- 32驱动_轻松掌握pinctrl子系统驱动开发——一个虚拟pinctrl dev驱动开发
这周主要对pinctrl子系统进行分析,该分析的基本上已经分析完成,唯一没有细说的估计就是gpio与pinctrl之间的关联了.本章即是pinctrl子系统分析的最后一章,本章我们主要实现一个虚拟的p ...
- 驱动开发:配置Visual Studio驱动开发环境
在正式开始驱动开发之前,需要自行搭建驱动开发的必要环境,首先我们需要安装Visual Studio 2013这款功能强大的程序开发工具,在课件内请双击ISO文件并运行内部的vs_ultimate.ex ...
- Linux驱动开发-编写PCF8591(ADC)芯片驱动
1. PCF8591介绍 PCF8591是一个IIC总线接口的ADC/DAC转换芯片,功能比较强大,这篇文章就介绍在Linux系统里如何编写一个PCF8591的驱动,完成ADC数据采集,DAC数据输出 ...
- Linux驱动开发-编写(EEPROM)AT24C02驱动
1. 前言 AT24C02是IIC接口的EEPROM存储芯片,这颗芯片非常经典,百度搜索可以找到非常多的资料,大多都是51.STM32单片机的示例代码,大多采用模拟时序.裸机系统运行.当前文章介绍在L ...
- Linux 驱动开发 三:字符设备驱动框架
一.参考 (3条消息) Linux 字符设备驱动结构(一)-- cdev 结构体.设备号相关知识解析_知秋一叶-CSDN博客 (3条消息) linux设备驱动框架_不忘初心-CSDN博客_linux设 ...
- linux驱动开发(一)—GPIO驱动框架
前言 GPIO驱动是Linux驱动开发中最基础.但却是很常用.很重要的驱动.比如你要点亮一个LED灯.键盘扫描.输出高低电平等等.而Linux内核的强大之处在于对最底层的GPIO硬件操作层的基础上封装 ...
- linux 下usb驱动开发,LINUX_ARM下的USB驱动开发.pdf
LINUX_ARM下的USB驱动开发 CN 431258 / TP 计算机工程与科学 2006年第 28卷第 3期 ISSN 1007130X COM PU TER EN GIN EER IN G & ...
- linux主设备编号从0到多少,Linux驱动开发之主设备号找驱动,次设备号找设备
一.引言 很久前接触linux驱动就知道主设备号找驱动,次设备号找设备.这句到底怎么理解呢,如何在驱动中实现呢,在介绍该实现之前先看下内核中主次设备号的管理: 二.Linux内核主次设备号的管理 Li ...
- 【嵌入式Linux】嵌入式Linux驱动开发基础知识之按键驱动框架
文章目录 前言 1.APP怎么读取按键值 1.1.查询方式 1.2.休眠-唤醒方式 1.3.poll方式 1.3.异步通知方式 1.5. 驱动程序提供能力,不提供策略 2.按键驱动程序框架--查询方式 ...
最新文章
- 程序员生活智慧集——卓越程序员密码
- 什么是javadoc文档
- java多线程notify_Java多线程 wait notify
- Android实战——第三方服务之Bmob后端云的推送服务的集成和使用(三)
- 实战HMM-Viterbi角色标注地名识别
- 缓存区的输入输出,字符串常用操作,实现strlen/strcpy/strcat/strcmp函数)
- mysql jdbc 单利_java单利模式设计
- 计算机网络怎么寻址_计算机网络中的无类寻址
- linux kvm 常用命令
- Flutter ColorTween实现颜色过渡动画效果
- Dive Into Thrift Node-安装
- Mybatis框架相关知识讲解
- IMDB情感分析数据集
- 循环体中调用[NSString stringWithFormat:@%@,Object] 方法的内存问题
- 【C#.NET】ASP.NET状态管理之四:Cache
- G.Power教程 | 样本量估计
- python熄灯问题
- 【研一周小结】第三周个人学习总结
- 哥伦比亚大学计算机科学硕士排名,哥伦比亚大学计算机科学硕士排名第16(2020年TFE Times排名)...
- Selenium Chrome版本兼容问题