eeprom 驱动调试之—设备树配置及介绍

                                                                EEPROM 设备树配置及介绍

eeprom 挂在 i2c3 总线上,使用 i2c 总线通讯

设备数配置:

i2c3 {
    status = "okay";
    eeprom@50{
        compatible = "24c02";
        reg = <0x50>;
        pagesize = <1>;
        read-only;
    };
};

eeprom 设备树参数介绍:

compatible: 用作匹配对应的设备驱动,一般写 “<设备商编号>, <设备类型>” ,如果没有特定的厂商驱动,就选择通用的  <设备类型> 的驱动

reg: eeprom 在 I2C 总线上的地址

pagesize: 页写的字节长度,一个错误的值可能造成数据丢失,如果没有给定的值,一般设为 “1” 比较安全,只是写入速度慢一点

read-only: 只读模式

kernel 中驱动代码在于  drivers/misc/eeprom/

对应板子生成设备节点 /sys/bus/i2c/devices/3-0050   如下图:

            

其中eeprom即为驱动导出的bin属性,通过 #cat eeprom 即可访问设备读取数据。到此eeprom驱动加载完成,可通过使能eeprom 写保护 WP 引脚,打开 eeprom 写操作。

    AT24C02的高4位是固定的,为1010b,低3位则由A0/A1/A2信号线的电平决定。按照我们此处的连接, A0/A1/A2 均为 0,所以EEPROM 的 7 位设备地址是: 1010 000b ,即 0x50。

    由于 I2C 通讯时常常是地址跟读写方向连在一起构成一个 8 位数,且当 R/W 位为 0 时,表示写方向,所以加上 7 位地址,其值为“ 0xA0”,常称该值为 I2C 设备的“写地址”;当 R/W 位为 1 时,表示读方向,加上 7 位地址,其值为“ 0xA1”,常称该值为“读地址”。

posted @ 2018-12-27 11:33  Caso_卡索  阅读(526)  评论(0编辑  收藏  举报