创龙科技
直播中

李凤璐

7年用户 203经验值
私信 关注

TL138通道A16Bit与fpga通信,高8位数据不通怎么回事

[tr]通过修改例程AD7606_uPP中FPGAFIFO总线和uPP发送总线位宽为16位,修改DSP例程uPP_B_TO_A, DSP和fpga接口配置代码如下:
void OmaplFpgauPPSetup(void)
{
        // 外设使能
        PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UPP, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);

        // 引脚复用配置
        uPPPinMuxSetup(uPP_CHA_16BIT);

        // uPP复位
        uPPReset(SOC_UPP_0_REGS);

        // 数据格式配置
        uPPDataFmtConfig(SOC_UPP_0_REGS, uPP_CHA, uPP_DataPackingFmt_LJZE | uPP_DataPacking_FULL
                                                        | uPP_InterfaceWidth_16BIT | uPP_DataRate_SINGLE);

        // 通道配置
        uPPChannelConfig(SOC_UPP_0_REGS, uPP_DDRDEMUX_DISABLE | uPP_SDRTXIL_DISABLE | uPP_CHN_ONE
                                                        | uPP_ALL_RECEIVE);

        // 引脚配置
        uPPPinConfig(SOC_UPP_0_REGS, uPP_CHA, uPP_PIN_TRIS | uPP_PIN_ENABLE | uPP_PIN_WAIT | uPP_PIN_START);


        // 时钟配置
        // uPPCLK = (CPUCLK / 2) / (2 * (DIV + 1) (DIV = 0, 1, 2, 3 ... 15)
        // 456MHz 主频下支持的时钟 114MHz、57MHz、38MHz、28.5MHz、22.8MHz ......
        //uPPClkConfig(SOC_UPP_0_REGS, uPP_CHB, 57000000, 228000000, uPP_PIN_PHASE_NORMAL);


        // 中断使能
        uPPIntEnable(SOC_UPP_0_REGS, uPP_DMA_CHI, uPP_INT_EOW);

        // 中断映射
        IntRegister(C674X_MASK_INT5, uPPIsr);
        IntEventMap(C674X_MASK_INT5, SYS_INT_UPP_INT);
        IntEnable(C674X_MASK_INT5);

        // uPP使能
        uPPEnable(SOC_UPP_0_REGS);
}


出现的现象是,收到的高位数据永远都是0x0Exx(uPP发送端口通过写固定数据,高位也是这个现象,可以排出FIFO问题),。哪位大佬开发过类似的,可否指导一下,谢谢!

[/tr]

回帖(3)

王静

2020-5-18 14:37:58
您好,关于upp的8bit和16bit的demo对比,我们有提供对应的例程参考,如果您需要的话,建议您可以跟我们的技术支持沟通,给您发过去参考修改即可。


举报

李正阳

2020-5-18 14:51:35
FPGA端配置了吗?
举报

康沧鹤

2020-5-18 15:10:46
FPGAD端的配置源码在《Spartan-6光盘资料》中有,可以查看下

举报

更多回帖

发帖
×
20
完善资料,
赚取积分