1 / 15
文档名称:

Arduino-SPI模块官方手册翻译.docx

格式:docx   大小:1,258KB   页数:15页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Arduino-SPI模块官方手册翻译.docx

上传人:SSL2021 2021/9/22 文件大小:1.23 MB

下载得到文件列表

Arduino-SPI模块官方手册翻译.docx

文档介绍

文档介绍:〔Introduction to the Serial Peripheral Interface〕
Serial Peripheral Interface (SPI)是一种同步串行数据传输协议,用于近距离时,微控制器(Microcontrollers),如Arduino,与其他外围设备的快速通信。他也可以用于2个微控制器的通讯。
SPI通讯通常有一个主设备〔通常是Microcontrollers〕,用于控制外围设备。通常会有3种线路通用于各类设备的方法。
-Master In Slave Out〔MISO〕- Slave line,用于Slave向Master发送数据
-Master Out Slave In〔MOSI〕- Master line,用于Master向Slave发送数据
-Serial Clock〔SCK〕- 时钟脉冲,主设备用于同步数据传输
-Slave Select pin- 分配给所有的设备,用于enable/disable指定的设备,同时用于防止由于线路忙导致的错误传输。
SPI最大的问题在于它的标准太不严格了,这导致各个设备在实现它的时候都有一些不同,这就意味着当我们在编写接口代码的时候必须仔细阅读设备数据参数。通常来说有编号为0-3的3种传输模式〔不是4种么?〕这些模式控制数据是在时钟信号的高电平还是低电平传入或传出,以及在高或低电平时时钟无效。
所有的SPI设置都由Arduino SPI控制存放器〔SPCR〕来决定。这个存放器就是微控制器内存的一个字节,它是可读写的。存放器提供的效劳通常有3类:控制、数据和状态。
控制存放器〔SPCR〕编码设置控制多种微控制器的功能。通常控制存放器中的一个位影响某个特定的设置,比方速度和极性〔这个是啥?〕
数据存放器〔SPDR〕仅仅hold住了一个字节。比方,SPI数据存放器hold住了要发往MOSI线的一个字节,或者这个数据是要从MISO线传入的。
状态存放器〔SPSR〕根据多种微控制器的条件改变其状态。比方,SPI状态存放器〔SPSR〕的第七位被设置为1表示有数据从SPI传入或传出。
SPI控制存放器〔SPCR〕共有8位,每一个都控制了一种特定的SPI设置。
SPIE:置为1时,表示enable SPI的中断
SPE:置为1时,表示enable SPI
DORD:发送数据时,设置为1表示最低有效位,0表示最高有效位。请各自脑补最低有效位和最高有效位。。。
MSTR:设置为1表示Arduino为master模式,0为slave模式
CPOL:设置为1时,数据时钟在高时无效,设置为0时,在低时无效
CPHA:设置为1时,时钟低电平时是Samples data〔样本数据?〕,0时时钟高电平是Sampledata
SPR1和SPR0:设置SPI的速度,00是最快的〔4MHz〕,11是最慢的〔250KHz〕
这些意味着当对一个新的SPI设备编码的时候,我们需要注意一些事情并根据如下设置SPCR:
- 数据传入是最高有效位(MSB)还是最低有效位〔LSB〕?
- 数据时钟无效是在高还是低?
- samples是在时钟脉冲上升沿还是下降沿?
- SPI 运行的速度是多少?
你还要感受一下feel一下你的芯片,在你设置好之后需要暂停多久才能继续?Let‘s go !

AT25HP512是一个65536字节串行EEPROM。它支持SPI的模式0-3,在10MHz,5V的环境下运行,。他的内存被组织成512个页,每个页有128字节。他每次只能写入128字节,但是可以同时读出1-128字节的数据,这个设备同时提供了多种程度的写保护,但这里不涉及这个局部。
enable这个设备只需要让片选信号CS为低即可。指令使用8位的opcodes来发送,同时在时钟上升沿传入数据,大概使用10微秒写入1个页的数据,所以在每个EEPROM的的写程序后面都应该等待10ms。

将AT25HP512芯片插入面包板,EEPROM的3,7,8引脚接到5V,引脚4接地。
红色的线接+5V,GND线是黑色
EERPOM的引脚1连接Arduino的引脚10〔Slave 片选〕,EEPROM的引脚2连接Arduino的引脚12〔Master In Slave Out - MISO〕,EEPROM的引脚5连接Arduino的引脚11〔Master Out Slave In - MOSI〕,同时EEPROM的引脚6连接Arduino的引脚13〔串口时钟 SCK〕。