2024年4月16日 星期二

[Linux Driver] 掛載AT24 EEPROM Driver

(一) 使用sysfs 的方式操作EEPROM

Load at24 driver (eeprom) 要配合 device tree 的操作.

  step 1: 
   
   # compile dts to dtbo
    >>    dtc -@ -I dts -O dtb -o at24.dtbo at24.dts
        
   # copy to /boot/overlays  
    >> sudo cp at24.dtbo  /boot/overlays 


   # modify /boot/config.txt and add this line 

   dtoverlay=at24

  # reboot pi  

    >> sudo reboot

  
step 2: sudo modprobe at24 (載入Kernel 原生 Driver )





step3:  正常情況下會產生   /sys/bus/i2c/devices/1-0050/eeprom
                   你可以讀寫此eeprom檔案, 例如:

         sudo dd if=123.bmp of=/sys/bus/i2c/devices/1-0050/eeprom
         sudo dd of=~/dump.bin  if=/sys/bus/i2c/devices/1-0050/eeprom



=====================================================

(二) 使用字元裝置的方式操作EEPROM

掛載 i2c-dev 模組後, 會生成 /dev/i2c-1 檔案, 可利用i2c tools 工具進行讀寫









---------

at24.dts

// Definitions for I2C EEPROM (24lcxx)
// www.ittraining.com.tw
/dts-v1/;
/plugin/;

/ {
        compatible = "brcm,bcm2708";

        fragment@0 {
                target = <&i2c1>;
                __overlay__ {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "okay";
                     
  
eeprom@50 {
compatible = "atmel,24c02";
reg = <0x50>;  // I2C address of the AT24C02
pagesize = <8>;
size = <256>;
};
  
                        
                };
        };
        
        
};