工具与软件:
您好!
我的编解码器接口连接到 MCU、MCU 还连接到调制解调器。 在编解码器上、有一个 PDM 麦克风。
MCU 将128kHz PWM 输出至编 解码器的 BCLK、同时、编解码器将输出8kHz WCLK。 这样我就可以拥有8位8kHz 音频。
我现在需要具有16位16kHz 音频。 因此我将 BCLK 增加到256kHz、编解码器返回16kHz。 然而,由于音频看起来更好/更清晰,它是超快的慢。
使用 AIC 软件显示正确的值、我将 MDAC/mAdc (P0_R12/P0_R19)从0x8C 更改为0x86、这将返回16kHz WCLK。
其余部分、MCU 会将3.072MHz 时钟发送到 MCLK 输入。 然后启用 PLL、其中 R=3、J=40和 P=2。 使用 AIC 软件、它会 在"codec clock/PLL"选项卡下显示一个184.32MHz CODEC_CLKIN、然后在"Dividers"选项卡下、NDAC/NADC 设置为15、MDAC/mAdc 设置为12、DOSR/AOSR 设置为128。 这一切显示的是 ADC_CLK 12.288MHz;
-当使用8位8kHz 时, ADC_MOD_CLK 显示为1024kHz , ADC_FS 显示为8kHz ; <这非常好,但质量低
-当使用16位16kHz 时,ADC_MOD_CLK 会在 ADC_FS 为16KHz 时显示为2048KHz ; <这听起来质量更高、但音频非常慢
下面是16位16kHz 音频的配置(8位8kHz 除上述寄存器外几乎相同):
页0:
寄存器000:000 (0x00 -> 0000 0000)
寄存器001:000 (0x00 -> 0000 0000)
寄存器002:096 (0x60 -> 0110 0000)
寄存器003:000 (0x00 -> 0000 0000)
寄存器004:003 (0x03 -> 0000 0011)
寄存器005:163 (0xA3 --> 1010 0011)
寄存器006:040 (0x28 --> 0010 1000)
寄存器007:000 (0x00 -> 0000 0000)
寄存器008:000 (0x00 -> 0000 0000)
寄存器009:000 (0x00 -> 0000 0000)
寄存器010:000 (0x00 -> 0000 0000)
寄存器011:143 (0x8F --> 1000 1111)
寄存器012:134 (0x86 -> 1000 0110)
寄存器013:000 (0x00 -> 0000 0000)
寄存器014:128 (0x80 ->1000 0000)
寄存器015:002 (0x02 -> 0000 0010)
寄存器016:000 (0x00 -> 0000 0000)
寄存器017:008 (0x08 -> 0000 1000)
寄存器018:143 (0x8F -> 1000 1111)
寄存器019:134 (0x86 -> 1000 0110)
寄存器020:128 (0x80 -> 1000 0000)
寄存器021:001 (0x01 -> 0000 0001)
寄存器022:000 (0x00 --> 0000 0000)
寄存器023:004 (0x04 -> 0000 0100)
寄存器024:000 (0x00 --> 0000 0000)
寄存器025:000 (0x00 -> 0000 0000)
寄存器026:001 (0x01 -> 0000 0001)
寄存器027:132 (0x84 --> 1000 0100)
寄存器028:000 (0x00 -> 0000 0000)
寄存器029:000 (0x00 -> 0000 0000)
寄存器030:001 (0x01 -> 0000 0001)
寄存器031:000 (0x00 -> 0000 0000)
寄存器032:000 (0x00 -> 0000 0000)
寄存器033:000 (0x00 -> 0000 0000)
寄存器034:000 (0x00 -> 0000 0000)
寄存器035:000 (0x00 -> 0000 0000)
寄存器036:196 (0xC4 -> 1100 0100)
寄存器037:102 (0x66 --> 0110 0110)
寄存器038:000 (0x00 -> 0000 0000)
寄存器039:000 (0x00 -> 0000 0000)
寄存器040:000 (0x00 -> 0000 0000)
寄存器041:000 (0x00 -> 0000 0000)
寄存器042:014 (0x0E --> 0000 1110)
寄存器043:000 (0x00 -> 0000 0000)
寄存器044:000 (0x00 -> 0000 0000)
寄存器045:000 (0x00 -> 0000 0000)
寄存器046:000 (0x00 -> 0000 0000)
寄存器047:000 (0x00 -> 0000 0000)
寄存器048:000 (0x00 -> 0000 0000)
寄存器049:000 (0x00 -> 0000 0000)
寄存器050:000 (0x00 -> 0000 0000)
寄存器051:000 (0x00 --> 0000 0000)
寄存器052:000 (0x00 -> 0000 0000)
寄存器053:018 (0x12 -> 0001 0010)
寄存器054:002 (0x02 -> 0000 0010)
寄存器055:014 (0x0E --> 0000 1110)
寄存器056:002 (0x02 -> 0000 0010)
寄存器057:000 (0x00 -> 0000 0000)
寄存器058:000 (0x00 -> 0000 0000)
寄存器059:000 (0x00 -> 0000 0000)
寄存器060:001 (0x01 -> 0000 0001)
寄存器061:007 (0x07 -> 0000 0111)
寄存器062:000 (0x00 -> 0000 0000)
寄存器063:020 (0x14 -> 0001 0100)
寄存器064:012 (0x0C -> 0000 1100)
寄存器065:000 (0x00 -> 0000 0000)
寄存器066:000 (0x00 -> 0000 0000)
寄存器067:000 (0x00 -> 0000 0000)
寄存器068:111 (0x6f --> 0110 1111)
寄存器069:056 (0x38 -> 0011 1000)
寄存器070:000 (0x00 --> 0000 0000)
寄存器071:000 (0x00 -> 0000 0000)
寄存器072:000 (0x00 -> 0000 0000)
寄存器073:000 (0x00 -> 0000 0000)
寄存器074:000 (0x00 -> 0000 0000)
寄存器075:238 (0xEE -> 1110 1110)
寄存器076:016 (0x10 -> 0001 0000)
寄存器077:216 (0xD8 --> 1101 1000)
寄存器078:126 (0x7E --> 0111 1110)
寄存器079:227 (0xE3 ->1110 0011)
寄存器080:000 (0x00 -> 0000 0000)
寄存器081:232 (0xE8 -> 1110 1000)
寄存器082:000 (0x00 -> 0000 0000)
寄存器083:030 (0x1E -> 0001 1110)
寄存器084:030 (0x1E -> 0001 1110)
寄存器085:000 (0x00 -> 0000 0000)
寄存器086:064 (0x40 -> 0100 0000)
寄存器087:192 (0xC0 --> 1100 0000)
寄存器088:038 (0x26 -> 0010 0110)
寄存器089:000 (0x00 -> 0000 0000)
寄存器090:016 (0x10 -> 0001 0000)
寄存器091:000 (0x00 -> 0000 0000)
寄存器092:000 (0x00 -> 0000 0000)
寄存器093:000 (0x00 -> 0000 0000)
寄存器094:000 (0x00 -> 0000 0000)
寄存器095:000 (0x00 -> 0000 0000)
寄存器096:127 (0x7F --> 0111 1111)
**超过寄存器127、所有值都是0。
第1页:
寄存器000:001 (0x01 -> 0000 0001)
寄存器001:000 (0x00 -> 0000 0000)
寄存器002:000 (0x00 -> 0000 0000)
寄存器003:000 (0x00 -> 0000 0000)
寄存器004:000 (0x00 -> 0000 0000)
寄存器005:000 (0x00 -> 0000 0000)
寄存器006:000 (0x00 -> 0000 0000)
寄存器007:000 (0x00 -> 0000 0000)
寄存器008:000 (0x00 -> 0000 0000)
寄存器009:060 (0x3C --> 0011 1100)
寄存器010:000 (0x00 -> 0000 0000)
寄存器011:016 (0x10 -> 0001 0000)
寄存器012:008 (0x08 -> 0000 1000)
寄存器013:008 (0x08 -> 0000 1000)
寄存器014:000 (0x00 -> 0000 0000)
寄存器015:000 (0x00 -> 0000 0000)
寄存器016:006 (0x06 -> 0000 0110)
寄存器017:006 (0x06 --> 0000 0110)
寄存器018:064 (0x40 -> 0100 0000)
寄存器019:064 (0x40 -> 0100 0000)
寄存器020:000 (0x00 -> 0000 0000)
寄存器021:000 (0x00 -> 0000 0000)
寄存器022:000 (0x00 --> 0000 0000)
寄存器023:000 (0x00 -> 0000 0000)
寄存器024:000 (0x00 --> 0000 0000)
寄存器025:000 (0x00 -> 0000 0000)
寄存器026:000 (0x00 -> 0000 0000)
寄存器027:000 (0x00 -> 0000 0000)
寄存器028:000 (0x00 -> 0000 0000)
寄存器029:000 (0x00 -> 0000 0000)
寄存器030:000 (0x00 -> 0000 0000)
寄存器031:000 (0x00 -> 0000 0000)
寄存器032:000 (0x00 -> 0000 0000)
寄存器033:000 (0x00 -> 0000 0000)
寄存器034:000 (0x00 -> 0000 0000)
寄存器035:000 (0x00 -> 0000 0000)
寄存器036:000 (0x00 -> 0000 0000)
寄存器037:000 (0x00 -> 0000 0000)
寄存器038:000 (0x00 -> 0000 0000)
寄存器039:000 (0x00 -> 0000 0000)
寄存器040:000 (0x00 -> 0000 0000)
寄存器041:000 (0x00 -> 0000 0000)
寄存器042:000 (0x00 --> 0000 0000)
寄存器043:000 (0x00 -> 0000 0000)
寄存器044:000 (0x00 -> 0000 0000)
寄存器045:000 (0x00 -> 0000 0000)
寄存器046:000 (0x00 -> 0000 0000)
寄存器047:000 (0x00 -> 0000 0000)
寄存器048:000 (0x00 -> 0000 0000)
寄存器049:000 (0x00 -> 0000 0000)
寄存器050:000 (0x00 -> 0000 0000)
寄存器051:104 (0x68 ->0110 1000)
寄存器052:064 (0x40 -> 0100 0000)
寄存器053:000 (0x00 -> 0000 0000)
寄存器054:064 (0x40 -> 0100 0000)
寄存器055:000 (0x00 -> 0000 0000)
寄存器056:000 (0x00 -> 0000 0000)
寄存器057:000 (0x00 -> 0000 0000)
寄存器058:000 (0x00 -> 0000 0000)
寄存器059:040 (0x28 ->0010 1000)
寄存器060:040 (0x28 ->0010 1000)
寄存器061:000 (0x00 -> 0000 0000)
寄存器062:000 (0x00 -> 0000 0000)
寄存器063:192 (0xC0 --> 1100 0000)
**超过寄存器64、所有值都是0。
谢谢!
本
[编辑]如果我将 WCLK 保留为8kHz 但将 BLCK 增加到256kHz、我是否可以获得16位数据?