本帖最后由 zhangmangui 于 2013-10-26 00:22 编辑
问题是这样的,我用DSP的SPI与AD5360通过SPI通信
AD5360的控制字是24个bit,而DSP的发送寄存器是16位
DSP的SPICCR寄存器里面有一个字符长度控制,是bit3~bit0对应控制
现在在进行这个SPI通信的时候,DSP一次只能发16个bit,而AD5360从CS片选下降沿开始接收信号,接收24个bit的时候,CS必须给一个高电平上升沿信号结束通信,
请问,DSP怎么实现16个bit的buffer与AD5360的24个bit通信呢》
我仔细查阅过DSP的字符长度控制bit
它指的是作为一个字符发送的长度,主要是用在控制接受数据时决定接受几个bit产生中断
如果我把这个长度设成8,那么我写三次DSP的buffer,是不是每次都只发送BUFFER里面16个bit的高8位或者低8位呢?还是不管字符控制长度是多少,buffer一次性都是发送16个bit?
事实上我用示波器测试过,不管字符长度怎么设置,每写一次DSP的buffer ,DSP都会发送16个bit
所以,如果我只发一次,则AD5360无法接受24个bit ,若发送两次,则AD5360会接收到32个bit
总而言之,DSP发送的长度无法满足刚好是24个bit
不知道以上描述是否清楚,请mangui哥指点以下。谢谢。
|