[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]