主要内容

使用SPI总线与EEPROM通信

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

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

  • 供应商= aardvark

  • BoardIndex= 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”);
Baidu
map