麻烦请教大家一个关于SSI 用作SLAVE模式是,对FSS输入数据的读取问题。
应用背景, 使用SPI作为 CPU间通信的通道, TM4C1294的SSI工作在slave模式。
当TM4C想要向对端CPU发送数据是,通过一个单独的GPIO通知对端CPU,对端
CPU当收到这个GPIO中断时,拉低对TM4C的片选信号FSS, 并且向TM4C 发送
DUMMY数据。TM4C根据对端CPU提供的时钟发送数据 。
以上是正常的数据处理流程,但是又可能对端CPU比较忙不能及时处理TM4C发送
的GPIO通知事件,使得TM4C不能发送数据。所以在TM4C这边我们需要加入发送
超时处理机制。
目前我们的想法是在TM4C发送GPIO通知后,去读取FSS的输入,如果FSS被拉低,
说明传输可以正常进行。
我的问题是 怎么读取FSS的输入数值。
是不是可以用
GPIOPinRead(GPIO_PORTB_BASE, GPIO_PIN_4); //GPIO_PIN_4对应SSI的FSS
产生此疑问的原因是 GPIO_PIN_4已经被配置成了SSI模式 GPIOPinConfigure(GPIO_PB4_SSI1FSS)
不知道GPIO的相关的操作是否还有效。
希望能得到大家的帮助
多谢
xyz549040622:
TM4 做主机的话,FSS引脚还有可能作为IO使用(其他芯片是可能的,TM4上没试过),TM4用作从机的话,FSS引脚是从机信号选择引脚,不能用作GPIO功能的。事实上,你想多了,你的这句话
如果FSS被拉低,
说明传输可以正常进行
只有FSS为低的时候,TM4C才可以作为从机,这样是不冲突的,直接接上就可以,不用GPIO读取的。
”
yihui sun:
回复 xyz549040622:
多谢您的回复。
可能我描述问题的时候不清晰。
当TM4 用作从SSI 需要发送数据给对端主SSI时,会使用一个GPIO同时对端主SSI发送时钟过来,
当如果对端CPU忙,没有及时处理这个GPIO中断,在TI TM4 这边我们需要在一个timeout时间后,
上报应用层发送失败。 而在TI这边我们目前希望通过FSS的数据值来判断对端CPU是否相应了GPIO
这个中断。
所以才想去读FSS的数据值。
Jacky Xu:
回复 yihui sun:
FSS引脚状态即使在这个引脚被用作外设引脚时也是可以读到的。但是应该是不能作为IO中断方式来用了