TI中文支持网
TI专业的中文技术问题搜集分享网站

C5509A McBSP串口用作GPIO问题

       英文手册上说,当McBSP串口被设置成GPIO之后,CLKRP, CLKXP, CLKSP, FSRP, 和 FSXP没有被写保护。“如果要写这些位,要到相关引脚的状态下一次自动改变,才能写入。”请问如果我写CLKXP=1,那么作为GPIO口,不是在引脚上立即反映出高电平吗?这里的“要到相关引脚的状态下一次自动改变,才能写入”是怎么个情况?

        还有DXSTAT和DRSTAT这两个引脚又是什么情况

               亲,帮忙介绍下。

Shine:

你好,

我的理解是这些输入管脚上的输入电平值要在下一个CPU clock才会采样到相应的寄存器. 如CLKX上的输入高电平时, 要到下个CPU clock, CLKXP的值才会变成1.

这种情况只针对输入管脚模式, 如果像你举的输出管脚的例子, 没有影响.   DXSTAT, DRSTAT没有这方面的限制

sun yingming:

回复 Shine:

请问,,我将5509A的mcbsp配置成GPIO,,我怎么对位操作呢?比如说我将mcbsp0的CLKX配置成GPIO且为输出,,怎么操作 输出一个高电平或是低电平,谢谢!!

Shine:

回复 sun yingming:

这个在mcbsp user guide里有介绍怎么把mcbsp配置成GPIO口,具体见第9章节。http://www.ti.com/lit/ug/spru592e/spru592e.pdf

sun yingming:

回复 Shine:

我知道怎么配置,我是想知道,我怎么对寄存器中的每一位进行操作,难道只能整个寄存器进行赋值吗???

sun yingming:

回复 Shine:

我知道怎么配置,我是想知道,我怎么对寄存器中的每一位进行操作,难道只能整个寄存器进行赋值吗???

Shine:

回复 sun yingming:

用"与操作:&=“ 或者 "或操作:|="

sun yingming:

回复 Shine:

 我怎么知道我想设置的寄存器的地址呢,,比如PCR,,我看网上有人这么设置:

这个0X2C12这个地址是怎么得到的??

谢谢!!!

Shine:

回复 sun yingming:

外设寄存器地址都在数据手册"3.10 Peripheral Register Description"里列出来。

另外,如果有新问题,麻烦另起新帖,方便其他客户参考。

meng yang2:

回复 Shine:

0x2c12寄存器中的值是如何得来的呢?

McBSP程序中

ioport unsigned int *PCR_1=(unsigned int *)0x2c12;

#define REG_PCR1 (*PCR_1)

interrupt void timer0Isr(void) { temp = REG_PCR1;

那temp中的值如何改变?DSP中的PCR_1寄存器如何接收DR引脚中输入的值?

Shine:

回复 meng yang2:

如果是输入管脚,值由外部给的电平决定。

如果是输出管脚,值可以自己通过程序写1或0.

赞(0)
未经允许不得转载:TI中文支持网 » C5509A McBSP串口用作GPIO问题
分享到: 更多 (0)