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

28335如何使用SPI模块发送24位的数据?

现有系统的MCBSP接口已经被占用,无法引出

只能通过SPI接口与DA进行通讯

但是SPI接口最大一次只能发送16位数据,而使用FIFO发送的话必须持续写数据否则就会一直进入中断并且CLK信号会持续输出

请问是否有办法实现类似猝发通信那样的功能?TXFIFO的堆栈是必须开启TX的FIFO功能后才能进行操作的吗?

另外,SPISTE的置位与清零是自动进行还是手动进行?TALK位与其是否有关系?

Forrest:

SPI有4种极性,有延时无延时上升沿下降沿。

我的建议是楼主用GPIO功能代替STE功能,发送之前拉低该GPIO,然后把24位的数据作为3个8位数据发送。最后拉高GPIO。

楼主可以看看能否凑出符合要求的时序。

现有系统的MCBSP接口已经被占用,无法引出

只能通过SPI接口与DA进行通讯

但是SPI接口最大一次只能发送16位数据,而使用FIFO发送的话必须持续写数据否则就会一直进入中断并且CLK信号会持续输出

请问是否有办法实现类似猝发通信那样的功能?TXFIFO的堆栈是必须开启TX的FIFO功能后才能进行操作的吗?

另外,SPISTE的置位与清零是自动进行还是手动进行?TALK位与其是否有关系?

ccen3020:

回复 Forrest:

我也在尝试这么做

但是28335的SPI中断是哪几个?我在例程中取消FIFO的相关初始化之后就不会进中断了

因为还要做PWM的运算所以不能占用很长时间

现有系统的MCBSP接口已经被占用,无法引出

只能通过SPI接口与DA进行通讯

但是SPI接口最大一次只能发送16位数据,而使用FIFO发送的话必须持续写数据否则就会一直进入中断并且CLK信号会持续输出

请问是否有办法实现类似猝发通信那样的功能?TXFIFO的堆栈是必须开启TX的FIFO功能后才能进行操作的吗?

另外,SPISTE的置位与清零是自动进行还是手动进行?TALK位与其是否有关系?

ccen3020:

回复 Forrest:

已解决

不使用FIFO,向BUF写两次即可连续发送

现有系统的MCBSP接口已经被占用,无法引出

只能通过SPI接口与DA进行通讯

但是SPI接口最大一次只能发送16位数据,而使用FIFO发送的话必须持续写数据否则就会一直进入中断并且CLK信号会持续输出

请问是否有办法实现类似猝发通信那样的功能?TXFIFO的堆栈是必须开启TX的FIFO功能后才能进行操作的吗?

另外,SPISTE的置位与清零是自动进行还是手动进行?TALK位与其是否有关系?

Jeremy Lin1:

回复 ccen3020:

您好,我也碰到类似问题,我的24位数据包括:高8位的命令字 + 16bit DAC数据,我该怎么发送数据?

现有系统的MCBSP接口已经被占用,无法引出

只能通过SPI接口与DA进行通讯

但是SPI接口最大一次只能发送16位数据,而使用FIFO发送的话必须持续写数据否则就会一直进入中断并且CLK信号会持续输出

请问是否有办法实现类似猝发通信那样的功能?TXFIFO的堆栈是必须开启TX的FIFO功能后才能进行操作的吗?

另外,SPISTE的置位与清零是自动进行还是手动进行?TALK位与其是否有关系?

Linfa Xiao:

回复 ccen3020:

你好,请问你是写两次16bit吗(废掉多余的8位)?不使能FIFO,每次发16bit.

然后你是用普通IO口操作片选脚?

赞(0)
未经允许不得转载:TI中文支持网 » 28335如何使用SPI模块发送24位的数据?
分享到: 更多 (0)