全部博文(1293)
分类: LINUX
2011-03-11 12:55:05
L3总线
地址模式是用于选择设备和定义目标寄存器,在这种模式下,8位数据高6位是设备地址(UDA1341的地址固定为000101),低两位是数据模式下选择的寄存器(00:DATA0,01:DATA1,10:STATUS)。只要没有再改变地址模式下的数据,则数据模式下的数据始终是传输到上一个地址模式所定义的寄存器内。
地址模式时序为: L3MODE置电平->L3CLOCK置高电平->L3CLOCK置低电平->写一位地址->延时->L3CLOCK置高电平->L3CLOCK置低电平,开始写地址下一位->...8位地址写完->L3MODE,L3CLOCK置高电平。
如下图所示:
数据模式用于设置寄存器。此模式下,STATUS用于设置复位,系统时钟频率,数据输入格式,直流滤波器,输入增益开关,输出增益开关;DATA0分为直接寻址模式和扩展寻址模式,直接寻址模式是直接进行模式的控制,包括音量、重低音、高音、峰值检测位置、去加重、静音和模式,而扩展寻址模式是在直接寻址模式下先设置3位扩展地址,再在直接寻址模式下设置5位扩展数据,包括数字混音器控制、自动增益控制、麦克灵敏度控制、输入增益、自动增益时间常数及输出等级;在DATA1下,可以读取到被检测峰值。
时序为L3CLOCK置低电平->写一位数据->延时->L3CLOCK置高电平->L3CLOCK置低电平,开始写下一位数据->...8位数据写完,向之前写入的地址地址,一次写数据完成。
如下图所示:
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(直流滤波器使能):0 禁用,1 使能;
D7=1:
OGS(输出增益开关) 0 增益为0, 1 增益6dB
IGS (输入增益开关) 0 增益为0, 1 增益6dB
PAD (ADC极性) 0 不反相, 1 反相
PDA (DAC极性) 0 不反相, 1 反相
DS (双倍速设置) 0 单倍数回放 1 双倍速回放
PC1:PC0(电源控制)
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) |
AG(AGC使能) 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