اطلاعیه

Collapse
No announcement yet.

ارتباط سریال بین چند میکرو

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

    ارتباط سریال بین چند میکرو

    سلام دوستان سال نو را به همتون تبریک می گم

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

    به طوری که هر میکرو یک کلید دارد که با فشردن آن میکروی آخری که همان MASTER است متوجه شود

    که کلید کدام میکرو ها فشرده شده و آن را بر روی LCD نمایش دهد

    حالا به نظر شما بهترین روش برای ارتباط این میکروها چه روشی است؟

    ضمنا تعداد میکرو ها 4 عدد و نوع ان ATMEGA 32 است


    #2
    پاسخ : ارتباط سریال بین چند میکرو

    هر روزت نوروز باشه!
    راجع به این موضوع باها صحبت شده . تو انجمن سرچ کن حتما پیدا می کنی.
    ولی اگه فاصله میکروها کمه(یعنی کنار هم هستند) باید از I2C استفاده کنی. ولی اگه اینطوری نیست RS485 بهترین گزینه ست.

    دیدگاه


      #3
      پاسخ : ارتباط سریال بین چند میکرو

      سلام آقای مهندس جعفری
      سال نو را تبریک می گم

      در مورد دو دستور زیر هر چی می دونید بگید

      حقیقثش رفتم تو HELP ولی از اونجا که زبانم تعریفی نداره چیز زیادی دستگیرم نشد

      در ضمن بین هر میکرو حدود 4 متر فاصله هست

      SERIN var , bts , port , pin, baud , parity , dbits , sbits



      SEROUT var , bts , port , pin, baud , parity , dbits , sbits


      ممنون ارز کمکتون

      دیدگاه


        #4
        پاسخ : ارتباط سریال بین چند میکرو

        اگه می خوای تو این تاپیک راجع به serin , serout صحبت کنی عنوانشو عوض کن.
        Help خیلی ساده توضیح داده. روش های مختلفی برای ارسال سریال وجود داره.
        برای ارتباط سریال یا باید یه کلاک مرجع رو بین دو وسیله در نظر گرفت که دیتا بر اساس اون شناخته بشن و یا اینکه مشخصات بسته ارسالی رو برای دو طرف یکسان انتخاب کنیم.
        توسط این دو دستور هم مشخص میشه که دیتای انتقالی توسط چه متغیری ، با چند بایت ، توسط کدوم پورت و پایه ، با چه نرخ ارسالی ، با چگونگی وضعیت بیت توازن ، تعداد بیت ها در هر پک و تعداد بیت Stop باید منتقل بشه.

        دیدگاه


          #5
          پاسخ : ارتباط سریال بین چند میکرو

          آقای مهندس خیلی ممنون از اطلاعاتی که دادین

          فقط یک چیز برام نا مفهومه

          من می خوام تو این ارتباط یک عدد 16 بیتی را به یک میکروی دیگه ارسال کنم

          حالا فرض کنید این عدد 0000000000000001 باشه

          این رو باید تو ی var قرار بدم

          یا ......؟


          ممنون از کمکتون

          دیدگاه


            #6
            پاسخ : ارتباط سریال بین چند میکرو

            lالبته من تا حالا عدد رو با این روش ارسال نکردم. ولی منطقش نباید فرق کنه. یک متغیر از نوع Word تعریف کن. اون رو مقدار دهی کن و با این دستور بفرست

            دیدگاه


              #7
              پاسخ : ارتباط سریال بین چند میکرو

              سلام

              یعنی کاری که این پاین انجام دادم درست ؟

              A(2) = &H01


              Serout A(2) , 0 , D , 1 , 9600 , 0 , 16 , 1

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

              ممنون

              دیدگاه


                #8
                پاسخ : ارتباط سریال بین چند میکرو

                من با این دستور رشته رو انتقال دادم. عددی رو که تو A(2) ریختی یک عدد هشت بیتیه نه 16 بیتی.
                دقیقا بگو برای چه کاری می خوای ارتباط سریال رو استفاده کنی شاید راه های دیگه ای هم وحجود داشته باشه.

                دیدگاه


                  #9
                  پاسخ : ارتباط سریال بین چند میکرو

                  می خوام چند میکرو (حدود 20 تا ) را با ارتباط سریال به هم وصل کنم

                  به طوری که هر میکرو یک کلید دارد که با فشردن آن میکروی آخری که همان MASTER است متوجه شود

                  که کلید کدام میکرو ها فشرده شده و آن را بر روی LCD نمایش دهد

                  حالا من می خوام به هر میکرو یک عدد نسبت بدم مثلا میکرو اولی را برابر 0000000000000001 قرار میدم اگر کلید مربوط به آن فشرده بشه

                  حا لا اگر کلید آن فشار داده نشود عدد 0000000000000000 را به میکرو بغلی پاس بده

                  و اگر کلید میکروی دومی فشار داده بشه عدد 0000000000000010 را به عددی که میکرو اول پاس داده اضافه می کنه در غیر این صورت

                  همون عددی را که از میکرو اول اومده به سومی پاس میده و.................

                  نمی دونم تونستم منظورمو برسونم یا نه ؟؟؟؟؟؟؟؟

                  دیدگاه


                    #10
                    پاسخ : ارتباط سریال بین چند میکرو

                    به نظر من( البته فقط نظر منه) بهترین راه استفاده از RS485 هست.
                    برای این کار به هر میکرو یه DIP SWITCH هشت تایی وصل کن. بعد به هر کدوم یه کدی اختصاص میدی( این کار برای اینه که لازم نباشه برای هر میکرو یه برنامه جدا بنویسی). هر وقت کلید مربوط به یک میکرو فشرده شد برنامه میره کد مربوط به میکرو رو از اون پورتی که DIP SW بهش وصل شده می خونه. پس این کد می تونه یک عدد بین 1 تا 20 باشه . یعنی هشت بیتیه. حالا این عدد رو با استفاده از دستور Print بفرست به باس. همه میکرو ها این عدد رو دریافت می کنن . ولی فقط میکروی مستر قابلیت تحلیل عدد دریافتی رو داره. حالا میکرو این عدد رو توسط دستور Input می گیره( یا تو حالت پیشرفته تر با استفاده از وقفه سریال) و متوجه میشه کدوم کلید فشرده شده.
                    برای RS485 هم کافیه تو انجمن سرچ کنی. فقط اینو بگم که کافیه سر راه هر میکرو یه MAX485 بذاری. این طوری هم نویز به شدت کم میشه و هم این که مسافت رو می تونی یک کیلومتر هم افزایش بدی.

                    دیدگاه


                      #11
                      پاسخ : ارتباط سریال بین چند میکرو

                      بازم ممنون از کمکتون

                      حقیقتش در مورد پروژه زیاد نمی تونم توضیح بدم

                      چون به من هم دقیقا نگفتن برای چی هست ؟

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

                      و کمترین قطعات استفاده بشه

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

                      به خاطر همون من می خوام اطلاعات رو با دستور serin و serout ارسال و دریافت کنم

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

                      ممنون

                      دیدگاه


                        #12
                        پاسخ : ارتباط سریال بین چند میکرو

                        به نظر من برای انجام هر کاری یه سری ملزومات نیازه . همیشه کمترین هزینه بهترین راه نیست
                        برای هر پکیج یه میکرو و یه max485 احتیاج داری. قیمت max485 حدود 700-800 تومنه.
                        اگه هزینه اینقدر مهمه و قرار فقط مشخص بشه کدوم کلید فشرده شده اصلا لازمه که میکرو استفاده بشه؟ 20 تا کلیده دیگه

                        دیدگاه


                          #13
                          پاسخ : ارتباط سریال بین چند میکرو

                          من هم مثل شما این سوال ها برام پیش اومد

                          ظاهرا از تمام پایه ها قرار استفاده بشه و این کاری که من

                          میخوام انجام بدم فقط یه بخش کوچک اما مهم اونه

                          که به چنتا از همکارام هم داده شده

                          لطفا هر چی راجع اون دو دستور می دونید بگید

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




                          $regfile "M32DEF.DAT"
                          $crystal = 8000000

                          '*************************

                          Config Portd.0 = Input
                          Config Portd.1 = Output

                          Config Portb.3 = Input

                          '*************************
                          Dim S As String * 16
                          Dim R As String * 16
                          Dim S1 As Word
                          Dim S2 As Word
                          S1 = 0000000000000001
                          S2 = 0000000000000000
                          Main:

                          Do

                          If Pinb.3 = 0 Then

                          S = Str(s1)
                          Gosub L1

                          Else

                          S = Str(s2)
                          Gosub L1

                          End If

                          Wait 1


                          Loop

                          L1:


                          Serout S , 0 , D , 1 , 9600 , 0 , 16 , 1

                          Return
                          راستی از لحاظ سخت افزاری من کریستال وصل نکردم

                          و برای تغذیه فقط از پایه های 10 و11 استفاده کردم

                          به نظر شما مشکل سخت افزار یا نرم افزار ؟؟؟؟؟؟؟

                          ممنون

                          دیدگاه


                            #14
                            پاسخ : ارتباط سریال بین چند میکرو

                            1-میکرو در حالت پیشفرض از اسیلاتور RC داخلی یک مگا هرتز استفاده می کنه. یا فیوزبیت مربوط به اون رو روی هشت مگا تنظیم کن یا اینکه تو برنامه اون رو یک مگا کن.
                            2- برای شروع از مثال موجود تو Sample نرم افزار امتحان کن.

                            دیدگاه


                              #15
                              پاسخ : ارتباط سریال بین چند میکرو

                              سلام برنامه ای که تو sample بود هم جواب نداد :angry: :angry:

                              دیدگاه

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