اطلاعیه

Collapse
No announcement yet.

کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

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

    کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

    سلام
    من می خواستم آی سی 24C512 را توسط XMEGA راه اندازی کنم
    اگر نمونه برنامه ای باشه خیلی کمکم می کنه
    در مورد آی سی هایی با شماره 24c32 بالاتر باشه
    تو دیتا شیت آی سی نوشته دو تا 8 بیت آدرس باید ارسال بشه ولی توسط تابع TWI_Master_trans نمیشه این تعداد بایت را همزمان ارسال کرد
    یه نمونه برنامه هم دوستان تو همین انجمن نوشته بودند که با رجیسترها این کار رو انجام می داد رو دیدم که تو کدویژن تبدیلش کردم کار نکرد
    ممنون :redface:

    #2
    پاسخ : کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

    نوشته اصلی توسط morteza1514
    سلام
    من می خواستم آی سی 24C512 را توسط XMEGA راه اندازی کنم
    اگر نمونه برنامه ای باشه خیلی کمکم می کنه
    در مورد آی سی هایی با شماره 24c32 بالاتر باشه
    تو دیتا شیت آی سی نوشته دو تا 8 بیت آدرس باید ارسال بشه ولی توسط تابع TWI_Master_trans نمیشه این تعداد بایت را همزمان ارسال کرد
    یه نمونه برنامه هم دوستان تو همین انجمن نوشته بودند که با رجیسترها این کار رو انجام می داد رو دیدم که تو کدویژن تبدیلش کردم کار نکرد
    ممنون :redface:
    سلام.طبق دیتا شیت آدرس فقط 7 بیت است.آدرسی که در دیتاشیت دو بایت اعلام شده فکر می کنم آدرس محل مورد نظر برای دسترسی در حافظه eeprom است.

    دیدگاه


      #3
      پاسخ : کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

      چندین نمونه کد و کتابخانه برای این منظور وجود دارد که با تغییرات جزئی قابل استفاده برای XMEGA هم هست. برای جواب گرفتن بهتر از سوال، لطفا نمونه کد مورد استفاده را قرار دهید.
      اوژن: به معنای افکننده و شکست دهنده است
      دانایی، توانایی است-Knowledge is POWER
      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

      دیدگاه


        #4
        پاسخ : کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

        این کد برنامه هستش:
        i2c_tx_data[0]=0x01 >>8; //Address
        i2c_tx_data[1]=0x00 ; //Address
        Data i2c_tx_data[2]=0x00 ; //


        unsigned char data;
        } twi_eeprom;
        twi_master_trans(&twid_master,EEPROM_24C512_I2 C_BUSS_ADDRESS >>1 ,i2c_tx_data,3,NULL,0);

        دیدگاه


          #5
          پاسخ : کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

          کدی که قرار داده اید، علاوه بر آن که بسیار نامرتب و ناخوانا نوشته شده از نظر محتوا هم ناقص است.
          اوژن: به معنای افکننده و شکست دهنده است
          دانایی، توانایی است-Knowledge is POWER
          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

          دیدگاه


            #6
            پاسخ : کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

            اگه نا مرتب بود ،معذرت می خوام
            من با این نتیجه رسیدم که برای کار با این آی سی ها این مراحل را باید طی کنیم
            1- یه متغییر از نوع Unsigned char آرایه ای تعریف کردم و آرایه اول اونو 8 بار به چپ شیفت دادم
            2-دو آرایه اول را برای آدرس و آرایه سوم را برای دیتا در نظر گرفتم و سه عضو اول آرایه را توسط تابع twi_master_trans ارسال کردم
            طبق کد بالا
            لطفا راهنمایی کنید
            ممنون

            دیدگاه


              #7
              پاسخ : کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

              به دلیل نمونه کد ناقص سوال شما همچنان نامفهوم است. اما یک نمونه کد در Help کدویژن برای ارتباط با 24c16 قرار داده شده که می توانید سوال را بر اساس آن مطرح کنید:

              کد:
              /* accessing an external AT24C16B EEPROM using the
                TWID module running in master mode */
              
              
              /* TWI functions for ATxmega devices */
              #include <twix.h>
              
              
              /* delay functions */
              #include <delay.h>
              
              
              /* TWI clock rate [bps] */
              #define TWI_CLK_RATE 100000
              
              
              /* 7 bit TWI bus slave address of the AT24C16B 2kbyte EEPROM */
              #define EEPROM_TWI_BUS_ADDRESS (0xA0 >> 1)
              
              
              /* structure that holds information used by the TWID master
                for performing a TWI bus transaction */
              TWI_MASTER_INFO_t twid_master;
              
              
              /* interrupt service routine for TWID master */
              interrupt [TWID_TWIM_vect] void twid_master_isr(void)
              {
              twi_master_int_handler(&twid_master);
              }
              
              
              void main(void)
              {
              struct
                 {
                 struct
                   {
                   unsigned char msb;
                   unsigned char lsb;
                   } addr;
                 unsigned char data;
                 } twi_eeprom;
              
              
              unsigned char eeprom_rd_data;
              
              
              /* general TWID initialization
                no external driver interface
                no SDA hold time */
              twi_init(&TWID,false,false);
              
              
              /* enable and initialize the TWID master
                interrupt level: low */
              twi_master_init(&twid_master,&TWID,TWI_MASTER_INTLVL_LO_gc,
              TWI_BAUD_REG(_MCU_CLOCK_FREQUENCY_,TWI_CLK_RATE));
              
              
              /* enable the Low interrupt level */
              PMIC.CTRL|=PMIC_LOLVLEN_bm;
              
              
              /* globally enable interrupts */
              #asm("sei")
              
              
              /* write the byte 0x55 to the AT24C16B EEPROM address 0x210 */
              twi_eeprom.addr.msb=0x02;
              twi_eeprom.addr.lsb=0x10;
              twi_eeprom.data=0x55;
              twi_master_trans(&twid_master,EEPROM_TWI_BUS_ADDRESS,(unsigned char *) &twi_eeprom,3,0,0);
              
              
              /* 10ms delay to complete the write operation */
              delay_ms(10);
              
              
              /* read the byte back into the eeprom_rd_data variable */
              twi_master_trans(&twid_master,EEPROM_TWI_BUS_ADDRESS,(unsigned char *) &twi_eeprom,2,&eeprom_rd_data,1);
              
              
              /* stop here */
              while (1);
              }
              اوژن: به معنای افکننده و شکست دهنده است
              دانایی، توانایی است-Knowledge is POWER
              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

              دیدگاه


                #8
                پاسخ : کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

                اولا از این که به سوال من پاسخ می دهید ممنونم
                سوالات من :
                چطور میشه توسط همین برنامه رو برای 24c512 استفاده کرد
                چون من این برنامه رو هم استفاده کردم و همچنین بایت ارسالی اون و تعداد اعضای استراکچرها رو هم دستکاری کردم ولی باز هم درست نشد
                با استفاده از استراکچر TWI_MASTER_INFO_t; مقدار Result مقدار 5 است که به معنی NACK میشه که برنامه کار نمی کنه .!!!!!

                دیدگاه


                  #9
                  پاسخ : کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

                  فرق 24c16 که در این برنامه استفاده شده با 24c512 تنها در بیت های 11 تا 15 آدرس است که در اولی Don't care است و معمولا صفر قرار داده می شود و در دومی بسته به آدرس مورد نظر تعیین می شود. بنابراین مشکل شما احتمالا سخت افزاری است. در این رابطه اولا روی پین های scl و sda باید مقاومت های pullup با مقداری حدود 3.3 کیلواهم قرار داده شود و A0 و A1 و WP باید به زمین متصل شوند.
                  اوژن: به معنای افکننده و شکست دهنده است
                  دانایی، توانایی است-Knowledge is POWER
                  برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                  وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                  قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                  اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                  ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                  دیدگاه


                    #10
                    پاسخ : کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

                    ممنون
                    من از مقاومتهای 4.7 کیلو برای PULL UP استفاده کردم .
                    روی آی سی من اینو نوشته :

                    ATMLH246
                    2FCDY
                    2W2422
                    اینا چه مفهومی دارند ،سفارش من به فروشنده 24c512 بوده ؟؟؟
                    تو اینترنت هم چیزی پیدا نکردم ....
                    ممنون

                    دیدگاه


                      #11
                      پاسخ : کمک برای راه اندازی 24c512 توسط XMEGA با کد ویژن

                      تا جایی که مشاهده کرده ام Part number های Eeprom های Atmel عددی متفاوت از شماره اصلی است. اما لینکی که ارقام و اعداد روی IC را ذکر کرده باشد تاکنون ندیده ام.
                      اوژن: به معنای افکننده و شکست دهنده است
                      دانایی، توانایی است-Knowledge is POWER
                      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                      دیدگاه

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