请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320C6657 我使用 的是 TMDXEVM6657评估板、在该评估板上、所有 uPP 引脚均可在80引脚接头上连接。
通过 uPP 转换 ChannelA 的工作原理非常好、仅在通道 B 上、I 始终得到"零"。
我的配置是:
void upp_pinmux_enable (void){ //uint32 chip_MISC_CTRL = CSL_BOOT_CFG_regs + CHIP_MISC; //(volatile unsigned int *) chip_MISC_CTRL = 0x00000000;//将 NCASYS 作为 RPI_CHIP_CLK 的 clk 源 ;//UINT32 Chip_PIN_CONTROL_0x0001; * 0x20INT_INT_INTRUINT1 = 0x0001;volatile 1 = 0x20INT_INT_INT_CONTROUT_INT_INTRUINT1;* 0154T_INT_INT_INT_INT_INTRUT_INTRUINT1;* PIN_CONTROUT
uPPInit():
upp_key_config ();//对 KICK0和1寄存器进行编程。
upp_pinmux_enable();//通过内部回送,在 PIN_CONTROL_1中启用 uPP
//读取 PID
int pid = CSL_FEXT (uppRegs->UPPID,UPP_UPP_REVID);
if (pid!= CSL_UPP_UPP_RESETVAL)
{ UPf("UPpREP->UPP_UPP);if (p_UPP_UPP_0+
= UPP_UPP_REPP+);if (UPP_UPP_REPP+= UPP_RETP_RETP_0+),UPP+(UPP+),在 UPP_RETP_RETP_0+(UPP+中,UPP+,UPP+,UPP_REPP+,UPP+,UPP+,UPP
CSL_FINST (uppRegs->UPPCR、UPP_UPPCR_SWRST、 运行);
//初始化寄存器:CTL、ICR、IVR、TCR
uPP = uppDevParams_default;
uPP.A.Direction = UPP_DIR_RCV;
uPP.A.datarate = UPP_DR_SDR;
uPP.A.dataWidthVal = dataWidth;
uPP.A.idleValueVal = 0xAAAA;
upp.A.clkDivVal = 0x1;//使用0到0xF
之间的时钟 div uPP.A.rcvThresh = UPP_TT_256B;
uPP.A.useStart=1;
uPP.A.useEnable=1;
uPP.A.dataPacking=UPP_DP_RJUST_0FILL;
//uPP.A.dataWidthVal = 15;
upp.B.方向= UPP_DIR_RCV;
uPP.B.datarate = UPP_DR_SDR;
uPP.B.dataWidthVal = dataWidth;
uPP.B.idleValueVal = 0xBBBB;
uPP.B.clkDivVal = 0x1;
upp.B.rcvThresh = UPP_TT_256B;
uPP.B.useStart=1;
uPP.B.useEnable=1;
uPP.B.dataPacking=UPP_DP_RJUST_0FILL;
uPP.loopback = UPP_lb_none;
upp.numChannelsVal = 2;
uPP.useInterleave=0;
status = upp_config (&uPP);
正如我所理解的、引脚的方向是通过右上角的初始化进行配置的?
正如我在评估板-SCM 中看到的、一些 uPP 引脚是双向的、是否有任何关于如何配置这些引脚的建议?
非常感谢
此致 Martin