This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
input采用2通道模拟差分输入,用I2c配置5120,BCLK和FSYNC有波形,SDOUT无输出。然后我查看DEV_STS状态寄存器发现值是c0(active mode, adc ch power down状态),但我设置了IN_CH_EN其中的ch1和ch2为enable状态。
i2c_write(PAGE_CFG_ADDRESS, PAGE_CFG_PAGE_0); i2c_write(SW_RESET_ADDRESS, SW_RESET_RESET); bflb_mtimer_delay_ms(10); i2c_write(SLEEP_CFG_ADDRESS, SLEEP_CFG_AREG_SELECT_INTERNAL | SLEEP_CFG_SLEEP_ENZ_ACTIVE); bflb_mtimer_delay_ms(10); i2c_write(ASI_CFG0_ADDRESS, ASI_CFG0_FORMAT_LJ | ASI_CFG0_WLEN_32_BITS); i2c_write(ASI_CH1_ADDRESS, ASI_CH1_CH1_SLOT_0); i2c_write(ASI_CH2_ADDRESS, ASI_CH2_CH2_SLOT_32); i2c_write(MST_CFG0_ADDRESS, MST_CFG0_MST_SLV_CFG_MASTER | MST_CFG0_FS_MODE_48_KHZ | MST_CFG0_MCLK_FREQ_SEL_12_MHZ);//mclk = 256 * freq_sample i2c_write(MST_CFG1_ADDRESS, MST_CFG1_FS_RATE_44P1_48_KHZ | MST_CFG1_FS_BCLK_RATIO_64); i2c_write(CLK_SRC_ADDRESS, CLK_SRC_DIS_PLL_SLV_CLK_SRC_BCLK | CLK_SRC_MCLK_FREQ_SEL_MODE_MCLK_FREQ_SEL | CLK_SRC_MCLK_RATIO_SEL_256);//ratio = clk / FSYNC i2c_write(GPIO_CFG0_ADDRESS, GPIO_CFG0_GPIO1_CFG_IRQ | GPIO_CFG0_GPIO1_DRV_ACTLOW_WEAKHIGH); i2c_write(GPO_CFG0_ADDRESS, GPO_CFG0_GPO1_CFG_DISABLED); i2c_write(GPI_CFG0_ADDRESS, GPI_CFG0_GPI1_CFG_DISABLED | GPI_CFG0_GPI2_CFG_DISABLED); i2c_write(INT_MASK0_ADDRESS, ~INT_MASK0_VAD_POWERUP_MASK); i2c_write(CM_TOL_CFG_ADDRESS, CM_TOL_CFG_CH1_INP_100mVpp | CM_TOL_CFG_CH2_INP_100mVpp); i2c_write(BIAS_CFG_ADDRESS, BIAS_CFG_MBIAS_VAL_VREF | BIAS_CFG_ADC_FSCALE_1VRMS); i2c_write(CH1_CFG0_ADDRESS, CH1_CFG0_INTYP_MIC | CH1_CFG0_INSRC_DIFF | CH1_CFG0_DC_AC | CH1_CFG0_IMP_2P5k | CH1_CFG0_DREEN_ENABLED); i2c_write(CH1_CFG1_ADDRESS, CH1_CFG1_GAIN_42dB); i2c_write(CH1_CFG2_ADDRESS, CH1_CFG2_DVOL_27dB); i2c_write(CH2_CFG0_ADDRESS, CH2_CFG0_INTYP_MIC | CH2_CFG0_INSRC_DIFF | CH2_CFG0_DC_AC | CH2_CFG0_IMP_2P5k | CH2_CFG0_DREEN_ENABLED); i2c_write(CH2_CFG1_ADDRESS, CH2_CFG1_GAIN_42dB); i2c_write(CH2_CFG2_ADDRESS, CH2_CFG2_DVOL_27dB); i2c_write(IN_CH_EN_ADDRESS, IN_CH_EN_CH1_ENABLED | IN_CH_EN_CH2_ENABLED | IN_CH_EN_CH3_DISABLED | IN_CH_EN_CH4_DISABLED); i2c_write(ASI_OUT_CH_EN_ADDRESS, ASI_OUT_CH_EN_CH1_ENABLED | ASI_OUT_CH_EN_CH2_ENABLED | ASI_OUT_CH_EN_CH3_TRI_STATE | ASI_OUT_CH_EN_CH4_TRI_STATE); i2c_write(PWR_CFG_ADDRESS, PWR_CFG_MICBIAS_PDZ_ON | PWR_CFG_ADC_PDZ_ON | PWR_CFG_PLL_PDZ_ON | PWR_CFG_DYN_CH_PUPD_EN_OFF | PWR_CFG_DYN_MAXCH_SEL_12 | PWR_CFG_VAD_EN_ENABLED);
询问如何才能power up以及SDO输出数据。
您好,
DEV_STS0寄存器值是C0的话,是使能了ch1和ch2:
FSYNC和BCLK实际测量频率是多少?波形质量怎样?设置的采样率是多少?
您是否验证了寄存器写入后可以正确读出来?您可以读出您的寄存器配置吗?
I2C上的对地电容去掉。
{PAGE_CFG_ADDRESS, PAGE_CFG_PAGE_0}, {SW_RESET_ADDRESS, SW_RESET_RESET}, {SLEEP_CFG_ADDRESS, SLEEP_CFG_AREG_SELECT_INTERNAL | SLEEP_CFG_SLEEP_ENZ_ACTIVE}, {ASI_CFG0_ADDRESS, ASI_CFG0_FORMAT_LJ | ASI_CFG0_WLEN_32_BITS}, {ASI_CH1_ADDRESS, ASI_CH1_CH1_SLOT_0}, {ASI_CH2_ADDRESS, ASI_CH2_CH2_SLOT_32}, {MST_CFG0_ADDRESS, MST_CFG0_MST_SLV_CFG_MASTER | MST_CFG0_AUTO_CLK_CFG_ENABLED | MST_CFG0_AUTO_MODE_PLL_DIS_ENABLED | MST_CFG0_BCLK_FSYNC_GATE_NO_GATING | MST_CFG0_FS_MODE_48_KHZ | MST_CFG0_MCLK_FREQ_S EL_12P288_MHZ},//mclk = 256 * freq_sample {MST_CFG1_ADDRESS, MST_CFG1_FS_RATE_44P1_48_KHZ | MST_CFG1_FS_BCLK_RATIO_64}, {CLK_SRC_ADDRESS, CLK_SRC_DIS_PLL_SLV_CLK_SRC_BCLK | CLK_SRC_MCLK_FREQ_SEL_MODE_MCLK_FREQ_SEL | CLK_SRC_MCLK_RATIO_SEL_256},//ratio = clk / FSYNC {GPIO_CFG0_ADDRESS, GPIO_CFG0_GPIO1_CFG_IRQ | GPIO_CFG0_GPIO1_DRV_ACTLOW_WEAKHIGH}, {GPO_CFG0_ADDRESS, GPO_CFG0_GPO1_CFG_DISABLED}, {GPI_CFG0_ADDRESS, GPI_CFG0_GPI1_CFG_DISABLED | GPI_CFG0_GPI2_CFG_DISABLED}, {INT_MASK0_ADDRESS, ~INT_MASK0_VAD_POWERUP_MASK}, {CM_TOL_CFG_ADDRESS, CM_TOL_CFG_CH1_INP_100mVpp | CM_TOL_CFG_CH2_INP_100mVpp}, {BIAS_CFG_ADDRESS, BIAS_CFG_MBIAS_VAL_VREF | BIAS_CFG_ADC_FSCALE_1VRMS}, {CH1_CFG0_ADDRESS, CH1_CFG0_INTYP_MIC | CH1_CFG0_INSRC_DIFF | CH1_CFG0_DC_AC | CH1_CFG0_IMP_2P5k | CH1_CFG0_DREEN_DISABLED}, {CH1_CFG1_ADDRESS, CH1_CFG1_GAIN_42dB}, {CH1_CFG2_ADDRESS, CH1_CFG2_DVOL_27dB}, {CH2_CFG0_ADDRESS, CH2_CFG0_INTYP_MIC | CH2_CFG0_INSRC_DIFF | CH2_CFG0_DC_AC | CH2_CFG0_IMP_2P5k | CH2_CFG0_DREEN_DISABLED}, {CH2_CFG1_ADDRESS, CH2_CFG1_GAIN_42dB}, {CH2_CFG2_ADDRESS, CH2_CFG2_DVOL_27dB}, {IN_CH_EN_ADDRESS, IN_CH_EN_CH1_ENABLED | IN_CH_EN_CH2_ENABLED | IN_CH_EN_CH3_DISABLED | IN_CH_EN_CH4_DISABLED}, {ASI_OUT_CH_EN_ADDRESS, ASI_OUT_CH_EN_CH1_ENABLED | ASI_OUT_CH_EN_CH2_ENABLED | ASI_OUT_CH_EN_CH3_TRI_STATE | ASI_OUT_CH_EN_CH4_TRI_STATE}, {PWR_CFG_ADDRESS, PWR_CFG_MICBIAS_PDZ_ON | PWR_CFG_ADC_PDZ_ON | PWR_CFG_PLL_PDZ_ON | PWR_CFG_DYN_CH_PUPD_EN_OFF | PWR_CFG_DYN_MAXCH_SEL_12 | PWR_CFG_VAD_EN_ENABLED},
1. 我打印了DEV_STS1的值是0xc0
2. Fsync和Bclk的实际测量的值和我设想的差很远,我本意是Fsync=48k,Mclk=256xFsync=12.288m,Bclk=Fsync * 32bit * 2channel =3072000
3.我读取ASI_STS的值是0x14
4. 我验证了写入I2c后读取验证成功
附上I2c设置的值
[10:31:45.142] - [0m[I][5120] address:00 value:00(00) [10:31:45.146] - [0m[I][5120] address:01 value:00(01) [10:31:45.147] - [0m[I][5120] address:02 value:81(81) [10:31:45.157] - [0m[I][5120] address:07 value:b0(b0) [10:31:45.166] - [0m[I][5120] address:0b value:00(00) [10:31:45.177] - [0m[I][5120] address:0c value:20(20) [10:31:45.189] - [0m[I][5120] address:13 value:81(81) [10:31:45.198] - [0m[I][5120] address:14 value:42(42) [10:31:45.207] - [0m[I][5120] address:16 value:88(88) [10:31:45.217] - [0m[I][5120] address:21 value:22(22) [10:31:45.227] - [0m[I][5120] address:22 value:00(00) [10:31:45.237] - [0m[I][5120] address:2b value:00(00) [10:31:45.247] - [0m[I][5120] address:33 value:ef(ef) [10:31:45.257] - [0m[I][5120] address:3a value:00(00) [10:31:45.267] - [0m[I][5120] address:3b value:02(02) [10:31:45.277] - [0m[I][5120] address:3c value:00(00) [10:31:45.287] - [0m[I][5120] address:3d value:a8(a8) [10:31:45.297] - [0m[I][5120] address:3e value:ff(ff) [10:31:45.306] - [0m[I][5120] address:41 value:00(00) [10:31:45.317] - [0m[I][5120] address:42 value:a8(a8) [10:31:45.327] - [0m[I][5120] address:43 value:ff(ff) [10:31:45.337] - [0m[I][5120] address:73 value:c0(c0) [10:31:45.347] - [0m[I][5120] address:74 value:c0(c0) [10:31:45.357] - [0m[I][5120] address:75 value:e1(e1)
配置成master模式时,您需要输入MCLK,您是使用哪个管脚输入的MCLK时钟?GPI还是GPIO,寄存器没看出来您配置。
下面应用手册有将TLV320ADCx120 配置为音频总线master 时所需的输入参数和寄存器系数,您看下对您寄存器配置有帮助:
https://www.ti.com/lit/an/sbaa495a/sbaa495a.pdf