AIC3254 启动问题 :没有IIS,时钟是用MSP430产生的8M给AIC3254工作时钟的,但是每次启动要用手摸一下MCLK才能启动,什么原因呢!大侠们能否说明一下AIC3254启动过程。
另外需要功能调节延时,请问怎么实现? 目前已经实现固定的延时。谢谢!
Derek Xie:
你好:
AIC3254的启动过程可参考附件的第87页和txt文档。
你说的这种情况很奇怪,但是通常是由于配置AIC3254不正确所导致。请问你是如何配置AIC3254的?
此外你说的需要功能调节延时是需要用在哪里?您说在固件中的延迟已经实现是说Pure Path Studio中实现么?
jian li79:
回复 Derek Xie:
HI Derek
如何配置AIC3254,是由Pure Path Studio 产生main_Rate8.cfg ,按main_Rate8.cfg里面的顺序写命令的。
另外MSP430写程序,这p1.1接AIC3254 的RESET引脚,P1.4产生一个8M的时钟给AIC3254给 MCLK 引脚。请问这两个引脚操作有什么注意的、?
jian li79:
回复 Derek Xie:
此外你说的需要功能调节延时是需要用在哪里?您说在固件中的延迟已经实现是说Pure Path Studio中实现么?
补充:调节延时功能是MIC 的声音到耳机输出的延时,这样效果可助听器类似,外接一个按键做调节。 固定的延迟在Pure Path Studio中实现了,但是将更改为MCU+AIC3254自己做的PCB小板上出现用手接触一下才能有声音输出。暂时没有找到原因在哪,急急急!
Derek Xie:
回复 jian li79:
你好:
由于Purepath下载后,会把Codec配置成默认的格式。他对PLL的配置的分频系数是按照MCLKC为4.096M的配置。并且会配置Codec为从模式。请问你的系统中,I2S时钟是外部提供的,还是Codec自己产生的。如果是外部提供仅需要修改AIC3254的分频器和PLL的配置。如果是自己产生,还需要将Codec配置从主模式,Power on BCLK。
Derek Xie:
回复 jian li79:
你好:
如果是MIC进,Headphone出,那么Codec是主。
jian li79:
回复 Derek Xie:
如图,codec 时钟是 MCU产生8M 给MCLK
配置如下:
# ————————————————————— page 0 is selectedw 30 00 00# # reg[ 0][ 1] = 0x01 ; Initialize the device through software reset> 01# ————————————————————— page 1 is selectedw 30 00 01# # reg[ 1][ 1] = 0x08 ; Disable weak AVDD to DVDD connection> 08# # reg[ 1][ 2] = 0x00 ; Enable Master Analog Power Control> 00# # reg[ 1][ 71] = 0x32 ; Set the input power-up time to 3.1msw 30 47 32# # reg[ 1][123] = 0x05 ; Force REF charging time to 40msw 30 7b 05# ————————————————————— page 8 is selected
省略中间 一起写完
# ————————————————————— page 166is selected
后面再写配置
# ————————————————————— page 0 is selectedw 30 00 00# # reg[ 0][ 60] = 0x00 ; Use miniDSP_D for signal processingw 30 3c 00# # reg[ 0][ 61] = 0x00 ; Use miniDSP_A for signal processing> 00# # reg[ 0][ 17] = 0x08 ; 8x Interpolationw 30 11 08# # reg[ 0][ 23] = 0x04 ; 4x Decimationw 30 17 04# w 30 0f 03# > 88# w 30 15 03# > 88# ————————————————————— page 8 is selectedw 30 00 08# # reg[ 8][ 1] = 0x04 ; adaptive mode for ADC> 04# ————————————————————— page 44 is selectedw 30 00 2c# # reg[ 44][ 1] = 0x04 ; adaptive mode for DAC> 04# ————————————————————— page 0 is selectedw 30 00 00# # reg[ 0][ 5] = 0x91 ; P=1, R=1, J=24w 30 05 91# # reg[ 0][ 6] = 0x18 ; P=1, R=1, J=24> 18# # reg[ 0][ 7] = 0x00 ; D=0000 (MSB)> 00# # reg[ 0][ 8] = 0x00 ; D=0000 (LSB)> 00# # reg[ 0][ 4] = 0x03 ; PLL_clkin = MCLK, codec_clkin = PLL_CLK, PLL onw 30 04 03# # reg[ 0][254] = 0x0a ; Delay 10ms for PLL to lockw 30 fe 0a# # reg[ 0][ 12] = 0x88 ; MDAC = 8, divider powered onw 30 0c 88# # reg[ 0][ 13] = 0x03 ; DOSR = 768 (MSB)> 03# # reg[ 0][ 14] = 0x00 ; DOSR = 768 (LSB)> 00# # reg[ 0][ 18] = 0x02 ; NADC = 2, divider powered offw 30 12 02# # reg[ 0][ 19] = 0xb0 ; MADC = 48, divider powered on> b0# # reg[ 0][ 20] = 0x80 ; AOSR = 128> 80# # reg[ 0][ 11] = 0x82 ; NDAC = 2, divider powered onw 30 0b 82# ————————————————————— page 1 is selectedw 30 00 01# # reg[ 1][ 51] = 0x40 ; Mic Bias enabled, Source = Avdd, 1.25Vw 30 33 40# # reg[ 1][ 52] = 0x40 ; Route IN1L to LEFT_P with 10K input impedance> 40# # reg[ 1][ 54] = 0x40 ; Route CM1L to LEFT_M with 10K input impedancew 30 36 40# # reg[ 1][ 55] = 0x40 ; Route IN1R to RIGHT_P with 10K input impedance> 40# # reg[ 1][ 57] = 0x40 ; Route CM1R to RIGHT_M with 10K input impedancew 30 39 40# # reg[ 1][ 59] = 0x00 ; Enable MicPGA_L Gain Control, 0dBw 30 3b 00# # reg[ 1][ 60] = 0x00 ; Enable MicPGA_R Gain Control, 0dB> 00# ————————————————————— page 0 is selectedw 30 00 00# # reg[ 0][ 81] = 0xc0 ; Power up LADC/RADCw 30 51 c0# # reg[ 0][ 82] = 0x00 ; Unmute LADC/RADC> 00# ————————————————————— page 1 is selectedw 30 00 01# # reg[ 1][ 20] = 0x25 ; De-pop: 5 time constants, 6k resistancew 30 14 25# # reg[ 1][ 12] = 0x08 ; Route LDAC to HPLw 30 0c 08# # reg[ 1][ 13] = 0x08 ; Route RDAC to HPR> 08# # reg[ 1][ 14] = 0x08 ; Route LDAC to LOL> 08# # reg[ 1][ 15] = 0x08 ; Route LDAC to LOR> 08# ————————————————————— page 0 is selectedw 30 00 00# # reg[ 0][ 63] = 0xd4 ; Power up LDAC/RDAC w/ soft steppingw 30 3f d4# ————————————————————— page 1 is selectedw 30 00 01# # reg[ 1][ 16] = 0x00 ; Unmute HPL driver, 0dB Gainw 30 10 00# # reg[ 1][ 17] = 0x00 ; Unmute HPR driver, 0dB Gain> 00# # reg[ 1][ 18] = 0x00 ; Unmute LOL driver, 0dB Gain> 00# # reg[ 1][ 19] = 0x00 ; Unmute LOR driver, 0dB Gain> 00# # reg[ 1][ 9] = 0x3c ; Power up HPL/HPR and LOL/LOR driversw 30 09 3c# ————————————————————— page 0 is selectedw 30 00 00# # reg[ 0][ 64] = 0x00 ; Unmute LDAC/RDACw 30 40 00# # reg[0][82] = 0w 30 52 00# # reg[0][83] = 0> 00# # reg[0][86] = 32w 30 56 20# # reg[0][87] = 223> df# # reg[0][88] = 0> 00# # reg[0][89] = 104> 68# # reg[0][90] = 168> a8# # reg[0][91] = 6> 06# # reg[0][92] = 0> 00# # reg[0][84] = 0w 30 54 00# # reg[0][94] = 32w 30 5e 20# # reg[0][95] = 223> df# # reg[0][96] = 0> 00# # reg[0][97] = 104> 68# # reg[0][98] = 168> a8# # reg[0][99] = 6> 06# # reg[0][100] = 0> 00
jian li79:
回复 Derek Xie:
能否详细说明一下,如上怎样改正?
jian li79:
回复 Derek Xie:
谢谢Derek 问题已经解决!