اطلاعیه

Collapse
No announcement yet.

اتصال EEPROM به AVR

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

    اتصال EEPROM به AVR

    آیا کسی می داند که چطور می توانم EEPROM 256 را به میکرو متصل کنم؟
    در واقع من متصل نموده ام ولی اصلا جواب نمی دهد!!!

    #2
    پاسخ : اتصال EEPROM به AVR

    با چه نرم افزاری کار میکنی؟
    اگه Bascom هست ، مطمئنا کتاب علی کاهه رو خوندی.
    یه فصل به طور اختصاصی به این موضوع اختصاص داده شده. اتصالات رو دوباره بررسی کن (شاید جای دوتا پایه رو اشتباهی وصل کرده باشی.)

    دیدگاه


      #3
      پاسخ : اتصال EEPROM به AVR

      سلام
      ببین این EEPROM ها با پرتکل i2c کار میکنن.اولا حتما یادت باشه که با 2تا مقاومت 10 کیلو دو سیم Clock و Data رو باید pullup کنی وگه نه کار نمی کنه.حتما باید آدرس EEPROM رو رو صفر بزاری.بعدش دیگه کار با توابع i2c .اول استارت بعد آدرس محل قرار گیری بایت و بعد خود بایت
      کلا کار باهاش راحته.بازم مشکل داشتی بگو
      خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

      دیدگاه


        #4
        پاسخ : اتصال EEPROM به AVR

        من کد های زیر رو در نرم افزار Codevision تایپ کردم ولی اصلا جواب نیده و حتی تصدیق هم نمی کنه
        من باید چی کار کنم؟؟؟؟
        /* the I2C bus is connected to PORTB */
        /* the SDA signal is bit 3 */
        /* the SCL signal is bit 4 */
        #asm
        .equ __i2c_port=0x18
        .equ __sda_bit=3
        .equ __scl_bit=4
        #endasm

        /* now you can include the I2C Functions */
        #include <i2c.h>

        /* function declaration for delay_ms */
        #include <delay.h>

        /* read a byte from the EEPROM */
        unsigned char eeprom_read(unsigned char address) {
        unsigned char data;
        i2c_start();
        i2c_write(0xa1);
        i2c_write(address);
        i2c_start();
        i2c_write(0xa1 | 1);
        data=i2c_read(0);
        i2c_stop();
        return data;
        }

        /* write a byte to the EEPROM */
        void eeprom_write(unsigned char address, unsigned char data) {
        i2c_start();
        i2c_write(0xa);
        i2c_write(address);
        i2c_write(data);
        i2c_stop();
        /* 10ms delay to complete the write operation */
        delay_ms(10);
        }

        void main(void) {
        unsigned char i;
        /* initialize the I2C bus */
        i2c_init();
        /* write the byte 55h at address AAh */
        eeprom_write(0xaa,0x55);
        /* read the byte from address AAh */
        i=eeprom_read(0xaa);
        while (1); /* loop forever */
        }

        دیدگاه

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