从一个上古年间的板子上拆下来个EEPROM读取内部数据看看
就这个板子,竟然还能查到资料,以前我还买过这个牌子的电视盒呢,可以将电脑显示器变成电视机。
这个芯片型号是FM24C02C,容量小,只能放下256个字节。
为了方便利用RISC V内核的Arduino开发板读取
#include "Wire.h"
#define I2C_DEV_ADDR 0x50
void read_fm24c02(uint8_t reg)
{
uint8_t dat=0;
Wire.beginTransmission(I2C_DEV_ADDR);
Wire.write(reg);
Wire.endTransmission();
Wire.requestFrom(I2C_DEV_ADDR,1);
if (Wire.available())
{
dat = Wire.read(); // 读取数据字节
}
Serial.println(dat,HEX);
}
void setup() {
Serial.begin(115200);
Wire.begin();
for(uint8_t i=0;i<0xFF;i++)
{
Serial.print("REG[");Serial.print(i);Serial.print("]= 0x");
read_fm24c02(i);
}
}
void loop() {
}
读取结果
REG= 0x31
REG= 0x30
REG= 0x4D
REG= 0x4F
REG= 0x4F
REG= 0x4E
REG= 0x53
REG= 0x45
REG= 0x5A
REG= 0x39
REG= 0x38
REG= 0xFF后面都是0xFF了,不再多写。
完善一下,补充上写入的
#include "Wire.h"
#define I2C_DEV_ADDR 0x50
uint8_t read_fm24c02(uint8_t reg)
{
uint8_t dat=0;
Wire.beginTransmission(I2C_DEV_ADDR);
Wire.write(reg);
Wire.endTransmission();
Wire.requestFrom(I2C_DEV_ADDR,1);
if (Wire.available())
{
dat = Wire.read(); // 读取数据字节
}
return dat;
}
void write_fm24c02(uint8_t reg,uint8_t dat)
{
Wire.beginTransmission(I2C_DEV_ADDR);
Wire.write(reg);
Wire.write(dat);
Wire.endTransmission();
}
void setup()
{
Serial.begin(115200);
Wire.begin();
write_fm24c02(11,0xF0);
for(uint8_t i=0;i<0xFF;i++)
{
Serial.print("REG[");Serial.print(i);Serial.print("]= 0x");Serial.println(read_fm24c02(i),HEX);
}
}
void loop()
{
}
这个芯片里面一般是参数设置吧 中国龙芯CDX 发表于 2023-11-29 12:43
这个芯片里面一般是参数设置吧
是的,是参数设置,不过那个主要的视频芯片也用不到了,拆下来这个存储芯片还能DIY用。 楼主这个思想很棒支持一下
页:
[1]