这个例子展示了如何在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 |
从选定的地址开始写数据到存储器阵列 |
|
0000 0100 |
重置写启用锁存器(禁止写操作) |
|
0000 0110 |
设置写启用锁存器(启用写操作) |
|
0000 0101 |
读状态寄存器 |
|
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:结束)));
你好