这个例子展示了如何通过串行外围接口(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”);