关于SPI总线的理解问题?
数据在时钟的上升或下降沿由SDO输出,在紧接着的下降或上升沿由SDI读入?假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送那么第...
数据在时钟的上升或下降沿由SDO 输出,在紧接着的下降或上升沿由SDI 读入?
假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送
那么第一个上升沿来的时候数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存 器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。
怎么是交换数据???到底sdo和sdi关系是怎么的??比如单片机和存储器,单片机out出数据就该那边的存储器in接受吧! 展开
假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送
那么第一个上升沿来的时候数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存 器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。
怎么是交换数据???到底sdo和sdi关系是怎么的??比如单片机和存储器,单片机out出数据就该那边的存储器in接受吧! 展开
3个回答
展开全部
先了解三点
1.SDO是MISO,指主器件数据输入,从器件数据输出;SDI是MOSI,指主器件数据输出,从器件数据输入。
2.SPI是全双工,从高位开始。
3.上升沿还是下降沿,由设备决定。
设主机寄存器10101010,从机寄存器01010101,上升沿发射,下降沿接收
第一个脉冲:上升沿时,SDO=1,SDI=0(看第一点),寄存器左移一位,成为主机寄存器0101010X,从机寄存器1010101X;下降沿时,开始接收,主机接收SDO,从机接收SDI(全双工),成为主机寄存器01010101,从机寄存器10101010
第二个脉冲:上升沿时,SDO=0,SDI=1,寄存器左移一位,成为主机寄存器1010101X,从机寄存器0101010X;下降沿时,开始接收,主机接收SDO,从机接收SDI,成为主机寄存器10101010,从机寄存器01010101
依次类推,一共8个脉冲后,寄存器内的内容交换一次。
1.SDO是MISO,指主器件数据输入,从器件数据输出;SDI是MOSI,指主器件数据输出,从器件数据输入。
2.SPI是全双工,从高位开始。
3.上升沿还是下降沿,由设备决定。
设主机寄存器10101010,从机寄存器01010101,上升沿发射,下降沿接收
第一个脉冲:上升沿时,SDO=1,SDI=0(看第一点),寄存器左移一位,成为主机寄存器0101010X,从机寄存器1010101X;下降沿时,开始接收,主机接收SDO,从机接收SDI(全双工),成为主机寄存器01010101,从机寄存器10101010
第二个脉冲:上升沿时,SDO=0,SDI=1,寄存器左移一位,成为主机寄存器1010101X,从机寄存器0101010X;下降沿时,开始接收,主机接收SDO,从机接收SDI,成为主机寄存器10101010,从机寄存器01010101
依次类推,一共8个脉冲后,寄存器内的内容交换一次。
追问
从机一定要有内容啊?不可以主机直接发过去啊!比如将一个数据存入存储器!
追答
从机可以没有内容
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询