完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
大家好: 现有6678与一片switch(IDT-cps1848)通信的的情况(6678和1848各一块单板,通过高速接插件相连,已充分做到等长等条件)。6678的参考时钟为156.25MHZ,配置为4X模式,无论使用1.25G还是3.125G波特率,srio端口均不能正常打开,死在了以下函数中。 /*---------wait all enabled ports OK-------------*/ for(i=0; i
[ if(srio_cfg->blockEn.bLogic_Port_EN) [ while(0==(gpSRIO_regs->RIO_SP.RIO_SP_ERR_STAT& CSL_SRIO_RIO_SP_ERR_STAT_PORT_OK_MASK)); ] ] 查看SPn_ERR_STAT寄存器为0x00000001,即Port Uninitialized=1。 Srio配置(主要)如下: serdes_cfg.commonSetup.inputRefClock_MHz = 156.25; srio_cfg.loopback_mode= SRIO_NO_LOOPBACK; srio_cfg.device_ID_routing_config= dsp0_device_ID_routing_config; srio_cfg.uiNumDeviceId= sizeof(dsp0_device_ID_routing_config)/sizeof(SRIO_Device_ID_Routing_Config); serdes_cfg.commonSetup.loopBandwidth= SERDES_PLL_LOOP_BAND_MID; srio_cfg.serdes_cfg= &serdes_cfg; serdesLinkSetup.txOutputSwing = 15; /*0~15 represents between 100 and 850 mVdfpp */ serdesLinkSetup.testPattern = SERDES_TEST_DISABLED; serdesLinkSetup.rxAlign = SERDES_RX_COMMA_ALIGNMENT_ENABLE; serdesLinkSetup.rxInvertPolarity = SERDES_RX_NORMAL_POLARITY; serdesLinkSetup.rxTermination = SERDES_RX_TERM_COMMON_POINT_AC_COUPLE; serdesLinkSetup.rxEqualizerConfig= SERDES_RX_EQ_ADAPTIVE; serdesLinkSetup.rxCDR = 5; serdesLinkSetup.txInvertPolarity = SERDES_TX_NORMAL_POLARITY; SRIO_Interrupts_Init(); serdesLinkSetup.linkSpeed_GHz= 3.125; srio_cfg.srio_1x2x4x_path_control= SRIO_PATH_CTL_4xLaneABCD; srio_identify_used_ports_lanes(srio_cfg.srio_1x2x4x_path_control); KeyStone_SRIO_Init(&srio_cfg); 由于配置为3.125G时,MPY和RATE的测试程序配置异常,故自行修改:根据KeyStone Architecture Serial Rapid IO (SRIO) User Guide的Table 3-7配置,并观察寄存器SRIO_SERDES_CFGPLL的Mpy位为10(00101000b);SRIO_SERDES_CFGRX[0-3]的RATE位为Half(0b01)。 最让人疑惑的是,寄存器SPn_CTL的Initialized Port Width位显示为0b000 - Single-lane port, lane 0,理论上应该是0b010 - Four-lane port。(查看寄存器PLM_SP(n)_PATH_CTL,PATH_CONFIG位为100 = Configuration 4 - 4 lanes, a maximum of 4 ports;PATH_MODE位为100 = Mode 4,可以发现,4X模式正常配置) 现已基本排除1848配置问题(1848与FPGA通信正常)、板件和板子设计问题(srio走线充分等长)、DSP自身硬件问题(可以通过serdes的自闭环测试)、srio参考时钟问题(已用示波器观察)。 请问各位大牛, 1、在保持3.125G,4X模式的基础上,还有什么造成port初始化不通过的可能问题或配置错误?以及解决方案。(个人感觉配置错误的可能性较高) 2、port初始化不通过是否与上文和下文程序中的绿色标记处的参数有关: /*TWPST1: Adjacent Post Cursor Tap Weight. If trace length is 4”, start with 20 (-10%). If trace length is between 4” and 10”, start with 27 (-27.5%).*/ (18<
(1< http://www.deyisupport.com/question_answer/dsp_ARM/c6000_multicore/f/53/t/19854.aspx http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/64364.aspx 万分感激!! |
|
相关推荐
3个回答
|
|
一般是CSR/CAR寄存器配置不对造成的;
你可以试试 1. 1X模式通不通? 2. 两边的地址是否一致(8 or 16)? 3. PER_SET_CTNL里的Prescaler配的值是否正确? 4. 两边的波特率是否一致? |
|
|
|
您好!非常感谢您的回答! 问题已经解决。主要是以下2个问题导致: 1、6678在硬件配置时,有1,2个推荐悬空的RSV的管脚没有悬空; 2、srio的走线虽然做到等长和阻抗匹配,但过孔较多(单路有6个过孔)、接插件板布线间隔非常有限(只能从孔间隙间走线),导致信号噪声严重(用示波器看眼图基本没眼,但可能和没有差分探头有关)。 现将速率降到2.5GHz即可正常通信。 虽然问题解决了,但还有几个问题: 1、Prescaler配置是用来改变什么参数的? 2、RSV悬空管脚明显和外设功能相关,能否在数据手册中具体说明? 3、self test kit中srio工程配置时,速率配为3.125GHz时的MPY和RATE值不对,能否修正? 谢谢! |
|
|
|
看来还是和信号质量相关啊,Prescaler主要是配置VBUS的频率区间,看SRIO手册上有说明; RSV暂时没有具体说明,一般都是按最新的Datasheet去处理。 |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
709 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
618 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1080 浏览 1 评论
774 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
537 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
189浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
147浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
16浏览 13评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
138浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
132浏览 12评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:23 , Processed in 0.855584 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号