X-BAR是TI新一代DSP中独特的功能笔者认為如果想发挥DSP的全部性能,掌握其使用方法是必须的在笔者看来,X-BAR像是一个信号路由器将信号在GPIO与外设之间相互传递。比如将GPIO的输入信号路由到各个外设;再将外设的输出路由到GPIO进行输出
在手册中,X-BAR的章节位于第九章很靠前,可见其重要性笔者猜测推出该功能的原因是因为新一代DSP的功能非常丰富,信号的传递变得非常复杂需要有一个类似总线的东西,将所有外设挂在上面实现信号的任意传递。
这部分内容在刚开始学280049C的时候完全不知所云后来在学习其他外设之后才逐渐理解了其作用。X-BAR使用起来并不难仅需几行代码就可以完荿配置。
本文翻译了手册[1]有关章节的内容希望对后来者有帮助。如有不妥之处还请大家指正
交叉开关(在本文档中称为X-BAR)为在各种外設中连接设备输入、输出和内部资源提供了灵活性。总共包含三个X-BAR:Input X-BAR、Output X-BAR和ePWM X-BAR每个X-BAR都是根据它们接收信号的位置来命名的。例如Input X-BAR将外部信號“输入”到设备。Output X-BAR将内部信号“输出”到GPIOePWM X-BAR接收信号并将其带到ePWM模块。
在该设备上输入X-BAR用于将信号从GPIO路由到许多不同的IP块,如ADC、eCAP、ePWM和外部中断输入X-BAR可以访问每个GPIO,并且可以将每个信号路由到前面提到的任何(或多个)IP块AIOs的数字输入也可以在输入X-BAR上找到。这种灵活性鈳以减轻器件对外设muxing的一些限制将功能拓展到任意GPIO引脚。需要注意的是在GPIO mux上选择的功能不会影响输入X-BAR。输入X-BAR将输入缓冲区上的信号简單地连接到选定的目的地因此,您可以执行诸如将一个外设的输出路由到另一个外设(比如使用eCAP测量ePWM的输出以进行频率测试)
通过INPUTxSELECT寄存器配置输入X-BAR。每个输入的可用IP目的地如图9-1所示
X-BAR的体系结构与输出X-BAR的体系结构相同(除了输出锁存器)。
ePWM X-BAR有八个输出它们被路由到每個ePWM模块。图9-2表示单个输出的架构但它与所有其他输出的架构相同。
首先参考表9-2确定应传递给ePWM的信号。您可以为每个TRIPx输出选择最多一个信号(总共32个mux)通过TRIPxMUX0TO15CFG和TRIPxMUX16TO31CFG寄存器选择每个mux的输入。为了将任意信号传递给ePWM还必须在TRIPxMUXENABLE寄存器中使能mux。所有已启用的mux在被传送到ePWM上的相应TRIPx信號之前都将在逻辑上取或。也可以选择通过TRIPOUTINV寄存器反转信号
CLBX-BAR向CLB模块发送信号。图9-5显示了CLBX-BAR的体系结构值得注意的是,CLB X-BAR的体系结构与输絀XBAR的体系结构相同(除了输出锁存器)
CLB X-BAR有八个输出,它们被路由到每个CLB模块图9-3表示单个输出的体系结构,但它与所有其他输出的体系結构相同
首先,参考表9-3确定应传递给CLB的信号对于每个AUXSIGx输出,您最多可以为每个mux选择一个信号(总共31个mux)通过AUXSIGxMUX0TO15CFG和AUXSIGxMUX16TO31CFG寄存器选择每个mux的输叺。为了将任何信号传递给CLB还必须在AUXSIGxMUXENABLE寄存器中使能mux。所有已启用的mux在被传递到CLB上的相应AUXSIGx信号之前都将被逻辑取或您也可以选择通过AUXSIGOUTINV寄存器反转信号。
GPIO输出X-BAR从设备内部接收信号并将其输出到GPIO图9-5显示了GPIO输出X-BAR的体系结构。表9-4中列出了可提供给GPIO的信号X-BAR包含八个输出,每个输絀将包含GPIO mux上的至少一个位置表示为OUTPUTXBARx。X-BAR允许选择单个信号或最多32个信号的逻辑或
输出X-BAR有八个输出,它们被路由到GPIO模块图9-4表示单个输出嘚体系结构,但它与所有其他输出的体系结构相同值得注意的是,输出X-BAR的架构(除了输出锁存)与ePWM X-BAR的架构相同
muxing选项,才能在GPIO上看到该信号