اطلاعیه

Collapse
No announcement yet.

نحوه برنامه ریزی حافظه های سری 24c

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    نحوه برنامه ریزی حافظه های سری 24c

    با سلام
    توی یه پروژه ای با این حافظه ها کمی به مشکل برخوردم.
    از دوستان کسی می تونه کمی کمک کنه.
    بر نامه ای که نوشتم به این صورته:
    کد:
    #include <mega16.h>
    #asm
      .equ __i2c_port=0x12 ;PORTD
      .equ __sda_bit=4
      .equ __scl_bit=3
    #endasm
    #include <i2c.h>
    #include <stdio.h>       
    #define write_address_bus 160
    void write_eeprom(unsigned char data,unsigned char address);
    
    void main(void)
    {
    unsigned int i;
    i2c_init();
      
    for(i=0;i<255;i++){
    write_eeprom(0x66,i); 
    } 
     
    while (1)
       {
       };
    }
    void write_eeprom(unsigned char data,unsigned char address)
    { 
    int j;
      i2c_start();
      i2c_write(write_address_bus);  
      i2c_write(address);
      i2c_write(data);
      i2c_stop();
      delay_ms(10);
    
    }
    مشکل اینجاست که فقط تا آدرس 0x00ff که همون 255 هست میتونه عدد 0x66 رو بنویسه و اگه عدد 255 رو بیشتر کنی هیچ تاثیری نداره.در صورتی که مثلا در حافظه 24c16 می شه تا آدرس 0x07ff عدد دلخوا رو نوشت.
    دوستان میتونند کمک کنند؟

    #2
    پاسخ : نحوه برنامه ریزی حافظه های سری 24c

    گمون کنم EEPROM تون تقلبی روش عدد زدنو مقدار حافظه اش کمتر از اونی که روش نوشتن
    http://www.sharjweb.com/

    دیدگاه


      #3
      پاسخ : نحوه برنامه ریزی حافظه های سری 24c

      سلام
      آی سی من کاملا سالمه. مشکل از کدویژن هست.
      تابع برنامه ریزی با i2c به شکل زیر است
      unsigned char i2c_write(unsigned char data)
      یعنی بیشتر از 255 به ورودی تابع نمیتونید مقدار بدید.
      کسی راه حلی برای رفع اون نداره؟

      دیدگاه


        #4
        پاسخ : نحوه برنامه ریزی حافظه های سری 24c

        سلام
        آیسیهایی که ظرفیتشون از 256 بایت بیشتر هست توسط دو بایت آدرس دهی میشن. به دیتاشیت مراجعه کنید.
        مثال:
        i2c_start();
        i2c_write(write_address_bus);
        i2c_write(address_MSB);
        i2c_write(address_LSB);
        i2c_write(data);
        i2c_stop();


        دیدگاه


          #5
          پاسخ : نحوه برنامه ریزی حافظه های سری 24c

          سلام
          نمی شه بگین این حافظه ها چطور حافظه هاییه
          ممنون
          اگر مقداری توضیح بدید ممنون می شم می خوام اگر بشه یک ضبط و پخش صدا بسازم
          my-zoo.blogfa.com
          مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

          دیدگاه


            #6
            پاسخ : نحوه برنامه ریزی حافظه های سری 24c

            نوشته اصلی توسط iranesabz
            سلام
            نمی شه بگین این حافظه ها چطور حافظه هاییه
            ممنون
            اگر مقداری توضیح بدید ممنون می شم می خوام اگر بشه یک ضبط و پخش صدا بسازم
            my-zoo.blogfa.com
            این حافظه ها از نوع حافظه های Electrically Erasable Programmable Read-only Memory یا به اختصار EEPROM هستن.
            اینترفیسشون بصورت I2C هست و معمولا اونقدری ظرفیت ندارن که بشه روشون صدا ضبط کرد.
            در ضمن سرعتشون هم نسبتاً پایینه و به درد کار مورد نظر شما فکر نکنم بخورن.()البته بستگی به طرحتون داره.
            به نظرم شما باید دنبال حافظه هایی از نوع FLASH باشید.
            موفق باشید

            دیدگاه


              #7
              پاسخ : نحوه برنامه ریزی حافظه های سری 24c

              سلام
              خیلی تشکر
              پس دنبال حافظه های فلش می رم
              مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

              دیدگاه

              لطفا صبر کنید...
              X