主要内容

与SPI EEPROM设备通信

这个例子展示了如何在SPI设备上从EEPROM存储和检索数据。使用EEPROM,您可以从传感器的存储器中读取、擦除和重写单个数据位。这个例子使用了Microchip Technology的SPI EEPROM 25AA080C设备和Arduino®大型2560。在使用此示例之前,将EEPROM连接到Arduino上的SPI引脚,如下所述:

SPI eepm针 Arduino针
/ CS 数字销10
所以 ICSP-1(味噌)
/ WP 50k或100k欧姆电阻绑定到Vcc
VSS Arduino接地
如果 ICSP-4(莫西人)
SCK ICSP-3 (SCK)
/保存 Vcc
Vcc 5 v销

建议在VCC和Gnd之间放置1uF去耦电容。

在Arduino上创建一个SPI连接。

创建一个Arduino对象并包含SPI库。

一个= arduino (“COM10”“Mega2560”“库”“I2C、SPI、伺服”);

从EEPROM写入和读回数据,这是一种直接与串行外设接口(SPI)接口设计的微控制器。有关EEPROM中读写序列的更多信息,请参阅eepm数据表

创建一个芯片选择引脚连接。

Cspin =“D10”

创建一个SPI设备对象。

eepm =设备(,“SPIChipSelectPin”Cspin”,“BitOrder”“msbfirst”“SPIMode”, 0)
eeprom =设备的属性:Interface: SPI SPIChipSelectPin: D10 SCLPin: D21 MISOPin: D50 MOSIPin: D51

指定参照EEPROM指令集的读、写和写使能命令。

指令的名字 指令格式 描述

0000 0011

从选定的地址开始从存储器阵列读取数据

0000 0010

从选定的地址开始写数据到存储器阵列

wrdi

0000 0100

重置写启用锁存器(禁止写操作)

雷恩

0000 0110

设置写启用锁存器(启用写操作)

rdsr

0000 0101

读状态寄存器

wrsr

0000 0001

写状态寄存器

readCmd = 0 b00000011;writeCmd = 0 b00000010;writeEnable = 0 b00000110;

写使能设备。

writeRead (eepm writeEnable);

设置设备地址。地址是一个16位的值,有8个上位和8个下位。地址的最大值可以是0x03FF。

地址= [0 0];

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

dataToWrite = [writeCmd,address double(“你好”));writeRead (eepm dataToWrite)
Ans = 0 0 0 0 0 0

从EEPROM中读回数据。

dataToWrite2 = [readCmd address zeros(1,5)];返回的数据类型为writeRead(eeprom, datatwrite2)
返回数据:0 0 0 72 101 108 108 111

显示结果。

disp (char (returnedData(4:结束)));
你好