主要内容

使用SPI总线与EEPROM通信

这个例子展示了如何通过串行外围接口(SPI)总线与Aardvark的I2C/SPI活动板上的EEPROM AT25080A进行通信。

首先,创建一个SPI对象。对于这个例子,我们使用Aardvark的I2C/SPI活动板,它的板索引和地址都为0。要将计算机连接到SPI总线,需要使用Aardvark的USB-I2C/SPI适配器。对于SPI对象创建,这转换为:

  • 供应商= aardvark

  • BoardIndex= 0

  • 港口= 0

eepm = spi (“豚”, 0, 0);disp (eepm);
SPI对象:适配器设置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工作在全双工模式。因此,对于任何读/写操作,数据总是在两个方向上传输。这可以通过将“Hello”写入EEPROM并将其读回来的简单任务来说明。

EEPROM的数据表对读写数据规定如下:

  • 在向芯片写入任何东西之前,芯片应该是可写的。该芯片可以通过写入来实现写入6到它。注意:如果芯片未启用写,它将忽略写指令,并将返回到待机状态

  • 资料应以下列格式写入晶片:

[Write_Command Upper_Byte_Address Lower_Byte_Address data1 data2 .] [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。

允许写入的eepm

写(eepm 6);

在EEPROM的第0个地址上写“Hello”函数。

dataToWrite = [2 0 0 double(“你好”));写(eepm dataToWrite);

我们现在可以从EEPROM读取数据。

dataToWrite = [3 0 0 0 0 0 (1,5)];return = writeAndRead(eeprom, dataToWrite); / /写入数据

返回的数据为:

  • 字节1:3 -无所谓

  • 第四个字节-从EEPROM读回的数据

在本例中,回读的数据为:

char (returnedData (4)):
ans =你好

断开SPI对象并将其从内存和工作空间中删除。

断开(eepm);清楚(“eepm”);