关于TI 55x(主要是5509/A,5510,其他类似)系列DSP的GPIO
C55X系列DSP的GPIO有专用GPIO,地址总线GPIO,控制总线GPIO,其中的专用GPIO上电复位后就具有了GPIO的功能,GPIO[0..3]的上电状态同时决定DSP的启动模式。
在对专用GPIO编程过程中可以直接设置方向,赋值即可。以下的实例是基于CSL。
e.g:
GPIO_RSET(IODIR,0xff);//设置全部专用GPIO([7..0])方向为输出,1输出,0输入。
GPIO_pinWrite(GPIO_GPIO_PIN2,1)//向专用GPIO2输出高电平
GPIO_RSET(IODATA,val);//将val所代值赋给专用GPIO。
GPIO_RSET(IODIR,0x00);//设置全部专用GPIO([7..0])方向为输入。
unsigned char temp=GPIO_RGET(GPIO_PIN2);//读取专用GPIO2引脚的值。并传递到temp寄存器
unsigned char temp=GPIO_pinRead(GPIO_GPIO_PIN2);//读回GPIO2的值。
另外还可以做为GPIO使用的是可以配置的地址GPIO,在使用时,需要先配置外部总线选择寄存器(XBSR)的最后两位为00,之后用AGPIOEN 使能,在AGPIODIR配置
方向,用AGPIODATA输出数据,其中引脚标记用:如AGPIO_GPIO_PIN2表示A2.此时地址线作为GPIO使用
/*操作Address GPIO*/
CHIP_RSET(XBSR,0x00);//最后两位配置为00,选择data emif模式
GPIO_RSET(AGPIOEN,0xffff);//所有的Address GPIO使能。
GPIO_RSET(AGPIODIR,0xffff);//所有的Address GPIO方向输出。
GPIO_RSET(AGPIODATA,0xffff);//所有的Address GPIO输出高电平。
GPIO_pinWrite(AGPIO_GPIO_PIN2,1)//向地址GPIO2输出高电平
unsigned char temp=GPIO_RGET(AGPIO_PIN2);//读取专用地址GPIO2引脚的值。并传递到temp寄存器
unsigned char temp=GPIO_pinRead(AGPIO_GPIO_PIN2);//读回地址GPIO2的值。
还有就是控制接口Cx也可以配置成GPIO,但这个要先配置XBSR为相应模式,并使能。用法类似。
以上信息可以在相应DATASHEET的GPIO章节找到,CSL的在官方手册的第八章GPIO模块找到。