اطلاعیه

Collapse
No announcement yet.

ارتباط میکرو با EEPROM از طریق i2c ؟

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

    #16
    پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

    سلام
    باید اطلاعات ارسال شده از میکرو را نشان بده
    مثلا اینو ببین:
    http://www.4shared.com/file/112501263/bc0d7160/TWI.html
    در اینجا اطلاعات روی پین A روی پورت A دومی فرستاده میشه
    فرزندم در راه است

    دیدگاه


      #17
      پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

      نوشته اصلی توسط majid.4206
      فکر کنم پایه های SDA و SCL رو باید PC0 و PC1 وصل کنید. چون اونها قرمز شده.
      به اون دوتا پایه که میزنم اتفاقی نمیوفته ...
      تو برنامه پایه های PB.1 و PB.2 رو به عنوان sda و scl معرفی کردم ولی نمیدونم چرا تو پروتئوس اون دوتا پایه قرمز شدن
      بگذرین من که به این پرتئوس زیاد اطمینان ندارم و بیشتر مدارا رو به صورت عملی میبندم البته ناگفته نمونه بعضی جاها کمکم کرده ...
      یه سوال اون debug i2c که تو شکل نشون داده چیه یعنی قراره چیو نشون بده ؟
      ورژن پروتئوست چنده؟ 7.5 هم اومده ها. شاید ورژن قدیمیه
      اون I2C debugger تمام مکالمات بین اعضای یک باس i2C رو نمایش میده. راجع به پروتکل i2c یکم تحقیق کنی میفهمی چی نشون میده. الان سرعت کمه نمیتونم یه مثال برات پ کنم. ببین این دوستمون چی فرستاده شاید کمکت کنه. من احتمالا 10-15 روزی دیگه نیام.
      بای
      بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
      اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

      دیدگاه


        #18
        پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

        عرض سلام خدمت همه
        من دانشجوی مهندسی قدرت هستم . ولی پا توی الکترونیک گذاشتم .
        هم بسکام مینویسم هم با کدویژن کار می کنم .برای یک پروژه نیاز به کار با حافظه هایی مثل 24cxx یا هر مدلی از اینها پیدا کردم .
        کسی تا حالا با کد ویژن با این ایسی ها ارتباط برقرار کرده .
        اگه میشه یک کد نمونه به من بده یا توضیحی بده که چطوری با این ای سی ها کار کنم . یه چیزایی می دونم ولی کمه .
        لطفاً کمکم کنید خیلی مهمه
        ضمناً من روباتیک کار می کنم اگه کسی سوال داشت خوشحال میشم کمک کنم . :nerd:

        دیدگاه


          #19
          پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

          سلام خدمت همه.
          من تو پروتئوس تونستم 24c02 رو مقدار دهی کنم بعد اون مقدارو بخونم و بدم به پورت c اما در عمل هرکاری میکنم رو پورت c مقادیر نا معقولی دریافت میکنم اگه دوستان لطف کنن بگن مشکل چیه ممنون میشم.
          من از mega 16 با کریستال 12mh استفاده میکنم با codevision اگه لازمه برنامه و سورسشو پ کنم.
          درضمن میشه بگید منظور از مقاومت pullup چیه من هرجا میرم اصلآ به گوش فروشندهها نخورده و میگن مقاومت array آیا pullup همون array هست؟
          حبابها قربانی هوای درون خودشان هستند. (شریعتی)

          دیدگاه


            #20
            پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

            سلام
            اگه برنامتو بذاری بهتره :rolleyes:

            درضمن میشه بگید منظور از مقاومت pullup چیه من هرجا میرم اصلآ به گوش فروشندهها نخورده و میگن مقاومت array آیا pullup همون array هست؟
            فکر کنم به گوش فروشنده ها هم نخورده باشه :mrgreen:
            منظور از pull up کردن اینه که اون پایه یا خط یا هر چی... رو به یه مقاومت وصلش کنی به VCC و برعکس pull Down یعنی اینا که گفتم وصلش کنی به GND

            ذکات علم یاد دادنه ....

            دیدگاه


              #21
              پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

              مرسی مجید جان از راهنمایی در مورد pullup چند روزه دنبال گیر آوردن مقاومت pullup هستم!
              گفتی در عمل تونستی eeprom مقداردهی کنی بعد اون مقدارو بخونی اگه نقشه و سورس کارتو بزاری یه دنیا ممنون میشم من این کارو میکنم و مقدار نهایی رو برای امتحان میدم به یه پورت اما پایه های پورت به جای داشتن مقدار 0 یا 5 ولت مثلآ 2.3 ولت دارن و این مقدار بی قاعده و بی ارتبات به مقدار داده شده مییاد مٍثلآ من عدد 11110000 رو میدم رو پایه ها مثلآ 5- 5 -2.3-2.3-0-0-5-5- دارم.
              با تشکر
              حبابها قربانی هوای درون خودشان هستند. (شریعتی)

              دیدگاه


                #22
                پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

                اینم سورس برنامه که در محیط codevision نوشته شده:

                کد:
                #include <mega16.h>
                #asm
                  .equ __i2c_port=0x18 ;PORTB
                  .equ __sda_bit=3
                  .equ __scl_bit=4
                #endasm
                #include <i2c.h> 
                #include <delay.h> 
                 
                #define EEPROM_BUS_ADDRESS 0xa0 
                
                 void main(void) {
                 unsigned char i;
                 DDRC=0xff; 
                i2c_init(); 
                
                i2c_start(); 
                i2c_write(EEPROM_BUS_ADDRESS); 
                i2c_write(0x10); 
                i2c_write(0b00001111); 
                i2c_stop(); 
                delay_ms(100); 
                
                i2c_start(); 
                i2c_write(EEPROM_BUS_ADDRESS); 
                i2c_write(0x10); 
                i2c_start(); 
                i2c_write(EEPROM_BUS_ADDRESS | 1); 
                i=i2c_read(0); 
                i2c_stop(); 
                PORTC=i;
                
                while (1)
                   {
                   };
                }

                تو شبه ساز پروتئوس مقاومت های پول پ 5k1 (طبق دیتاشیت اتمل) و فرکانس میکرو 16mh انتخاب کردم.



                حبابها قربانی هوای درون خودشان هستند. (شریعتی)

                دیدگاه


                  #23
                  پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

                  گفتی در عمل تونستی eeprom مقداردهی کنی بعد اون مقدارو بخونی اگه نقشه و سورس کارتو بزاری یه دنیا ممنون میشم
                  به خدا شرمندتونم ... تمام برنامه هام format شدن
                  ولی با این حال تا جایی که از دستم بر بیاد کمکتون میکنم خیالی نیست :agree:

                  میدونید اشکال کار کجاست؟
                  تو ادرس دادن خود EEPROM هست . ببینید خود تراشه 3 تا پایه داره واسه ادرس دادن (A0,A1,A2 ) درسته ...

                  خوب با این 3 تا پایه ایی که در اختیار دارین می تونید 7 تا EEPROM رو به باستون اضافه کنید حالا فعلا همینو راه بندازین تا بعد :mrgreen:

                  فکر کنم شما این پایه ها رو رو هوا ول کردین اگه ا ین 3 تا پایه رو به فرض بدین به GND اون ادرس EEPROM که دادین a0 درسته میدونید چرا ادرسش a0 ؟؟؟
                  کلا EEPROM ها یه بایت ادرس دارن برای شناسایشون که 4 بیت MSb اونا برای فعال سازیشونه یعنی a0 میشه 0b10100000 که برای فعال کردن همه EEPROM ها لازمه 1010 رو بفرستی...
                  3 تا بیت بعدی یعنی بیت 3و2و1 مربوط به ادرسیه که به EEPROM دادی و بیت 0 هم مربوط به خوندن و نوشتنه اگه 1 باشه عمل خوندن و اگه 0 باشه عمل نوشتن رو انجام میده
                  امیدوارم که راه بیوفته
                  در ضمن برنامتون درسته فقط تنها کاری که باید بکنید اون 3 تا پایه ایی که گفتم وصلش کنید به GND

                  یا علی ...


                  ذکات علم یاد دادنه ....

                  دیدگاه


                    #24
                    پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

                    جید جان من اون سه تا پایه و wp رو gnd کردم (تو عکس معلومه) ولی جواب نگرفتم آیا مشکل از کریستال نیست؟ من در عمل از 12mh استفاده کردم با خازن 15 و 30 هم تستش کردم ولی باز هم همون جواب قبلی رو میده در ضمن حالا روی همه ی پایه های میکرو ولتاژ 1.8 دارم که باید 0 باشن من از راهنمایی های شما خیلی ممنونم می شه بگید مشکل کار چیه من تا حالا با میکرو اینقدر مشکل نداشتم که با این مورد دارم هر کار میکنم به جواب نمیرسم!
                    حبابها قربانی هوای درون خودشان هستند. (شریعتی)

                    دیدگاه


                      #25
                      پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

                      آی سی ایپرامی که من استفاده میکنم روش نوشته HT24LC02 آیا این آی سی همون 24c02 هست؟
                      من شنیدم ایپرامهایی هم هستن که به صورت موازی به میکرو وصل میشن میتونین چند تا معرفی کنین حجمش کم بود مهم نیست چون من فقط میخوام یک کد روش بنویسم (حداکثر 8 بایت) و بعد این کد خونده بشه و سرعتش برام خیلی مهمه (هرچی سریعتر بهتر).
                      بازم از وقتی که میزارین ممنونم.
                      حبابها قربانی هوای درون خودشان هستند. (شریعتی)

                      دیدگاه


                        #26
                        پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

                        آی سی ایپرامی که من استفاده میکنم روش نوشته HT24LC02 آیا این آی سی همون 24c02 هست؟
                        اونی که من داشتم br24c02 بود ولی اینو نمیدونم ....
                        شما دیتا شیتشو یه نگاهی بنداز معلوم میشه با i2c کار میکنه یا spi ...

                        من شنیدم ایپرامهایی هم هستن که به صورت موازی به میکرو وصل میشن میتونین چند تا معرفی کنین حجمش کم بود مهم نیست چون من فقط میخوام یک کد روش بنویسم (حداکثر 8 بایت) و بعد این کد خونده بشه و سرعتش برام خیلی مهمه (هرچی سریعتر بهتر).
                        بازم از وقتی که میزارین ممنونم.
                        راستش من با این سری کار نکردم ولی فکر کنم 28Cxx باشند ...که بسته به ظرفیتشون اون x هارو عدد بشون میدن...

                        جید جان من اون سه تا پایه و wp رو gnd کردم (تو عکس معلومه) ولی جواب نگرفتم آیا مشکل از کریستال نیست؟ من در عمل از 12mh استفاده کردم با خازن 15 و 30 هم تستش کردم ولی باز هم همون جواب قبلی رو میده در ضمن حالا روی همه ی پایه های میکرو ولتاژ 1.8 دارم که باید 0 باشن من از راهنمایی های شما خیلی ممنونم می شه بگید مشکل کار چیه من تا حالا با میکرو اینقدر مشکل نداشتم که با این مورد دارم هر کار میکنم به جواب نمیرسم!
                        فکر نکنم مشکل از کریستال باشه . مقدار خازنتون رو هم 22 پیکو بگیرید
                        ولتازی هم که میفته رو پایه ها رو دقیق نمیتونم بگم واسه چیه چون تا حالا به این مورد بر نخوردم... :redface:

                        شما اگه جواب نگرفتین یکار کن اول دیتاشیته eeprom تون رو ببینید که با i2c کار میکنه و یا میکروتونو عوض کنید
                        انشاا... که موفق بشید...
                        ذکات علم یاد دادنه ....

                        دیدگاه


                          #27
                          پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

                          با سلام از دوستان کسی میتونه با بسکام ارتباط با 24c04 رو توضیح بده؟ من هر کار کردم تا 256 بایتش رو نتونستم ادرس دهی کنم من توی low addres و high addres مشکل دارم وقتی که هردو رو می نویسم اییپرام کار نمی کنه ولی وقتی هم که یکدونش رو می نویسم تا 256 بیشتر نمی تونم بنویسم و اطلاعات قبلی پاک میشه کسی از دوستان برنامه نمونه ای نداره یا لینک مفیدی؟ :angry:
                          :nerd:

                          دیدگاه


                            #28
                            پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

                            eletex جان بالاخره به جواب رسیدی ؟
                            مشکل از کجا بود؟
                            ذکات علم یاد دادنه ....

                            دیدگاه


                              #29
                              پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

                              نوشته اصلی توسط alef_avr
                              با سلام از دوستان کسی میتونه با بسکام ارتباط با 24c04 رو توضیح بده؟ من هر کار کردم تا 256 بایتش رو نتونستم ادرس دهی کنم من توی low addres و high addres مشکل دارم وقتی که هردو رو می نویسم اییپرام کار نمی کنه ولی وقتی هم که یکدونش رو می نویسم تا 256 بیشتر نمی تونم بنویسم و اطلاعات قبلی پاک میشه کسی از دوستان برنامه نمونه ای نداره یا لینک مفیدی؟ :angry:
                              :nerd:
                              کسی از دوستان راهنمایی نمی کنه؟ :angry:

                              دیدگاه


                                #30
                                پاسخ : ارتباط میکرو با EEPROM از طریق i2c ؟

                                سلام مجید جان آره جواب گرفتم اگه خواستین مدار عملی و برنامه c رو میزارم مشکل تو پایه های scl , sdt بود که من رو پورت B تعریف کرده بودم اما در عمل باید همون پورتی رو انتخاب کنی که تو دیتاشیت نوشته که در مورد مگا16 پایه 0و1 پورت c بود. دو سه هفته بیخودی در گیر هیچی بودم!
                                حبابها قربانی هوای درون خودشان هستند. (شریعتی)

                                دیدگاه

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