اطلاعیه

Collapse
No announcement yet.

eeprom & codvision

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

    eeprom & codvision

    سلام من میخواستم ببینمم چطوری میشه 24C512 رو به میکرو وصل کرد ، توی سایت خیلی سرچ کردم ولی همشون نصفه نیمه رها شده بودن ، ممنون میشم جواب بدید .
    A-Hosseini

    #2
    پاسخ : eeprom & codvision

    کتابخونه این قطعات در بسکام و کد ویژن هست، اما یک موضوعی که وجود داره به علت اینکه 24C512 و 24C1024 سیستم آدرسی دهی متفاوتی با رده های پائین تر دارند باید خودتون یکم در اون دستکاری کنید. که با توجه به دیتا شیت قطعه براحتی میتونید اینکار رو انجام بدید.

    نکات بسیار مهم در تهیه پروگرامر که متاسفانه فراموش میشود!

    دیدگاه


      #3
      پاسخ : eeprom & codvision

      منون که جواب دادی ولی این کتابخونه رو که گفتی من تو کد ویژن ندیدم :question: :question: :question:
      A-Hosseini

      دیدگاه


        #4
        پاسخ : eeprom & codvision

        این هم یک کتابخونه کامل از خانواده 24Cxx که به همت یکی از دوستان به کدویژن تبدیل شده

        http://rapidshare.com/files/280799138/EEPROM_1.rar.html

        دیدگاه


          #5
          پاسخ : eeprom & codvision

          ممنون آقای اکبری . ولی راستش من چیزی از اون لایبرری سر در نیاوردم (دلیلشم اطلاعاته کم خودمه :redface، الان هم به فکرم افتاده که خودم یکی بنویسم .
          حالا یه چیزی نوشتم ولی جواب نمیده ، برای نوشتن تو آی سی از این کد :

          i2c_start();
          i2c_write(0x0000);
          i2c_write(0x0000);
          i2c_write(0x07);
          i2c_stop();
          delay_ms(10);
          برای خوندن هم از این کد:

          i2c_start();
          i2c_write(0x0000);
          i2c_write(0x0000);
          i2c_start();
          i2c_write(0x0000 | 1);
          data = i2c_read(0);
          i2c_stop();
          delay_ms(10);

          lcd_gotoxy(0,0);
          sprintf(buffer,"%d",data);
          lcd_puts(buffer);
          ولی رو LCD همش عدد 255 رو نشون میده :question:

          من از 24C512 دارم استفاده میکنم
          A-Hosseini

          دیدگاه


            #6
            پاسخ : eeprom & codvision

            سلام دوست عزیز

            کتابخونه مطلب خاصی نداره

            تنها چیزی که ممکنه کمی گیج کننده باشه define های اول برنامه هستش

            برای ارسال هر دستوری ابتدا باید یک مکث کوتاه کرد بعد کلاک و سلکت رو فعال کنی و فرمان رو بفرستی

            دیتاشیت رو بخونی متوجه میشی

            اگه با define ها مشکل داری جایگزینشون رو بزار.

            رعایت کردن فعال کردن کلاک و سلکت مهمه

            این کتابخونه رو هم آقای mostafaka (اگه اشتباه نکنم (ایکیوسان :mrgreen) برای avr gcc نوشتن که به code vision تبدیل شده

            از ایشون بپرسین بهتر میتونن جواب بدن

            دیدگاه


              #7
              پاسخ : eeprom & codvision

              بازهم ازتون ممنونم آقای اکبری ، ولی من به سرم زده خودم یه لایبرری برای کارم بنویسم .
              من تو برنامه اولم چند تا اشکال اساسی داشتم که اونارو پیدا کردم ،ولی باز هم عددی که روی ال سی دی نشون میده همون 255 هستش .
              این سری برنامم رو اینجوری نوشتم
              برای نوشتن تو آی سی :

              i2c_start();
              i2c_write(0xa0);
              i2c_write(0x000);
              i2c_write(0x07);
              i2c_stop();
              delay_ms(10);

              و برای خوندن از آی سی از کد :


              i2c_start();
              i2c_write(0xa0);
              i2c_write(0x000);
              i2c_start();
              i2c_write(0xa1);
              data = i2c_read(0);
              delay_ms(10);
              i2c_stop();


              lcd_gotoxy(0,0);
              sprintf(buffer,"%u",data);
              lcd_puts(buffer);
              delay_ms(10);

              استفاده کردم .

              اشکال اصلیم تو برنامه قبلی درست ست نکردن DEVICE ADDRESS بود که طبق دیتاشیت درستش کردم .
              ولی الان شکم تو WORD ADDRESS هستش تو تراشه 24C512 دقیقا از چی باید استفاده میکردم ؟
              ممنون میشم اگه کسی جواب بده.
              A-Hosseini

              دیدگاه


                #8
                پاسخ : eeprom & codvision

                نوشته اصلی توسط electronet_ir
                ممنون آقای اکبری . ولی راستش من چیزی از اون لایبرری سر در نیاوردم (دلیلشم اطلاعاته کم خودمه :redface، الان هم به فکرم افتاده که خودم یکی بنویسم .
                حالا یه چیزی نوشتم ولی جواب نمیده ، برای نوشتن تو آی سی از این کد :

                i2c_start();
                i2c_write(0x0000);
                i2c_write(0x0000);
                i2c_write(0x07);
                i2c_stop();
                delay_ms(10);
                برای خوندن هم از این کد:

                i2c_start();
                i2c_write(0x0000);
                i2c_write(0x0000);
                i2c_start();
                i2c_write(0x0000 | 1);
                data = i2c_read(0);
                i2c_stop();
                delay_ms(10);

                lcd_gotoxy(0,0);
                sprintf(buffer,"%d",data);
                lcd_puts(buffer);
                ولی رو LCD همش عدد 255 رو نشون میده :question:

                من از 24C512 دارم استفاده میکنم
                سلام
                توابع i2c و spi خود کدویژن یه روز در میون کار میکنن. شاید هم یه ورژن در میون.
                برای اطمینان تو پروتئوس از ابزار i2c debugger استفاده کنید(همون جا که اسیلوسکوپ هست قرار داره.) و ببینید همش علامت سوال داره میاد، یا چیز دیگه. اگه علامت سوال بیاد یا برنامه ایراد داره، یا pullup نداره، یا ....
                بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                دیدگاه


                  #9
                  پاسخ : eeprom & codvision

                  این کاری که گفتید رو انجام دادم ، ولی من مقاومتهای پول پ رو تو مدار ( هم سخت افزار هم پروتئوس ) گذاشتم ، نمیدونم اشکال از کجاست . میشه نرم افزارمو یه چک کنید ؟ ممنون میشم.

                  پروتئوس همرو علامت سوال میداد. :question: :question: :question:
                  A-Hosseini

                  دیدگاه


                    #10
                    پاسخ : eeprom & codvision

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

                    پروتئوس همرو علامت سوال میداد. :question: :question: :question:
                    اگه پروتئوس علامت سوال بده که عمرا تو عمل جواب نمیده. مشکل از کدویژنه. این توابع start و stop , send و... که شما استفاده می کنید، همه باگ دارن. از کتابخونه ای که گذاشتن سر در بیارید راحت ترید.
                    البته 512 رو نمیدونم ساپورت کنه یا نه. دیتاشیتش رو ندیدم.
                    بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                    اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                    دیدگاه


                      #11
                      پاسخ : eeprom & codvision

                      نوشته اصلی توسط mostafahk


                      اگه پروتئوس علامت سوال بده که عمرا تو عمل جواب نمیده. مشکل از کدویژنه. این توابع start و stop , send و... که شما استفاده می کنید، همه باگ دارن. از کتابخونه ای که گذاشتن سر در بیارید راحت ترید.
                      البته 512 رو نمیدونم ساپورت کنه یا نه. دیتاشیتش رو ندیدم.
                      یعنی منظور شما اینه که لایبرری کد ویژن مشکل داره . اگه خودم بخوام بنویسم باید از TWI استفاده کنم خودم مستقیم با I2C ارتباط برقرار کنم :question: :question: سخته
                      A-Hosseini

                      دیدگاه


                        #12
                        پاسخ : eeprom & codvision

                        اونقدر هم که فکر میکنی سخت نیست

                        کافیه پروتکل و سخت افزار این ارتباط رو خوب بخونی و بفهمی

                        همه این ارتباطات یک واحد تولید کلاک دارن و چند تا رجیستر که باید بدونی ازشون چطور باید استفاده کرد

                        یه مرجع خوب گیر بیارو بخون
                        من الان تو ذهنم نیست که توضیح بدم

                        اون توابع کتابخونه ای که آقای حیدری گذاشتن هم بر همین اساس نوشته شدن

                        دیدگاه


                          #13
                          پاسخ : eeprom & codvision

                          من یه سری مطلب در مورد TWI تو کتابا پیدا کردم ،خوندم . اولین چیزی که رو که نظرمو جلب کرد این بود که حتما باید از پایه های SDA و SCL خود میکرو استفاده کرد . ( این خودش یه محدودیته ) ولی خوب اینم باید مثل پایه های دیگه (TX, RX و...) قبول کرد اولین قدم باید سخت افزارمو عوض کنم. (TWI یکم سخت به نظر اومد :redface: :redface: :redface
                          A-Hosseini

                          دیدگاه


                            #14
                            پاسخ : eeprom & codvision

                            TWI رو هم مثل Usart میشه به صورت نرم افزاری پیاده سازی کرد.

                            حتی از یوزارت هم راحت تر

                            اما بهتره برای شروع ، بهتره از همون امکانات سخت افزاری ای که میکرو فراهم آورده استفاده کنی

                            اگه فرصت کردم من هم یه مروری به مطالب گذشته میکنم و کمکت میکنم

                            هم سرم خیلی شلوغه و هم مشکل اصلیم حافظم هست که دیگه پیر شده :mrgreen:

                            دیدگاه

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