UDA1341控制

转载:http://www.360doc.com/content/13/1019/16/13867232_322583352.shtml

L3总线

地址模式是用于选择设备和定义目标寄存器,在这种模式下,8位数据高6位是设备地址(UDA1341的地址固定为000101),低两位是数据模式下选择的寄存器(00DATA001DATA110STATUS)。只要没有再改变地址模式下的数据,则数据模式下的数据始终是传输到上一个地址模式所定义的寄存器内。

地址模式时序为:L3MODE置电平-<L3CLOCK置高电平-<L3CLOCK置低电平-<写一位地址-<延时-<L3CLOCK置高电平-<L3CLOCK置低电平,开始写地址下一位-<...8位地址写完-<L3MODEL3CLOCK置高电平。

如下图所示:

数据模式用于设置寄存器。此模式下,STATUS用于设置复位,系统时钟频率,数据输入格式,直流滤波器,输入增益开关,输出增益开关;DATA0分为直接寻址模式和扩展寻址模式,直接寻址模式是直接进行模式的控制,包括音量、重低音、高音、峰值检测位置、去加重、静音和模式,而扩展寻址模式是在直接寻址模式下先设置3位扩展地址,再在直接寻址模式下设置5位扩展数据,包括数字混音器控制、自动增益控制、麦克灵敏度控制、输入增益、自动增益时间常数及输出等级;在DATA1下,可以读取到被检测峰值。

时序为L3CLOCK置低电平-<写一位数据-<延时-<L3CLOCK置高电平-<L3CLOCK置低电平,开始写下一位数据-<...8位数据写完,向之前写入的地址地址,一次写数据完成。

(ps:给uda1341寄存器(音频寄存器)赋值,则先要通过选择地址模式写入地址,然后再通过数据模式写入数据,从而把数据写进对应的寄存器)


如下图所示:

STATUS 控制寄存器

D7

D6

D5

D4

D3

D2

D1

D0

0

RST

SC1

SC0

IF2

IF1

IF0

DC

1

OGS

IGS

PAD

PDA

DS

PC1

PC0

D7=0

RST(复位)1:复位,0:不复位;

SC1:SC0(系统时钟频率选择)

0 0          512fs

0 1          384fs

1 0          256fs

1 1          不使用

系统时钟应和数据输入总线系统时钟一致,如IIS总线输入,则系统时钟应和IIS总线频率一致。

IF2:IF1:IF0(数据输入模式选择)

0 0 0       IIS总线

0 0 1       最低有效位对齐的16

0 1 0      最低有效位对齐的18

0 1 1      最低有效位对齐的20

1 0 0      最高有效位对齐

1 0 1      最低有效位对齐的16位输入和最高有效位对齐的输出

1 1 0      最低有效位对齐的18位输入和最高有效位对齐的输出

1 1 1      最低有效位对齐的20位输入和最高有效位对齐的输出

DC(直流滤波器使能)禁用,使能;

D7=1

OGS(输出增益开关)增益为0      1 增益6dB

IGS(输入增益开关) 0 增益为0     1 增益6dB

PADADC极性)    0 不反相,       1 反相

PDADAC极性)    0 不反相,       1 反相

DS(双倍速设置)   0 单倍数回放    1 双倍速回放

PC1PC0(电源控制)

0 0          ADC电源切断,DAC电源切断

0 1          ADC电源切断,DAC电源接通

1 0          ADC电源接通,DAC电源切断

1 1          ADC电源接通,DAC电源接通

DATA0 直接控制寄存器

D7

D6

D5

D4

D3

D2

D1

D0

0

0

VC5

VC4

VC3

VC2

VC1

VC0

0

1

BB3

BB2

BB1

BB0

TR1

TR0

1

0

PP

DE1

DE0

MT

M1

M0

1

1

0

0

0

EA2

EA1

EA0

1

1

1

ED4

ED3

ED2

ED1

ED0

VC5:VC4:VC3:VC2:VC1:VC0(音量控制):

BB3 :BB2 :BB1: BB0(低音增强):

TR1:TR0(高音增强)

PP(峰值检测位置): 0 音调特性之前 1 音调特性之后

DE1: DE0(去加重):

0 0                               不去加重

0 1                               32kHz去加重

1 0                               44.1kHz去加重

1 1                               48kHz去加重

MT(静音):              0 不静音 1 静音

M1:M0(音频滤波模式选择):

0 0                               平均值

0 1/1 0                         最小值

1 1                               最大值

EA2 EA1 EA0(扩展地址),ED4 ED3 ED2 ED1 ED0(扩展数据)

DATA0扩展编程寄存器

EA2

EA1

EA0

ED4

ED3

ED2

ED1

ED0

0

0

0

MA4

MA3

MA2

MA1

MA0

0

0

1

MB4

MB3

MB2

MB1

MB0

0

1

0

MS2

MS1

MS0

MM1

MM0

1

0

0

AG

0

0

IG1

IG0

1

0

1

IG6

IG5

IG4

IG3

IG2

1

1

0

AT2

AT1

AT0

AL1

AL0

MA4:MA3:MA2:MA1:MA0(控制通道1的混频增益)

MB4:MB3:MB2:MB1:MB0(控制通道2的混频增益)

MS2:MS1:MS0(麦克风敏感度)

选择麦克风增益放大,只有当AGC(自动增益)使能,而不是在激活双差模式,这些设置才有效。

MM1:MM0(混频器模式选择)

MM1

MM0

选择模式

0

0

双差模式

0

1

选择输入通道1,输入通道2切断

1

0

选择输入通道2,输入通道1切断

1

1

数字混频器模式(input 1?MA + input 2?MB

AGAGC使能) 0 禁用,手工设置增益(通过IG设置) 1 使能

IG6:IG5:IG4:IG3:IG2:IG1:IG0(输入通道2放大器增益)

仅当AG禁用且不在双差模式下有效。

AT2:AT1:AT0:AL1:AL0(自动增益控制时间常数)

AT2

AT1

AT0

启动时间

(ms)

衰减时间

(ms)

0

0

0

11

100

0

0

1

16

100

0

1

0

11

200

0

1

1

16

200

1

0

0

21

200

1

0

1

11

400

1

1

0

16

400

1

1

1

21

400

AL1:AL0(自动增益输出电平)

AL1

AL0

输出电平

(dB FS)

00

?9.0

00

01

?11.5

01

10

?15.0

10

11

?17.5

11

DATA1 控制寄存器

DATA1数据传输类型

D5

D4

D3

D2

D1

D0

PL5

PL4

PL3

PL2

PL1

PL0

PL5:PL4:PL3:PL2:PL1:PL0 (峰值电平)

程序设计(S3C2440处理器):GPB2-<L3MODE,GPB3-<L3DATA,GPB4-<L3CLOCK

《编译原理》是计算机科学中一门极为重要的课程,主要探讨如何将高级程序设计语言转换成机器可执行的指令。清华大学的张素琴教授在这一领域有着深厚的学术造诣,其编译原理课后习题答案对于学习者而言是非常珍贵的资源。这份压缩文件详细解析了课程中所涉及的概念、理论方法的实践应用,目的是帮助学生更好地理解编译器设计的核心内容。 编译原理的核心知识点主要包括以下几点: 词法分析:作为编译过程的首要环节,词法分析器会扫描源代码,识别出一个个称为“标记”(Token)的最小语法单位。通常借助正则表达式来定义各种标记的模式。 语法分析:基于词法分析产生的标记流,语法分析器依据文法规则构建语法树。上下文无关文法(CFG)是编译器设计中常用的一种形式化工具。 语义分析:这一步骤用于理解程序的意义,确保程序符合语言的语义规则。语义分析可分为静态语义分析动态语义分析,前者主要检查类型匹配、变量声明等内容,后者则关注运行时的行为。 中间代码生成:编译器通常会生成一种高级的中间表示,如三地址码或抽象语法树,以便于后续的优化目标代码生成。 代码优化:通过消除冗余计算、改进数据布局等方式提升程序的执行效率,同时不改变程序的语义。 目标代码生成:根据中间代码生成特定机器架构的目标代码,这一阶段需要考虑指令集体系结构、寄存器分配、跳转优化等问题。 链接:将编译后的模块进行合并,解决外部引用,最终形成一个可执行文件。 错误处理:在词法分析、语法分析语义分析过程中,编译器需要能够检测并报告错误,例如语法错误、类型错误等。 张素琴教授的课后习题答案覆盖了上述所有核心知识点,并可能包含实际编程练习,比如实现简单的编译器或解释器,以及针对特定问题的解题策略。通过解答这些习题,学生可以加深对编译原理的理解,提升解决问题的能力,为今后参与编译器开发或软件工程实践奠定坚实的基础。这份资源不仅是学习编译原理的有力辅助材料,也是
车辆路径问题(Vehicle Routing Problem, VRP)是物流与运输领域中的一个重要优化问题,目标是规划一组最优车辆路线,确保所有客户点都被访问,同时使总行驶距离最小化。当引入时间窗约束(Time Windows)后,问题演变为带时间窗的车辆路径问题(Vehicle Routing Problem with Time Windows, VRPTW),其复杂性显著增加。在VRPTW中,每个客户点都有一个特定的服务时间窗口,车辆必须在该窗口内到达,否则无法满足客户需求。 本项目“VRPTW-ga”采用遗传算法(Genetic Algorithm, GA)来解决这一问题。遗传算法是一种基于生物进化原理的全局优化方法,通过模拟自然选择、基因重组突变等过程,逐步生成近似最优解。在Python中实现遗传算法时,首先需要确定问题的编码方式。对于VRPTW,通常采用整数编码,每条路线用一串数字表示,数字的顺序对应车辆的访问顺序。接着,需要设计适应度函数(Fitness Function),用于评估每个个体(即一组路线)的优劣,通常以总行驶距离或总服务时间作为优化目标。遗传算法的基本流程如下:1. 初始化种群,随机生成一定数量的初始个体,代表不同的车辆路线;2. 适应度评估,计算每个个体的适应度值,适应度与总行驶距离成反比;3. 选择操作,根据适应度值选择个体,常用方法包括轮盘赌选择锦标赛选择等;4. 交叉操作,选择两个个体进行基因交叉,生成新的个体,VRPTW中可采用部分匹配交叉或顺序交叉等策略;5. 变异操作,对部分个体进行随机变异,调整其访问顺序,以维持种群多样性;6. 检查终止条件,若达到预设的迭代次数或适应度阈值,则停止算法,否则返回第2步继续执行。 在“VRPTW-ga-master”项目中,可能包含以下关键文件:problem.py用于定义车辆路径问题的具体
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值