完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人新手一枚,在实现21469例程里面 Power_On_Self_Test的analog_audio_test模块时,使用I2S传输模式对产生的sin信号进行DAC转换从耳机输出,程序正确。在此基础上增加SRC采样速率转换模块。耳机有声音出来,但是声音不对,希望各位能够帮忙解决问题,谢谢!!
|
|
相关推荐
7个回答
|
|
重新修改后,信号经过SRC模块无变化,或者说没有进入到SRC模块中,请大家指导一下程序错在哪里?
|
|
|
|
你好!
1)我建议你先把PCG的代码拿掉,SRC的输入和输出的sclk, fs,SPORT0 的SCLK,FS信号都使用SPORT1的SCLK,FS信号,你看看是否可以听到正确的声音 2)你用PCG的产生SCLK, FS 信号,你用示波器量一下,这2个信号是否正确 3)如果2正确了,你把PCG的信号输入给SPORT0,把SRC的代码拿掉,直接跑sport loopback,你看看是否有正确的声音 |
|
|
|
海蜇pi 发表于 2018-11-13 13:09 你好! 非常感谢你的回答,我在最开始贴的程序确实是错误的,在 Power_On_Self_Test的analog_audio_test模块里面数据是在DAC运行时才被写进去的,所以我的SRC加入的位置不对,我进行了重新修改后,SRU的配置程序如下: void Init_DAI_I2S() { Clear_DAI_Pins();; SRU(PCG_CLKA_O, SRC0_CLK_IP_I); SRU(PCG_FSA_O, SRC0_FS_IP_I); SRU(PCG_CLKA_O, SPORT0_CLK_I); SRU(PCG_FSA_O, SPORT0_FS_I); SRU(SPORT0_DA_O, SRC0_DAT_IP_I); SRU(DAI_PB07_O, SRC0_CLK_OP_I); SRU(DAI_PB08_O, SRC0_FS_OP_I); SRU(HIGH, PBEN12_I); SRU(SRC0_DAT_OP_O, DAI_PB12_I); // DAIP12 (DSDATA1) to SPORT0 DA (TX) //-------------------------------------------------------------------------- // Route SPI signals to AD1939 Control Port. SRU(SPI_MOSI_O, DPI_PB01_I); //Connect MOSI to DPI PB1. SRU(DPI_PB02_O, SPI_MISO_I); //Connect DPI PB2 to MISO. SRU(SPI_CLK_O, DPI_PB03_I); //Connect SPI CLK to DPI PB3. SRU(SPI_FLG0_O, DPI_PB04_I); //Connect SPI FLAG0 to DPI PB4. //--------------------------------------------------------------------------- // Tie pin buffer enable from SPI peripheral to determine whether they are // inputs or outputs SRU(SPI_MOSI_PBEN_O, DPI_PBEN01_I); SRU(SPI_MISO_PBEN_O, DPI_PBEN02_I); SRU(SPI_CLK_PBEN_O, DPI_PBEN03_I); SRU(SPI_FLG0_PBEN_O, DPI_PBEN04_I); } ======================================PCG的设置为: #define CLKIN 25000000 #define SRC0_SAMPLE_RATE 192000 #define BCLK_SRC0 (64 * SRC0_SAMPLE_RATE) #define CLKA_DIVIDER (CLKIN/BCLK_SRC0) #define FSA_DIVIDER (CLKIN/SRC0_SAMPLE_RATE) #define PHASE_SHIFTA (((CLKA_DIVIDER)/2+1)<<20) void InitPCG() { *pPCG_CTLA1=CLKA_DIVIDER | PHASE_SHIFTA; *pPCG_CTLA0=FSA_DIVIDER | ENFSA | ENCLKA; *pPCG_PW=0; *pPCG_SYNC=0; } sine513是频率为1hz的正弦波,产生如下波形: 现在耳机可以听到声音且感觉没有杂音,但是从输出的波形看我怀疑输入信号是否有进入到SRC模块中,因为听到的声音和直接进行DAC转换时设置不同采样率的结果一样?例外SRU配置SRC的输出FS和CLK的时候使用的是DAI_PB07,DAI_PB08的输出,但是因为没有ADC的话,这两个应该没有任何连接,但是设置成别的声音有不对,还请麻烦您帮忙指导一下该怎么解决这个问题 例外,因为条件限制所以没有示波器,请问一下还有别的方法可以查看PCG的产生信号吗? [size=12.800000190734863px]非常期待你的指导和回答,谢谢!!! |
|
|
|
khsahdwu 发表于 2018-11-13 13:25 你好! 1)我的建议是你先把PCG相关的代码拿掉 2) 你的系统的SRU设计有问题,你可以这样配置,所有的SPORT,SRC,以及DAC的FS ,CLK,都共用ADC产生的FS,CLK 1. Connect ADC to SPORT0 2. Connect SPORT1 to SRC1-INPUT 3. Connect SRC1-OUTPUT to SPORT2 4. Connect SPORT3&4 to DAC's 3)你的系统里面需要把SPORT1 ,SPORT3, SPORT4配置成TX,SPORT0,SPORT2配置成RX 4)你需要把数据从SPORT0 RXBUF 拷贝到SPORT 1 TXBUF,从SPORT2 的RX BUF 拷贝到SPORT3&4 TXBuf 5) 关于上面的配置,你可以参看C:Analog DevicesVisualDSP 5.0214xxExamplesADSP-21469 EZ-BoardSPDIF to Analog TalkThru with SRC (C) 6)等你的SRC+SPORT的loopback跑起来了,再考虑把PCG加进来 |
|
|
|
您好! 我在系统中把SPORT2,SPORT3和SPORT4这些内容全部去掉了,现在的程序只是-->SPORT0--->SRC0--->DAC(1939)的方式,信号是内存中sine4000的.dat文件产生的,SPORT0和SRC0的输入时钟和帧同步是PCG产生的,SRC0的CLK_OP_I和FS_OP_I由DAI_PB06_O和DAI_PB07_O提供,耳机里听到的声音正确,但是我不知道是否有经过SRC的模块,因为听到的声音和不加入SRC仅仅把1939的采样率改为192的声音是一样的 |
|
|
|
khsahdwu 发表于 2018-11-13 13:52 你好! 你要确认你的PCG的代码是否正确工作。用示波器看PCG产生的信号比较直观。下面的PCG的代码可以给你参考 #define CLKIN 25000000 #define TX_SAMPLE_RATE 48000 #define RX_SAMPLE_RATE 96000 #define BCLK_TX (64 * TX_SAMPLE_RATE) #define BCLK_RX (64 * RX_SAMPLE_RATE) #define CLKA_DIVIDER (CLKIN/(BCLK_TX)) #define CLKB_DIVIDER (CLKIN/(BCLK_RX)) #define FSA_DIVIDER (CLKIN / TX_SAMPLE_RATE) #define FSB_DIVIDER (CLKIN / RX_SAMPLE_RATE) #define PHASE_SHIFTA (((CLKA_DIVIDER)/2 + 1) << 20) #define PHASE_SHIFTB (((CLKB_DIVIDER)/2 + 1) << 20) *pPCG_CTLA1 = CLKA_DIVIDER | PHASE_SHIFTA; // 48KHz *pPCG_CTLA0 = FSA_DIVIDER | ENFSA | ENCLKA ; *pPCG_CTLB1 = CLKB_DIVIDER | PHASE_SHIFTB; // 96KHz *pPCG_CTLB0 = FSB_DIVIDER | ENFSB | ENCLKB ; |
|
|
|
您好! 非常感谢您的指导,我已经借到示波器了,但是请问一下要怎么使用示波器来查看PCG产生的时钟呢?我在查看ADSP21469EZKIT手册的时候没有看到关于PCG有连接到哪个输出管脚????如果是需要使用程序把PCG的输出引到任何输出设备,比如J4、J5等,那么程序要如何写呢??同样的,如果我要查看SRC的输入输出端信号的话,要怎么使用示波器或者采用代码编程呢? 不好意思我确实刚接触DSP,所以很多问题都不明白,期待您的耐心回答,谢谢!!! |
|
|
|
只有小组成员才能发言,加入小组>>
2297个成员聚集在这个小组
加入小组1100 浏览 2 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1460 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
2001 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4321 浏览 2 评论
9129 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1778浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1747浏览 2评论
1100浏览 2评论
1754浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1460浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-13 15:33 , Processed in 0.894167 second(s), Total 53, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191