最近在学习28377D,有以下几个关于X-BAR及CMD问题不是很理解,希望可以得到解答,非常感谢!
问题1:如果需要使用X-BAR功能,GPyGMUXn及GPyMUXn是否配置为0,即普通IO功能,并且可以通过INPUTnSELECT指向任一个IO?
问题2:INPUT1~ INPUT6复用了多个功能,请问如何确认复用的是哪个功能?以INPUT1为例,有EPWM[TZ1,TRIP1], EPWM X-BAR, Output X-BAR等几个功能,是如何确认使用功能为TZ1?
问题3:请问GPIO复用功能表里的OUTPUTXBARn代表Output X-BAR吗,如果要使用Output X-BAR,是否需要对GPIO复用功能进行相应的配置?以GPIO2为例,若需使用OUTPUTXBAR1,配置GPAGMUX1 = 01b,GPAMUX1 = 01b?
问题4:例程的2837xD_FLASH_lnk_cpu1.cmd文件中,在RAM配置部分增加了对编译器版本的判断,请问目的是什么?
#ifdef __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 15009000
.TI.ramfunc :
……
#else*/
ramfuncs :
……
#endif
#endif
Eric Ma:问题1:如果需要使用X-BAR功能,GPyGMUXn及GPyMUXn是否配置为0,即普通IO功能,并且可以通过INPUTnSELECT指向任一个IO?
Eric: 是,配置为IO,然后通过INPUTnSELECT 指向任意的GPIO。
问题2:INPUT1~ INPUT6复用了多个功能,请问如何确认复用的是哪个功能?以INPUT1为例,有EPWM[TZ1,TRIP1], EPWM X-BAR, Output X-BAR等几个功能,是如何确认使用功能为TZ1?
ERIC: 这个是直接连接过去的,比如TZ1是直接连接到INPUT1,不用配置也是直接连接到该信号的。
问题3:请问GPIO复用功能表里的OUTPUTXBARn代表Output X-BAR吗,如果要使用Output X-BAR,是否需要对GPIO复用功能进行相应的配置?以GPIO2为例,若需使用OUTPUTXBAR1,配置GPAGMUX1 = 01b,GPAMUX1 = 01b?
ERIC: 是的,output X bar是将内部的一些信号通过GPIO口输出去,所以你要将对应的GPIO口配置成OUTPUTXBAR的功能。
问题4:例程的2837xD_FLASH_lnk_cpu1.cmd文件中,在RAM配置部分增加了对编译器版本的判断,请问目的是什么?
Eric: 高级别版本的编译器的语法有点不一样,所以加了这个判断。
最近在学习28377D,有以下几个关于X-BAR及CMD问题不是很理解,希望可以得到解答,非常感谢!
问题1:如果需要使用X-BAR功能,GPyGMUXn及GPyMUXn是否配置为0,即普通IO功能,并且可以通过INPUTnSELECT指向任一个IO?
问题2:INPUT1~ INPUT6复用了多个功能,请问如何确认复用的是哪个功能?以INPUT1为例,有EPWM[TZ1,TRIP1], EPWM X-BAR, Output X-BAR等几个功能,是如何确认使用功能为TZ1?
问题3:请问GPIO复用功能表里的OUTPUTXBARn代表Output X-BAR吗,如果要使用Output X-BAR,是否需要对GPIO复用功能进行相应的配置?以GPIO2为例,若需使用OUTPUTXBAR1,配置GPAGMUX1 = 01b,GPAMUX1 = 01b?
问题4:例程的2837xD_FLASH_lnk_cpu1.cmd文件中,在RAM配置部分增加了对编译器版本的判断,请问目的是什么?
#ifdef __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 15009000
.TI.ramfunc :
……
#else*/
ramfuncs :
……
#endif
#endif
y M1:
回复 Eric Ma:
你好,非常感谢你的帮助,问题2、3、4还有些不明白,再请教,谢谢。
问题2、3:仍以INPUT1为例,INPUT1图中分别连至TZ、ePWM以及Output,通过配置INPUT1SELECT后,是否TZ、TRIP以及Output都是同时选中的,只要软件相应寄存器设置使能及配置正确,这几个功能都可以正常使用。具体来说,比如想分配如下功能GPIO1-TZ、GPIO2-TRIP、GPIO3-Output,是否按以下方法配置即可:
/* TZ */
INPUT1SELECT = GPIO1;
TZ相关寄存器配置;
/* TRIP */
INPUT1SELECT = GPIO2;
TRIP相关寄存器配置;
/* Output */
INPUT1SELECT = GPIO3;
GPAGMUX1 = 01b;
GPAMUX1 = 01b;
Output相关寄存器配置;
问题4:例程cmd中对于不同编译器版本下RAM的配置,除了名称.TI.ramfunc、ramfuncs不同,其他配置完全相同,不清楚是否可以去掉对编译器的判断,直接按需配置?