请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
https://e2e.ti.com/support/audio-group/audio/f/audio-forum/776878/pcm3060-device-doesn-t-power-up
部件号:PCM3060大家好,
我无法打开PCM3060。 我按照 手册( 第 16-17)。 尝试并验证了许多事情,现在我没有找到问题的根源。
我的开机顺序是:
- 重置针脚过低
- 通过SPI (~0,5MHz)写入配置寄存器
- 重置针脚高
- ADC-,DAC节电打开(通过SPI)
- 等待100毫秒
- ADC-,DAC省电关闭(通过SPI)
- 没有发生任何情况:没有来自ADC的数据。 DAC输出固定到VCOM。 设备没有生命反应
其他信息:
- 使用BCLK2,LRCK2时,DAC和ADC都应作为从属设备工作。 引脚BCLK1,LRCK1和SCK1处于浮动状态。
- LRCK=48kHz,BCLK=3072kHz,SCK=1.2288万kHz
- SPI模式VDD上的模式引脚。
- VDD为~ 3.65V
- VCC为~ 4.8V
- 所有引脚(包括BCLK2,LRCK2,SCK2,SPI模式)均使用逻辑分析器/OSCi /万用表进行验证。 都获得正确的信号/频率。
- SPI值已验证:所有值均正确发送。
直接从器件引脚捕获的通电序列的信号分析:
缩放至第一条SPI消息:("Data Out"(数据输出)是DAC的Data In (数据输入),"Data In (数据输入)"是ADC的输出)
印刷电路板:
配置和开机顺序的C代码:
void init_pcm3060(void){printf("Initializing
PCM3060\n");
int i=0;
uint16_t reg[10];
uint16_t reg_release=0;
//Regs
reg[0]=64<8
//注册ID
|0<7 //MRST:模式控制重置(0=设置为
系统默认值/0=6)|Resync)
|1<<5 //ADPSV:ADC省电控制(1=省电)
|1<4 //DAPSV:DAC省电控制(1=省电)
|0;//S/E:单选结束或差分选择(0=diff)
REG[1]=65<8
//寄存器ID
|255;//DAC衰减水平左侧(255=REG;<8=REG; REG=66=0;<8=REGISD=衰减
//DAC右侧衰减级别(255=无衰减)
reg[3]=67<<8
//寄存器ID
|0<7 /CSEL2:时钟选择DAC (0= SCK2,BCK2,LRCK2已启用)
|0b000<4 //M/S:主选择DAC (0b000=从属模式)|Dac
0b01;//|FV2
+已启用)|01<8位采样频率/DAC=01<0:d0 (dac 0:d0:dc 0 (d8)
输出相位选择(0=非反向)
|0<1//MUT22:左侧软静音控制(0=无静音)
|0;//MUT21:右侧软静音控制(0=无静音)
REG[5]=69<8
//注册ID
|DMC0//FLT :数字滤波器回放控制数字滤波器(0=dac清晰回放控制)<0=01/01kHz/<dac
:0
取消强调控制DAC (0=禁用)
|0<1//ZREV:零检测极性(0=高)
|0;//Azro :零标记功能选择
衰减[6]=70<8//寄存器ID |215;//ADC衰减水平左侧(215=0dB) REG[7]=71<8//REGID =70<1</ECD1|1|1/CK1=1=1/CK1=1/CK1=072=1/CN=1=1/CN1=1=1/CDZ/1=1=1/CX1/CX1=1=1=1/CX1/CX1/CX1=1=1/CX1=1/CX1=1/CX1=1/CX1=1/CX1=1/C
主选择ADC (0b000=从属)
|0b01;//FMT2:音频接口格式ADC (01=24位LJ)
RE[9]=73<<8
//寄存器ID
|1<4 //ZCDD:零交叉检测禁用(1=禁用)
V1 0<3 //BYP:HPF旁路控制ADC (0=HPF |1;|MUT0=0:
无静音|0/ 0:0:0:0:0:0
右侧软静音控制ADC (0=无静音)
//释放ADC/DAC省电模式的寄存器
REG_RELEASE =
64<8 //寄存器ID
|0<7 //MRST:模式控制重置(0=设置为默认值)
|0<6 //SRST:系统重置(0=重新同步)
|0<5 //ADPSV:ADC省电控制(0=正常模式)
|0<4 //DAPSV:DAC省电控制(0=正常模式)
|0;//S/E:
SPI结束或差分选择(0=diff)//启动和初始化序列GPIO GPIO _GPIO写入引脚(GPIOG,IO_PIN_0,0);/HAL_100;单引脚电源
延迟/PHA/1) //WAIT
//写入配置寄存器
(i=0;I<sizeof(reg)/2;i+){
HAL_GPIO写入引脚(GPIOG,GPIO PIN_1,0);//MS LOW:
} SPI选择器件HAL_SPI_Transmit (&hspi3,(uint8_t *)®ister[I],11000)引脚SPI_PHA_PHA(GPI_ST_100pin /1000),发送引脚/100p_PHA1/SPI_PHA;1,发送引脚/100p_PHI_PEN)gPI_PHA(GPI_PE_PHI_PE_PHA;100p_PHA;1,发送引脚/100p_PHI_PEN)gPI_PHI_PE_PHA=100p_PHA;1,发送引脚/100p_PHI_PE_PHA;1,发送引脚/100p_PHA;100p_PHI_PE_PHA;1,发送引脚/100p_PHI_PE_PHI_PE_PHI_PEN(GPI_SE_PH
我缺少什么? 我还能尝试什么? 设备是否可能损坏?


