s3c2440的IIS的控制模块

发布者:phi31最新更新时间:2024-07-23 来源: cnblogs关键字:s3c2440  IIS  控制模块 手机看文章 扫描二维码
随时随地手机看文章

一、S3c2440A的IIS总线接口可以连接外部8/16位立体声音频解码IC。支持IIS总线数据格式和MSB-justified数据格式。该接口对FIFO的访问采用了DMA模式,代替中断模式。可以同时传送和接收数据。

1.0。功能:总线接口,寄存器组和状态机(BRFC):总线接口逻辑和FIFO访问由状态机控制。5位双预定标器、64位FIFO、主IISCLK发生器、通道发生器和状态机、15位移位寄存器

1.1。传输模式:分为正常传输模式和DMA传输模式。

1.2。IIS总线格式:IIS总线有4根信号线,分别是串行数据输入(IISDI)、串行数据输出(IISDO)、左右通道选择(IISLRCK)和串行位时钟(IISCLK)。产生IISLRCK和IISCLK的是主设备。串行数据以2的补码且高位在先的方式发送(即偶数个数据发送和MSB先发)。这种数据格式使得数字音频设备的互联更加方便,而且不会造成数据错位。发送器发送的串行数据可以依据时钟信号的下降沿和上升沿同步 ,但是串行数据必须在上升沿锁存接收器。左右声道选择线决定了发送通道(左还是右),IISLRCk可以在串行时钟的下降沿或者上升沿处被改变,不一定是均匀的。在从设备端,信号在串行时钟的下降沿或者上升沿被锁存。IISLRCK信号线改变到MSB发送之间有一个时钟周期的时间。

1.3。Msb-Justified格式:Msb-Justified 总线格式个IIS格式有相同的格式。唯一不同的是Msb-Justified格式只要IISLRCK改变,MSB立即发送,没有一个时钟周期的间隔。

1.4。IIS采样频率和主设备时钟:IIS主设备时钟频率时由IIS分频器产生的(主设备时钟频率=PCLK/预分频器),故必须选择合适的预分频值和CODECLK的采样频率(256//384)。

1.5。IIS寄存器有:IISCON、IISMOD、IISPSR、IISFCON、IISFCON

1.6。用好IIS,就要把信号频率设置正确。IISSCLK为串行时钟,每一个时钟信号传送一位音频信号,因此IISSCLK的频率=声道数×采样频率×采样位数,如采样频率fs为44.1kHz,采样的位数为16位,声道数2个(左、右两个声道),则IISSCLK的频率=32fs=1411.2kHz。


二、WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字,因此在声音文件质量和CD相差无几!

2.0典型的wav文件结构如下:RIFF_header(8字节) 、data_type(4字节)、fmt_chunk(0x18字节)、Fact Chunk、data_chunk(真正存贮音频数据)。


关键字:s3c2440  IIS  控制模块 引用地址:s3c2440的IIS的控制模块

上一篇:S3C2440 DMA 驱动示例
下一篇:学习Linux下s3c2440的USB鼠标驱动笔记

推荐阅读最新更新时间:2024-11-13 06:14

LINUX中s3c2440总线频率、时钟的设置
很多硬件的正常运行需要有总线时钟的支持,比如LCD、I2C等设备。本文分析一下s3c2440的总线时钟,以及在linux中对s3c2440总线时钟频率的相关操作。首先分析硬件s3c2440的总线时钟。 1. s3c2440的FCLK HCLK PCLK: 时钟源首先来自外部晶振12MHz。对于必须运行在200MHz以上的ARM920t内核来说,这个频率实在太低了,不能直接使用,所以首先要通过s3c2440片上的pll硬件电路将12MHz的晶振时钟信号升频,而具体升到多少MHz是通过MPLL控制寄存器来控制的。比如MPLLCON赋值为 0x5c 12 | 2 4 | 1就可以将PLL电路的输出时钟设置为400MHz,也就是将
[单片机]
s3c2440裸机-内存控制器(二、不同位宽外设与CPU地址总线的连接)
不同位宽设备的连接 我们先看一下2440芯片手册上外设rom是如何与CPU地址总线连接的。 8bit rom与CPU地址线的连接 8bit*2 rom与CPU地址线的连接 8bit*4 rom与CPU地址线的连接 16bit rom与CPU地址线的连接 16bit*2 rom与CPU地址线的连接 从上面的图中,我们知道可以对2片位宽为8bit的外设扩展级联成1个16bit的外设,同理可用4片位宽为8bit的外设进行级联成1个32bit的外设... 从上面的图中,我们还看见一个规律: 当外设总线位宽为8bit时, 外设A0接CPU的地址总线ADDR , A - ADDR ...A - ADDR 当外设总线
[单片机]
<font color='red'>s3c2440</font>裸机-内存控制器(二、不同位宽外设与CPU地址总线的连接)
s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(C)
此文为对于LED驱动的补充: 废话不说,先上代码。 start.s .text .global _start _start: ldr r0 ,= 0x53000000 @WATCHDOG ADD mov r1 ,#0x0 str r1 , @r1 的数据写入r0 关看门狗 ldr sp ,=1024*4 @设置栈 bl main @跳转到main执行 halt: b halt led.c #define GPFCON (*(volatile unsigned long *)0x56000050) #define
[单片机]
【ARM】s3c2440裸机之RTC数字时钟
功能 裸机程序,实现LCD显示数字时钟 主要代码 1)背景绘制 void Brush_ U32 c) { int x,y ; for ( y = 0 ; y LCD_HEIGHT ; y++ ) { for ( x = 0 ; x LCD_WIDTH ; x++ ) { LCD_BUFFER = c ; } } } 2)文字绘制 void Draw_Text16(U32 x,U32 y,U32 color,U32 backColor,const unsigned char ch ) { unsigned short int i,j; unsi
[单片机]
【ARM】<font color='red'>s3c2440</font>裸机之RTC数字时钟
wifi网卡RT3070在S3C2440的移植和使用
一、配置内核选择WIFI驱动 1. 将usb wifi插到电脑,在ubuntu使用命令:# lsusb 查看wifi的PID:0x148f, VID:0x3070 2. 搭建环境 (使用的是arm-linux-gcc 4.3.2,内核为:linux 3.4.2) 1) 内核源码打补丁  在终端执行以下命令:  # tar xjf linux-3.4.2.tar.bz2  # cd linux-3.4.2  # patch -p1 ../linux-3.4.2_camera_jz2440.patch  # cp config_ok .config 2) 配置内核 进入内核目录,根据网卡的VID/PID确定使用哪一个源码,搜索u
[单片机]
wifi网卡RT3070在<font color='red'>S3C2440</font>的移植和使用
嵌入式驱动编写之简单驱动Hello_word
开发环境 BootLoader:u-boot-1.1.6 kernel:linux-2.6.30.4 cpu:S3C2440 步骤 1、编写驱动代码 这应该是最简单的一个驱动了,只在内核打印一下信息,代码如下: #include linux/module.h #include linux/kernel.h MODULE_LICENSE( GPL ); static int __init le2440_hello_init(void) { printk( 1 n Hello,changle_2440!n ); printk( 1 nThis is first driver progr
[单片机]
嵌入式驱动编写之简单驱动Hello_word
S3C2440串口通讯实现
一、目的 由于项目需求,要实现S3C2440串口与PC机的通讯。通过实验手册上的串口通讯示例了解串口的工作原理,实现简单的串口通讯实验。为进一步利用串口编程实现更加复杂的功能做准备。 实验效果:PC机上按下任意键,通过串口将字符传送至2440,2440又通过串口返回至PC机,并在DNW终端或超级终端显示该字符。 二、实验原理 PC机 ------- S3C2440开发板 S3C2440的UART提供了三个独立的异步串行I/O端口,每个都可以在中断和DMA两种模式下进行,他们支持的最高波特率是115.2Kbps。每个UART通道包含两个64字节的FIFO,分别提供数据接收和发送。 每个UART包含波特率发生
[单片机]
S3C2440中断代码的深层次分析
在前一段时间分析了ARM异常处理机制的处理方式,分析了在异常产生以后CPU自动完成的相关处理以及程序员应该完成的基本操作。着重分析了异常代码的返回地址分析已经采用通用代码处理各种异常的可能性。 异常处理的基本过程如下:异常产生(在指令的临界中检测CPU的状态,一般实质在这条指令被执行完成,但是还没有执行下一条指令之前检测) 保存状态寄存器,切换状态寄存器,保存LR=PC-4,强制PC跳转到对应异常向量(以上的过程都是CPU自动完成) 》调整返回地址,在栈中保存寄存器,便于恢复寄存器的值 》异常处理函数 》退出异常。 中断处理机制的两种形式: 1、 采用在中断向量中存储简单的跳转指令,跳转到异常处理函数中,但是这种方式存在的缺点
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved