使用SPI总线与EEPROM通信
这个例子展示了如何通过串行外围接口(SPI)总线与Aardvark的I2C/SPI活动板上的EEPROM AT25080A通信。
首先,创建一个SPI对象。对于这个例子,我们使用Aardvark的I2C/SPI活动板,它的板索引和地址都为0。为了将计算机连接到SPI总线,使用来自Aardvark的USB-I2C/SPI适配器。对于SPI对象创建,这转换为:
供应商
= aardvarkBoardIndex
= 0港口
= 0
Eeprom = spi(“豚”, 0, 0);disp (eepm);
SPI Object: Adapter Settings BoardIndex: 0 BoardSerial: 2237727782 VendorName: aardvark Communication Settings BitRate: 1000000 Hz ChipSelect: 0 ClockPhase: FirstEdge clock极性:IdleLow Port: 0 Communication State ConnectionStatus: Disconnected Read/Write State TransferStatus: Idle
方法将SPI对象连接到设备,然后才能执行读或写操作连接
函数。您可以通过检查对象的ConnectionStatus
财产。一旦连接到设备,属性ConnectionStatus
自动更新为连接
.
连接(eepm);eepm。ConnectionStatus
ans =连接
SPI工作在全双工模式。因此,对于任何读/写操作,数据总是双向传输的。这可以通过向EEPROM写入“Hello”并将其读取回来的简单任务来说明。
EEPROM的数据表指定了以下用于读取和写入数据:
在向芯片写入任何内容之前,芯片应该是可写的。芯片可以通过写入使能写入
6
到它。注意:如果芯片没有写,它将忽略写指令并返回到待机状态
数据写入芯片的格式如下:
[Write_Command Upper_Byte_Address Lower_Byte_Address data1 data2 ....]
这个EEPROM的Write_Command是2。
数据应按以下格式写入芯片,以便正确读取数据:
[Read_Command Upper_Byte_Address Lower_Byte_Address 0(1,要读回的数据大小)]
这个EEPROM的Read_Command是3。
写启用eeprom
写(eepm 6);
在EEPROM的第0个地址写“Hello”写
函数。
dataToWrite = [2 0 0 double(“你好”));写(eepm dataToWrite);
我们现在可以从EEPROM读取数据。
dataToWrite = [3 0 0 0 (1,5)];返回数据= writeAndRead(eeprom, dataToWrite);
返回的数据为:
字节数1:3 -别在意
第四个字节开始-从EEPROM读取数据
在本例中,回读的数据为:
char (returnedData (4)):
ans =你好
断开SPI对象并将其从内存和工作区中删除。
断开(eepm);清楚(“eepm”);