本文主要是介绍SPI三线制 四线制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SPI三线制和四线制在硬件连接上有什么不同的地方? 在用io口模拟spi时的发送指令数据代码上有什么不同? |
|
收藏3 支持 反对 |
| 回复 举报 |
| |
aozima 离线 金牌会员 积分 1566 金钱 1566 注册时间 2011-5-23 在线时间 667 小时 | 推荐 发表于 2014-10-17 10:45:15 | 只看该作者 【劲爆】点击免费下载正点原子全套STM32开发板全套资料 这里所说的3线性并不是说没有SPI,而是没有 RS 或叫 DC 线,用数据位来表示数据还是命令,因此数据是9位。 只是,哪来的9位SPI硬件? 还是简单点用4线吧。 不然就用IO模拟,不能用硬件SPI和DMA。
区别于一般说的4线,这里的4线是指 CS RS SCK MOSI,OLED没有回读功能,所以没有MISO。 3线则是 CS SCK MOSI(1bit DC + 8bit DATA = 9bit)
常规的4线是说 CS SCK MOSI MISO |
|
RT-Thread RTOS |
| 回复 支持 2 反对 0 举报 |
| |
正点原子 离线 管理员 积分 115775 金钱 115775 注册时间 2010-12-1 在线时间 875 小时 | 2# 发表于 2012-7-21 10:16:15 | 只看该作者 就是有无片选的区别吧. 无片选的话,你整个SPI,只能给一个设备用. 有的话,可以多个设备共用一个SPI. |
|
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。 正点原子STM32开发板购买店铺:http://openedv.taobao.com 微信公众平台:正点原子 点击扫码添加 |
| 回复 支持 反对 举报 |
| |
qyanqin 离线 初级会员 积分 59 金钱 59 注册时间 2012-7-21 在线时间 1 小时 | 3# 楼主| 发表于 2012-7-21 10:42:39 | 只看该作者 回复【2楼】正点原子: 就是有无片选的区别吧. 无片选的话,你整个SPI,只能给一个设备用. 有的话,可以多个设备共用一个SPI. --------------------------------- 在连接SSD1322的时候,用的是三线制的, 模拟SPI的io口输出高低电平检测出来是对的,但是oled点不亮 这个是发送指令和数据函数 void OLEDWriteCommand(unsigned char CommandValue) { unsigned int CommandNum; CS0(); DelayUs(1); //D_C0(); DelayUs(1); for(CommandNum=0;CommandNum<8;CommandNum++) { if(CommandValue&0x80) SDIN1(); else SDIN0(); CommandValue<<=1;
SCLK0(); DelayUs(1); SCLK1(); DelayUs(1); } CS1(); //D_C1(); } 代码上有什么问题吗? |
|
|
| 回复 支持 反对 举报 |
| |
qyanqin 离线 初级会员 积分 59 金钱 59 注册时间 2012-7-21 在线时间 1 小时 | 4# 楼主| 发表于 2012-7-21 11:03:28 | 只看该作者 回复【3楼】qyanqin: --------------------------------- soga,三线制的要发送9位,第一位要先发送D/C#位,然后是D7到D0这八位,问题未解决完,继续调试中。。。 |
|
|
| 回复 支持 反对 举报 |
| |
qyanqin 离线 初级会员 积分 59 金钱 59 注册时间 2012-7-21 在线时间 1 小时 | 5# 楼主| 发表于 2012-8-3 15:59:00 | 只看该作者 回复【4楼】qyanqin: --------------------------------- 看来要用软件模拟spi,代码还是要根据不同IC的时序进行不同的编写,时序图很重要 |
|
|
| 回复 支持 反对 举报 |
| |
新生 离线 中级会员 积分 431 金钱 431 注册时间 2014-5-12 在线时间 51 小时 | 6# 发表于 2014-10-17 10:43:01 | 只看该作者 求共享 STM32F103 3线SPI oled 软件模拟程序 |
|
|
| 回复 支持 反对 举报 |
| |
Just Beat It 离线 中级会员 积分 368 金钱 368 注册时间 2014-11-8 在线时间 36 小时 | 8# 发表于 2015-3-9 13:43:07 | 只看该作者 SPI比较混乱,主要是没有标准的协议,只有moto的事实标准。所以衍生出多个版本,但没有本质的差异。现在一般有两个标准:一是说4线SPI包括SCLK、SDO、SDI、CS,用在多机模式中,而3线SPI仅包括SCLK、SDO、SDI,没有CS;另一种说法则认为4线SPI包括SCLK、SDO、SDI、CS,而3线SPI包括SCLK、DATA、CS,其中DATA负责数据的发送和接收。SPI没有标准协议,所以应用时需要仔细核对主机、从机器件规格。
我用过3线spi是不用cs片选的,成功了,程序和4现实差不多的,把4线的cs操作程序删除就可以了。。。(其实不删也能用) |
|
这篇关于SPI三线制 四线制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!