اطلاعیه

Collapse
No announcement yet.

کمک درباره I2C

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

    کمک درباره I2C

    من میخواهم اطلاعات درون 1 eeprom را بخوانم و روی یک eeprom دیگه بریزم
    مثلا از 24c02 به 24c02 ی دیگه
    اگه بشه اطلاعات را روی lcd حرف کاراکتر 2*16هم نشون بدهکه عالی میشه
    اگه میشه کمکم کنید

    #2
    پاسخ : کمک درباره I2C

    سلام دوست عزیز
    شما میخواین این کار رو با چی انجام بدین؟ میکرو یا کامپیوتر؟
    راستش من هم برای یک پروژه احتیاج به EEPROM دارم.من میخوام اونو با میکرو 8051 به زبان اسمبلی راه بندازم.
    اگر شما هم با اسمبلی 8051 کار میکنین بگین تا با هم یه کاریش بکنیم.البته با کمک دیگر دوستان.

    دیدگاه


      #3
      پاسخ : کمک درباره I2C

      سلام
      من با این IC کار نکردم ولی اگر این EEPROM های شما قابلیت آدرس دهی مجزا به عنوان slave رو داره میتونی هردو رو به یه باس وصل کنی و اطلاعات رو از یکی بخونی و روی اون یکی بریزی،(البته چون حجم این حافظه ها ممکنه زیاد باشه نمیشه این اطلاعات رو از یکی بخونیم و برش داریم و رو یکی دیگه بریزیم)
      اما اگر نداره فکر می کنم راحت ترین راه که شاید از نظر اقتصادی درست نباشه استفاده از 2 تا میکرو هست،هر کدوم از EEPROM ها را به این میکروها وصل کنی بعد اطلاعات رو از این یکی بخونی بفرستی به اون میکرو تا اون روی EEPROM بریزه
      خب از LCD هم میشه استفاده کرد ولی فکر نمی کنم برای نمایش اطلاعات مفید باشه
      در دیر مغان آمد یارم قدحی در دست
      مست از می می خواران از نرگس مستش مست

      دیدگاه


        #4
        پاسخ : کمک درباره I2C

        میخواهم اینکار را باpic 16f84 یا pic 16877 انجام بدم خود pic مهم نیست
        lcd هم لازم و زروری نیست ولی کپی eeprom از EEPROM دیگر خیلی واجب است
        اگر هم از EEPROM داخلی pic باشه ایرادی نداره
        اگه کمکم کنید ممنون میشم

        دیدگاه


          #5
          پاسخ : کمک درباره I2C

          با pic16f877 و به صورت سخت افزاری باید بشه جواب خوبی ازش گرفت . چون 877 ماژول mssp رو داره که تو دو مد spi و i2c می تونه عمل بکنه و دارای قدرت نسبی خوبی هست .
          به دلیل رعایت نکردن قوانین ، امضا ویرایش شد.

          دیدگاه


            #6
            پاسخ : کمک درباره I2C

            با سلام
            ممکنه یه راه دیگه هم وجود داشته باشه البته من امتحانش نکردم ولی منطقی بنظر میاد .
            اینکه از یه آی سی لچ استفاده کنی و هر دو تا ای ایپرام ها را به خطوط مربوطه وصل کنی و توسط میکرو و آی سی لچ هر دفعه معلوم کنی که کدوم ای ایپرام باید دستور را اجرا کنه و نسبت به اون عکس العمل نشون بده .و ای ایپرام دوم نیز باید زمانیکه اولی در حال مثلا خوانده شدن اطلاعات هست غیر فعال باشه و زمانیکه اطلاعات خونده شد ای ایپرام دوم فعال بشه و اطلاعات خونده شده توسط میکرو توش ذخیره بشه .

            تو این چند روز احتمالا خیلی سرم شلوغ میشه ولی دو سه روز دیگه که امتحاناتم تموم شد امتحانش هم میکنم .
            اگه تا اون موقع مشکلتون حل شد راه حلش رو هم بنویسید ممنون میشم .

            موفق باشید .
            :smile:
            [left][move][b][color=green][size=11pt]ما می توانیم .
            ، همین ... *. * * *. * * * [color=re

            دیدگاه


              #7
              پاسخ : کمک درباره I2C

              سلام .
              لینک زیر یک قفل رمز که تو اون از 24c32 eeprom استفاده شده با 8051 و زبان سی هستش نکات جالبی داره فکر کنم بتونه کمکت کنه .

              http://www.4shared.com/file/9786614/ac95d7bb/ghofl2.html

              سوالی بود در خدمتم.

              خبرآمد خبري در راه است
              سرخوش آن دل كه از آن گاه است

              دیدگاه


                #8
                پاسخ : کمک درباره I2C

                سلام
                که اینطور....... پس شما میخواین با PIC این کارو انجام بدین.
                واسه انتقال اطلاعات EEPROM داخلی هم خوبه ، ولی اگر نمیخواین ازش استفاده کنین من پیشنهاد میکنم هر دوتا EEPROM رو به یک باس وصل کنید و از رو یکیشون تا جایی که RAM میکرو جا داره بخونین و بریزین رو اون یکی. و الا آخر....
                این آیسی این قابیلیت رو داره که تا هشت عدد slave رو به یه باس وصل کرد. از طریق 3 تا پین آدرس.

                نوشته اصلی توسط coloory
                ممکنه یه راه دیگه هم وجود داشته باشه البته من امتحانش نکردم ولی منطقی بنظر میاد .
                اینکه از یه آی سی لچ استفاده کنی و هر دو تا ای ایپرام ها را به خطوط مربوطه وصل کنی و توسط میکرو و آی سی لچ هر دفعه معلوم کنی که کدوم ای ایپرام باید دستور را اجرا کنه و نسبت به اون عکس العمل نشون بده .و ای ایپرام دوم نیز باید زمانیکه اولی در حال مثلا خوانده شدن اطلاعات هست غیر فعال باشه و زمانیکه اطلاعات خونده شد ای ایپرام دوم فعال بشه و اطلاعات خونده شده توسط میکرو توش ذخیره بشه .
                دوست عزیز حرفهای شما منو بیشتر یاد کار با حافظه های پارالل میندازه. میشه یکم بیشتر توضیح بدین؟ یه شماتیکی، چیزی...(من که نفهمیدم! :redface
                ------------------------------------------------------------------------------------------------------------------------------------------------------
                آقا رضا من اینو قبلاً دیدم . به زبان اسمبلی نداری؟!

                دیدگاه


                  #9
                  پاسخ : کمک درباره I2C

                  سلام

                  چشم سعی میکنم تو پروتوس ببندمش بعد براتون بفرستم .
                  البته امیدوارم وقت کنم و زود ببندمش .

                  موفق باشید :agree:
                  [left][move][b][color=green][size=11pt]ما می توانیم .
                  ، همین ... *. * * *. * * * [color=re

                  دیدگاه


                    #10
                    پاسخ : کمک درباره I2C

                    سلام
                    من از 24c512 استفاده میکنم .
                    دو تا میکرو atmega16 دارم که از طریق ارتباط سریال (Rx Tx) به هم مرتبط هستند و دو تا eeprom که هر کدام به یک میکرو وصله.
                    میخوام یک سری اطلاعات را روی حافظه اول ذخیره کنم بعد اطلاعات ذخیره شده روی آن را بخونم و از طریق ارتباط سریال بین دو میکرو در حافظه دوم ذخیره کنم .ارتباط سریال حافظه با میکرو i2c است و زبان برنامه نویسی c یا بیسیک خیلی فرق نمی کند ولی سی بهتره. :smile: :biggrin: :bye

                    دیدگاه


                      #11
                      پاسخ : کمک درباره I2C

                      نوشته اصلی توسط meahdi
                      میخواهم اینکار را باpic 16f84 یا pic 16877 انجام بدم خود pic مهم نیست
                      lcd هم لازم و زروری نیست ولی کپی eeprom از EEPROM دیگر خیلی واجب است
                      اگر هم از EEPROM داخلی pic باشه ایرادی نداره
                      اگه کمکم کنید ممنون میشم
                      سلام.
                      این حافظه ها بسته به نوعشون آدرس سخت افزاری دارند.
                      یعنی از 2 تا 8 تا از این حافظه ها رو میشه به یک خط I2C متصل کرد و توی آدرس دهی , آدرس سخت افزاری هر کدومشون رو داد و باهاشون کار کرد.
                      آدرس سخت افزاری هم به اینصورته که اینا بین یک تا سه پایه برای آدرس دهی سخت افزاری دارند و با وصل کردن این پایه ها به زمین یا به vcc این بیتها صفر و یک تنظیم میشند.
                      موقع آدرس دهی هم باید این آدرس سخت افزاری همراه با آدرس حافظه به آیسی ارسال بشه.
                      بنابر این به راحتی با یک میکرو میشه این کار رو انجام داد.

                      ---------

                      سلام
                      من از 24c512 استفاده میکنم .
                      دو تا میکرو atmega16 دارم که از طریق ارتباط سریال (Rx Tx) به هم مرتبط هستند و دو تا eeprom که هر کدام به یک میکرو وصله.
                      میخوام یک سری اطلاعات را روی حافظه اول ذخیره کنم بعد اطلاعات ذخیره شده روی آن را بخونم و از طریق ارتباط سریال بین دو میکرو در حافظه دوم ذخیره کنم .ارتباط سریال حافظه با میکرو i2c است و زبان برنامه نویسی c یا بیسیک خیلی فرق نمی کند ولی سی بهتره
                      بگو کجای کار مشکل داری , اینجا به اشکالاتتون جواب داده میشه.
                      موفق باشی.
                      الهم عجل لولیک الفرج

                      دیدگاه


                        #12
                        پاسخ : کمک درباره I2C

                        اشکال کارم در شروع برنامه نویسی .
                        مثال های توی سایت را هم خواندم ولی نمی دونم وقتی تو پروتئوس شبیه سازی کردم از کجا متوجه شم داره درست کار می کنه
                        مثال های پروتئوس سایت را دیدم ولی چیز خیلی زیادی متوجه نمی شم.
                        مرسی
                        اگر کمکم کنید ممنون می شم.

                        دیدگاه


                          #13
                          پاسخ : کمک درباره I2C

                          با سلام:
                          این برنامه کامل برای نوشتن و خواندن به صورت بایتی و صفحه ای در حافظه های سری 24 به حافظه زیر 2 کیلو بایت است به زبان اسمبلی 8051 امیدوارم که مفید واقع بشود.
                          [************************************************** *****
                          ;* SAVE TO EEPROM *
                          ;* *
                          ;* FOR AT24C01A AT24C02 AT24C04 AT24C08 AT24C16 *
                          ;************************************************* ******

                          ;ghabl az in zir barnameh bayad karhayeh zir ra anjam dahim:
                          ;1-"sda" va "scl" va "wp" ra tarif ****m
                          ;2-"flagah" va "flagal" va "FLAGREP" VA "FLAGR"
                          ;3-ADDRESS DAR DPTR ZAKHIREH SHAVAD
                          ;4-"STACKAD" VA "STACKSH" VA "STACKSH1" VA
                          ;5-DAR PAGEWRITE BAYAD MAKAN SHROE ETLAAT DAR RAM DAR "R0" RIKHTEH SHAVAD
                          ;6-DAR PAGEWRITE BAYAD CODE "PAYANW" TARIF SHAVAD
                          ;6-DAR PAGEREED BAYAD CODE "PAYANR"TARIF SHAVAD
                          ;7-DAR PAGEWRITE BAYAD TEDAD BAYTHAYEH HAR "ppage" RA MOSHAKHAS KARD
                          ;8-DAR PAGEREED BAYAD MAKAN SHOROEH ZAKHIREH ETLAAT DAR RAM DAR "R1" RIKHTEH SHAVAD
                          ;9-((AGAR BAD AZ IN BARNAMEH FLAGREP 1 BASHAD BAYAD AMALIAT DOBAREH EJRA SHAVAD))

                          ;SDA**SCL**WP**FLAGAH**FLAGAL**FLAGREP**STACKAD**S TACKSH
                          ;STACKSH1**PAYANW**PAYANR**PPAGE**FLAGR
                          ;

                          ;************************************************* *********************************************
                          ;***************** MAKE START CONDITION ***************
                          ;************************************************* *********************************************


                          START:

                          SETB SDA
                          SETB SCL
                          JNB SDA,BACKST1
                          JNB SDA,BACKST1
                          NOP

                          CLR SDA
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP

                          CLR SCL
                          CLR C
                          JMP BACKST2
                          BACKST1: SETB C
                          BACKST2: RET

                          ;************************************************* **********************************************
                          ;**************** MAKE STOP CONDITION ****************
                          ;************************************************* **********************************************


                          STOP:
                          CLR SDA
                          SETB SCL
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          SETB SDA
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          RET

                          ;************************************************* **********************************************
                          ;***************** PAGE WRITE ****************
                          ;************************************************* **********************************************

                          PAGEWRITE:
                          CLR FLAGREP
                          CALL WDRST
                          MOV STACKSH,#00
                          CLR wp
                          MOV A,DPH
                          ANL A,#0FH
                          ORL A,#0A0H
                          CLR ACC.0
                          MOV STACKAD,A
                          BACKBW7: CALL START
                          JC BACKBW8
                          BACKBW2: MOV A,STACKAD
                          CALL SHIFTOUT
                          JC BACKBW10
                          BACKBW3: JB FLAGAL,BACKBW4
                          MOV STACKAD,DPL
                          SETB FLAGAL
                          JMP BACKBW2
                          BACKBW4: MOV STACKAD,@R0
                          CJNE @R0,#PAYANW,BACKBW5
                          BACKBW11: CLR C
                          BACKBW6: CALL STOP
                          BACKBW9: CLR FLAGAH
                          CLR FLAGAL
                          SETB WP
                          RET
                          BACKBW8: SETB FLAGREP
                          JMP BACKBW9
                          BACKBW10: SETB FLAGREP
                          JMP BACKBW6
                          BACKBW5: INC R0
                          INC STACKSH
                          MOV A,STACKSH
                          CJNE A,#PPAGE+1,BACKBW2
                          JMP BACKBW11
                          BACKBW12: JMP BACKBW2

                          ;************************************************* *****************************************
                          ;************** PAGE REED *******************
                          ;************************************************* *****************************************


                          PAGEREED:
                          CLR FLAGREP
                          CALL WDRST
                          MOV STACKSH,#00
                          MOV A,DPH
                          ANL A,#0FH
                          ORL A,#0A0H
                          CLR ACC.0
                          MOV DPH,A
                          MOV STACKAD,A
                          BACKRR11: CALL START
                          JC BACKRR14
                          BACKRR2: MOV A,STACKAD
                          CALL SHIFTOUT
                          JC BACKRR12
                          BACKRR3: JB FLAGAL,BACKRR4
                          MOV STACKAD,DPL
                          SETB FLAGAL
                          JMP BACKRR2
                          BACKRR4: JB FLAGR,BACKRR7
                          MOV A,DPH
                          SETB ACC.0
                          MOV STACKAD,A
                          SETB FLAGR
                          CALL START
                          JC BACKRR12
                          JMP BACKRR2
                          BACKRR7: CALL SHIFTIN
                          CJNE A,#PAYANR,BACKRR9
                          JMP BACKRR10
                          BACKRR9: MOV @R1,A
                          INC R1
                          INC STACKSH
                          MOV A,STACKSH
                          CJNE A,#PPAGE,BACKRR8
                          JMP BACKRR10
                          BACKRR10: CALL RESPOND1
                          CLR C
                          BACKRR15: CALL STOP
                          BACKRR13: CLR FLAGAH
                          CLR FLAGAL
                          CLR FLAGR
                          RET
                          BACKRR12: SETB FLAGREP
                          JMP BACKRR15
                          BACKRR14: SETB FLAGREP
                          JMP BACKRR13
                          BACKRR8: CALL RESPOND0
                          JMP BACKRR7

                          ;************************************************* *************************************************
                          ;***************** BYTE WRITE *******************
                          ;************************************************* *************************************************


                          BYTEWRITE:

                          CLR FLAGREP
                          CALL WDRST
                          CLR wp
                          MOV A,DPH
                          ANL A,#0FH
                          ORL A,#0A0H
                          CLR ACC.0
                          MOV STACKAD,A
                          BACKPW7: CALL START
                          JC BACKPW8
                          BACKPW2: MOV A,STACKAD
                          CALL SHIFTOUT
                          JC BACKPW10
                          BACKPW3: JB FLAGAL,BACKPW4
                          MOV STACKAD,DPL
                          SETB FLAGAL
                          JMP BACKPW2
                          BACKPW4: MOV A,R0
                          CALL SHIFTOUT
                          BACKPW11: CLR C
                          BACKPW6: CALL STOP
                          BACKPW9: CLR FLAGAH
                          CLR FLAGAL
                          SETB WP
                          RET
                          BACKPW8: SETB FLAGREP
                          JMP BACKPW9
                          BACKPW10: SETB FLAGREP
                          JMP BACKPW6

                          ;************************************************* ***********************************************
                          ;***************** BYTE REED *****************
                          ;************************************************* ***********************************************


                          BYTEREED:

                          CLR FLAGREP
                          CALL WDRST
                          MOV STACKAD,#0A0H
                          MOV A,DPH
                          ANL A,#0FH
                          ORL A,#0A0H
                          CLR ACC.0
                          MOV DPH,A
                          MOV STACKAD,A
                          BACKBR11: CALL START
                          JC BACKBR14
                          BACKBR2: MOV A,STACKAD
                          CALL SHIFTOUT
                          JC BACKBR12
                          BACKBR3: JB FLAGAL,BACKBR4
                          MOV STACKAD,DPL
                          SETB FLAGAL
                          JMP BACKBR2
                          BACKBR4: JB FLAGR,BACKBR7
                          MOV A,DPH
                          SETB ACC.0
                          MOV STACKAD,A
                          SETB FLAGR
                          CALL START
                          JC BACKBR12
                          JMP BACKBR2
                          BACKBR7: CALL SHIFTIN
                          BACKBR9: MOV R1,A
                          BACKBR10: CALL RESPOND1
                          CLR C
                          BACKBR15: CALL STOP
                          BACKBR13: CLR FLAGAH
                          CLR FLAGAL
                          CLR FLAGR
                          RET
                          BACKBR12: SETB FLAGREP
                          JMP BACKBR15
                          BACKBR14: SETB FLAGREP
                          JMP BACKBR13
                          BACKBR8: CALL RESPOND0
                          JMP BACKBR7

                          ;************************************************* ***********************************************
                          ;********************* SHIFTOUT *****************
                          ;************************************************* ***********************************************



                          SHIFTOUT:
                          MOV STACKSH1,#8
                          CLR C
                          BACKSHO1: RLC A
                          MOV SDA,C
                          NOP
                          NOP
                          SETB SCL
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          CLR SCL
                          DJNZ STACKSH1,BACKSHO1
                          SETB SDA
                          NOP
                          NOP
                          NOP
                          SETB SCL
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          MOV C,SDA
                          CLR SCL
                          RET

                          ;************************************************* ************************************************** *
                          ;********************* SHIFT IN DATA *********************
                          ;************************************************* ************************************************** *

                          SHIFTIN:
                          SETB SDA
                          MOV STACKSH1,#8
                          BACKSHI1: NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          SETB SCL
                          NOP
                          NOP
                          NOP
                          NOP
                          MOV C,SDA
                          RLC A
                          CLR SCL
                          DJNZ STACKSH1,BACKSHI1
                          RET

                          RESPOND0:
                          CLR SDA
                          NOP
                          NOP
                          NOP
                          SETB SCL
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          CLR SCL
                          RET

                          RESPOND1:
                          SETB SDA
                          NOP
                          NOP
                          NOP
                          SETB SCL
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          NOP
                          CLR SCL
                          RET

                          [/left][/center]
                          ر کسي را بهر کاري در جهان آورده اند
                          کار ما عشق است و ما را بهر آن آورده اند

                          دیدگاه


                            #14
                            پاسخ : کمک درباره I2C

                            ایا IC وجود دارد که ورودی آن I2C باشد و توسط این خط کنترل بتوان 54 پایه یک دستگاه دیگر را کنترل کرد ویا مشابه این کار را چگونه می توانم با دیگر ICها انجام داد

                            دیدگاه


                              #15
                              پاسخ : کمک درباره I2C

                              از همه ی دوستان تشکر میکنم
                              کامل بودن
                              و خیلی از مشکلن حل شده
                              حالا من میخوام اطلاعات داخل ای سی رو بخونم
                              و رو ال سی دی نشون بدم
                              مثلاَ بلوک 1 رو بخونم وروصفحه ال سی دی نشونبدم
                              امامشکلم اینه که درست نشون نمیده
                              تو programer مثلاَ مینویسه 06
                              اما روصفحه چیز دیگه ای مینویسه
                              نمیدونم مشکل از کجاست
                              برنامهاینجوره که اول بلوک 1 رو میخونه تو رم میکرو
                              بعدش رو صفحه نشون میده
                              در هر حالت هگز و..... که زدم نشون بده اون توری که تو کامپیوتر نشون مده نشون نمیده
                              چه کاری باید بکنم

                              دیدگاه

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