اطلاعیه

Collapse
No announcement yet.

فرق I2C و I2C دو سیمه در کدویژن

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

    فرق I2C و I2C دو سیمه در کدویژن

    دوستان سلام.
    فرق این دو تا که توی ویزارد کد ویژن نشون داده میشه چیه؟

    علت سوالم اینه که میخواستم موس رو با دستور های I2C راه بندازم با I2C که نشد یا من نتونستم. نمیدونم حالا I2C دو سیمه فرقی میکنه؟

    بعد هم اینکه من به صورت سریال سنکرون تونستم با موس ارتباط برقرار کنم میخواستم بدونم نمیشه با توابعی که کدویژن داره با همون I2Cآ‌ این کار رو کرد؟
    موفق باشید.
    شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
    هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
    چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

    #2
    پاسخ : فرق I2C و I2C دو سیمه در کدویژن

    سلام محمد جان
    فرقی که ندارن،اینکه جدا شدن واسه اینه که یکیش برای بعضی از آی سی های خاص هست که توابع مخصوص براش نوشتن،او یکی برای حالت کلی هست
    برای ارتباط با موس از همون ارتباط سریال سنکرون استفاده کرد،با I2C نمیدونم؟؟!!!1
    آقای mpc دارن روی ارتباط با موس کار میکنند میتونی از ایشون کمک بگیری
    در دیر مغان آمد یارم قدحی در دست
    مست از می می خواران از نرگس مستش مست

    دیدگاه


      #3
      پاسخ : فرق I2C و I2C دو سیمه در کدویژن

      دوستان سلام.
      در مورد ارتباط با موس یه مشکلی که هست ارتباط سریال دو تا سیم داره یکی برای ارسال یکی برای دریافت، ولی پروتکل موس هر دو رو از یک سیم میفرسته.
      من به ذهنم رسید که مالتی پلکس کنم این کار امکان پذیره آیا روش کار همینه؟
      موفق باشید.
      شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
      هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
      چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

      دیدگاه


        #4
        پاسخ : فرق I2C و I2C دو سیمه در کدویژن

        توی I2C هم اطلاعات روی یک خط داده رفت و برگشت داره.
        پایه دوم برای کلاک هست و تائین گیرنده و فرستنده.

        محمد , یادته یه برنامه برای خواند و نوشتن روی eeprom ها با 8051 نوشته بودی.
        اساس کار همونه.
        همون استارت کاندیشن و اند کاندیشن و اینا احتمالا.
        یعنی i2c همینه دیگه.
        الهم عجل لولیک الفرج

        دیدگاه


          #5
          پاسخ : فرق I2C و I2C دو سیمه در کدویژن

          با سلام
          آقای نحوی بعضی از میکرو ها هشتن مانند مگا 8 که I2c رو ساپورت می کنند
          یعنی خودشون سخت افزار ها مورد نیاز رو دارند اما بعضی از میکرو ها مانند 2313 این امکانات رو ندارند i2c دوم برای این میکرو هاست این نوع با استفاده از برنامه نویسی هستش می تونین یک نوع شو در مثال های برنامه imagecraft پیدا کنین

          به عبارتی i2c اول سخت افزاری i2c دوم نرم افزاری هستش
          برای تشکر از امتیاز + استفاده کنید

          دیدگاه


            #6
            پاسخ : فرق I2C و I2C دو سیمه در کدویژن

            سلام محمد جان
            فکر نمی کنم با مالتی پلکس بشه،البته دقیقا نمی دونم میخوای چطوری این کار رو انجام بدی :rolleyes:
            من چندتا برنامه برات پیدا کردم یه نگاهی بهشون بنداز:
            http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/sdk22/Paint%20Program%20Webpage/mcu_mouse.c
            http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/jcc72/code.html
            http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/jew17/source.html
            در دیر مغان آمد یارم قدحی در دست
            مست از می می خواران از نرگس مستش مست

            دیدگاه


              #7
              پاسخ : فرق I2C و I2C دو سیمه در کدویژن

              سلام.
              ممنون محمد جان
              بذار من یه بار روند رو بگم چیکار کردیم شما هم در جریان باشید.

              اول موس رو به I2Cآ‌ وصل کردیم هر کاری کردیم جواب نداد. بعد اون رو به ارتباط سریال سنکرون وصل کردیم به این صورت که SDAآ‌ موس به پایه Rx میکرو وصل شده بود. در این حالت اطلاعاتی که از موس ارسال میشد رو میتونستیم دریافت کنیم. حالا مشکل اینه که موس اطلاعات ارسالی و دریافتی رو هر دو از روی همین سیم SDA انجام میده ولی ارتباط سریال دریافتش از Rx و ارسالش از Tx هست که این دو پایه متفاوت هستن. من به ذهنم رسید یه مالتی پلکسر بذاریم (برای اینکه پورت میکرو صدمه نبینه) زمانی که میخواهیم ارسال کنیم SDA رو به Tx متصل کنه و زمانی که می خواهیم دریافت کنیم خط رو به Rx متصل کنه.
              روند معمول برای این کار چیه؟
              البته به زمان C با اسمبلی میدونم چطوری هست.
              موفق باشید.
              شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
              هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
              چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

              دیدگاه


                #8
                پاسخ : فرق I2C و I2C دو سیمه در کدویژن

                سلام محمد جان
                شرمنده شما میخوای به صورت سخت افزاری این کار رو انجام بدی یا نرم افزاری؟؟؟
                در دیر مغان آمد یارم قدحی در دست
                مست از می می خواران از نرگس مستش مست

                دیدگاه


                  #9
                  پاسخ : فرق I2C و I2C دو سیمه در کدویژن

                  سلام.
                  من میخواستم سخت افزاری مالتی پلکسر بذارم ولی اگه نرم افزاری میشه که چه بهتر.
                  شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
                  هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
                  چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

                  دیدگاه


                    #10
                    پاسخ : فرق I2C و I2C دو سیمه در کدویژن

                    سلام
                    محمد جان یه نگاه به قسمت Host-to-Device Communication:
                    توی این صفحه بنداز:
                    http://www.computer-engineering.org/ps2protocol/
                    برای ارسال اطلاعات به مو باید اول این کارها انجام بشه:
                    Inhibit communication by pulling Clock low for at least 100 microseconds.
                    Apply "Request-to-send" by pulling Data low, then release Clock.
                    من فکر میکنم به صورت سخت افزاری خیلی مشکل بشه!
                    به نظرم بهتره کاملا نرم افزاری این کارو انجام بدی که آخرش احتمالا ختم میشه به نوشتن کامل پروتکل PS2 .ا :biggrin:
                    اما برای اینکه از از ارتباط سریال خود میکرو بتونی استفاده کنی؟!!!!!!!!
                    اجازه بده تا فردا من یه نگاهی بندازم بهش اگه نتیجه ای حاصل شد خبر میدم
                    در دیر مغان آمد یارم قدحی در دست
                    مست از می می خواران از نرگس مستش مست

                    دیدگاه


                      #11
                      پاسخ : فرق I2C و I2C دو سیمه در کدویژن

                      سلام محمد جان
                      من برات یکم جستجو کردم و دیدم که تنها راهش اینه که برنامه کل پروتکل رو بنویسی
                      برای همین برنامه یکی از اون لینکهایی که داده بودم رو برات دستکاری کردم و تست کردم جواب داد
                      برای تست از یک کریستال 16 مگ استفاده کن
                      DATA به PA.0 و CLOCK به PA.1
                      می تونی از اینجا دانلود کنی:
                      فایل های پیوست شده
                      در دیر مغان آمد یارم قدحی در دست
                      مست از می می خواران از نرگس مستش مست

                      دیدگاه


                        #12
                        پاسخ : فرق I2C و I2C دو سیمه در کدویژن

                        کسی میتونه این رو به بسکام تبدیل کنه؟
                        علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

                        دیدگاه


                          #13
                          پاسخ : فرق I2C و I2C دو سیمه در کدویژن

                          اگه بتونید سخت افزارش رو ه بزارید ممنون میشم
                          جواب گرفتید یا نه؟

                          راستی آخر نرم افزاری پیاده شد یا نرم افزاری؟

                          من بیسیک رو کامل بلد نیستم پیاده سازی کنم اما اگه بخواهید میتونم بخش هایی را که نمیتونم به بیسیک تبدیل کنم به فلوچارت (روش نوشتنشو) بگم

                          دیدگاه


                            #14
                            پاسخ : فرق I2C و I2C دو سیمه در کدویژن

                            نوشته اصلی توسط ehsan_akbari
                            اگه بتونید سخت افزارش رو ه بزارید ممنون میشم
                            جواب گرفتید یا نه؟

                            راستی آخر نرم افزاری پیاده شد یا نرم افزاری؟

                            من بیسیک رو کامل بلد نیستم پیاده سازی کنم اما اگه بخواهید میتونم بخش هایی را که نمیتونم به بیسیک تبدیل کنم به فلوچارت (روش نوشتنشو) بگم
                            ممنون میشم اگر این کار رو بکنید
                            علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

                            دیدگاه


                              #15
                              پاسخ : فرق I2C و I2C دو سیمه در کدویژن

                              با سلام به دوستان

                              من ابتدای برنامه را ترجمه کردم ولی در تابع main به مشکل بر خوردم
                              نگاه کنید:


                              ' Note: we used PS/2 mouse interaction code originally developed
                              ' for a Minesweeper Program by Chee Ming, Chaw and Elaine Siu for 476 in 2003
                              '
                              ' They developed the following functions in this source file:
                              ' mouse_send
                              ' mouse_read
                              ' poll_mouse
                              ' reset_mouse
                              ' The remaining functions we developed.
                              '******************************************** *******************************
                              $regfile = "M32def.dat"
                              config LCD = 16*2
                              Config Lcdpin = ' rooye porte C tanzim shavad


                              'timeout values for each task

                              const t1=100 'header beat timer
                              const t2=2000 'debug
                              const t3=200 'for sampling mouse


                              'I like these
                              'Const Begin = "{" *** dar basic lazem nist
                              'Const End = "}" *** dar basic lazem nist

                              Data_in Alias Pina.0 'Data Line From Mouse
                              Clk_in Alias Pina.1 'Clock line from mouse
                              Data_out Alias Porta.0 'Data line from mouse

                              Const Low = 0
                              Const High = 0

                              Const Mouse_speed = 2
                              Const Cursor_x_max = 127
                              Const Cursor_x_min = 0
                              Const Cursor_y_max = 99
                              Const Cursor_y_min = 0

                              Const Cmd_update_cursor = &HF1

                              Dim Data As Byte


                              Declare Sub Datalow()
                              Declare Sub Reldata()
                              Declare Sub Clklow()
                              Declare Sub Relclk()

                              Const Maxrow = 10
                              Const Maxcol = 15

                              ' the three task subroutines

                              Declare Sub Mouse_send(byval Data As Byte) ' Send 1 byte of data to mouse.
                              Declare Function Mouse_read()data As Byte 'Read 1 byte of data from mouse
                              Declare Sub Initialize() ' all the usual mcu stuff

                              'declare other functions

                              Declare Sub Update_cursor()
                              Declare Sub Update_tv()
                              Declare Sub Reset_mouse()
                              Declare Sub Poll_mouse()

                              Dim Time1 As Integer
                              Dim Time2 As Integer
                              Dim Time3 As Integer

                              Dim Str As String * 80
                              Dim Mouse_x As Byte
                              Dim Mouse_y As Byte
                              Dim Mouse_status As Byte
                              Dim Pre_mouse_status As Byte

                              Dim Cursor_x As Integer 'current cursor position
                              Dim Cursor_y As Integer

                              Dim Last_cursor_x As Byte
                              Dim Last_cursor_y As Byte

                              Const Tool_point = 0
                              Const Tool_line = 1
                              Const Tool_spray = 2
                              Const Tool_eraser = 3
                              Const Tool_fill = 4
                              Const Tool_rect = 5
                              Const Tool_oval = 6
                              Const Tool_clear = 7 'not an active tool!

                              Dim Button_dragging As Byte
                              Dim Button_up As Byte
                              Dim Button_down As Byte


                              ' ******* MAIN *******

                              Call Initialize()
                              'main task scheduler loop
                              Do
                              'Regularly poll mouse and send info to tv
                              If Time3 = 0 Then
                              Time3 = T3
                              Call Poll_mouse() 'pull mouse
                              Call Update_cursor() 'update cursor location
                              Call Update_tv() 'update screen
                              Waitms 15
                              End If
                              If Time1 = 0 Then 'heart beat LED
                              Time1 = T1 'reset timer
                              [glow=red,2,300]Portd.7 = Portd.7 And 1 [/glow] ' [glow=red,2,300]**> Jaygozine AND bit be bit mikhahad <** 'toggle heart beat LED[/glow]
                              End If

                              If Pind.6 = 0 Then Call Reset_mouse() 'Manually reset mouse
                              Loop
                              End

                              در این قسمت باید بیت 7 پورت D با یک And بیت به بیت شود. برای بیسیک رو بلد نیستم
                              در ضمن دوستانی که Codevision کار میکنن چک کنن که درست میگم یا نه.
                              راحت میشه خظ معادلش را در زبان سی پیدا کرد

                              دیدگاه

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