اطلاعیه

Collapse
No announcement yet.

ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

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

    ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

    سلام به همه
    من مدار ارتباط دو تا میکرو با rs-485 را عملی بستم
    میکروی master عدد 10 را میفرسته به Slave
    slave هم عدد را بعلاوه یک میکنه و میفرسته به master همین

    ولی تقریبا توی 10 بار راه اندازی فقط یکبار این عملیات با موفقیت انجام میشه oo:
    و بقیه موارد روی lcd هیچی نشون نمیده :angry:
    میکرو PIC16F877 هست
    فاصله حدود 40 سانتی متره

    چرا فقط بعضی وقت ها کار میکنه ؟؟ :cry:
    کسی میدونه مشکل از کجایه؟؟ تنظیمات خاصی روی خط RS-485 نداره؟؟
    من نبودم آنکه از من در خیالت ساختی ...
    پس تو هم چون دیگران چندان مرا نشناختی

    #2
    پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

    راستی یادم رفت بگم
    با سرعت 2400 و 1200 آزمایش کردم
    در هر دو حالت همین مشکل بود

    سیم هاش خازنی چیزی نمیخواد ؟...
    من نبودم آنکه از من در خیالت ساختی ...
    پس تو هم چون دیگران چندان مرا نشناختی

    دیدگاه


      #3
      پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

      با سلام
      ابتدا rs232 را مستقیما بین دو میکرو وصل کنید و تست کنید.( rx اولی به tx دومی و tx اولی به rx دومی )
      اگر با این وضعیت مشکلی داشته باشید، برنامه اشکال دارد.
      در غیر اینصورت در مدارات rs485 , فعال سازی آنها اشکال دارید.
      با سپاس
      گشتی در لاله زار
      http://www.eca.ir/forum2/index.php?topic=76138.0

      http://www.eca.ir/forum2/index.php?topic=76141

      دیدگاه


        #4
        پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

        در یک طرف باید مقاومت های push-pull و pull-up رو حتما استفاده کنین. ضمنا دو طرف هم باید حتما Terminate بشن.

        دیدگاه


          #5
          پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

          نوشته اصلی توسط Solsal
          با سلام
          ابتدا rs232 را مستقیما بین دو میکرو وصل کنید و تست کنید.( rx اولی به tx دومی و tx اولی به rx دومی )
          اگر با این وضعیت مشکلی داشته باشید، برنامه اشکال دارد.
          در غیر اینصورت در مدارات rs485 , فعال سازی آنها اشکال دارید.
          با سپاس
          برای اتصال به روش RS-232 باید آی سی Max232 بگیرم؟؟
          اگه منظورتون اتصال Usart باشه میکروکنترلرم پشتیبانی میکنه
          جالبه من این برنامه را از روی کتاب نوشتم ولی شانسی کار میکنه :eek:
          در ضمن اصلا از دستورات Usart استفاده نکرده
          از SERout و SERin استفاده کرده (زبان بیسیک)

          من نبودم آنکه از من در خیالت ساختی ...
          پس تو هم چون دیگران چندان مرا نشناختی

          دیدگاه


            #6
            پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

            نوشته اصلی توسط رضا آقازاده
            در یک طرف باید مقاومت های push-pull و pull-up رو حتما استفاده کنین. ضمنا دو طرف هم باید حتما Terminate بشن.
            خیلی ممنون از آقای Sosal و آقازاده :applause:
            من از این مدار استفاده کردم
            اون مقاوت ها را یکبار گذاشتم یکبار برداشتم هیچ فرقی نکرد :angry:


            حالا یک سوال دیگه
            ارتباط با ADM485 به یوزارت ربط داره یا نه؟؟
            یعنی دستورات ارسال و دریافت اطلاعات باید همون دستورات یوزارت باشه؟؟
            پیشاپیش ممنون از توضیحاتتون
            من نبودم آنکه از من در خیالت ساختی ...
            پس تو هم چون دیگران چندان مرا نشناختی

            دیدگاه


              #7
              پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

              فکر میکنم بهتر باشه سورس برنامه تون رو هم بذارین. ممکنه مشکل از ارسال و دریافت و جهت دهی آی سی تون باشه.

              دیدگاه


                #8
                پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

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



                اون سوالم همچنان باقی است
                این ارتباط به یوزارت مربوط میشه یا نه؟؟ oo:
                من نبودم آنکه از من در خیالت ساختی ...
                پس تو هم چون دیگران چندان مرا نشناختی

                دیدگاه


                  #9
                  پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

                  میکروی SLAVE

                  B1=B0+1
                  من نبودم آنکه از من در خیالت ساختی ...
                  پس تو هم چون دیگران چندان مرا نشناختی

                  دیدگاه


                    #10
                    پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

                    عیب یابی برنامه ای که یکی دیگه نوشته خیلی وقت گیره
                    در نظر اول بنظر میاد درست میگین. ولی شاید این دفعه خیلی درست نباشه! :mrgreen:

                    یه پیشنهاد.
                    در برنامه ها میتونین این تیکه هایی رو که اینجا گذاشتم عوض کنین؟

                    کد:
                    MASTER:
                    
                    MAIN:
                    HIGH MT
                    SEROUT SO,....
                    SEROUT SO,....
                    PAUSE 1
                    LOW MT
                    LOOP:
                    SERIN ...
                    ------
                    
                    SLAVE:
                    
                    LOW PT
                    SERIN SI,...


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

                    دیدگاه


                      #11
                      پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

                      نوشته اصلی توسط رضا آقازاده


                      در نظر اول بنظر میاد درست میگین. ولی شاید این دفعه خیلی درست نباشه! :mrgreen:
                      من اول برنامه رو کپی کردم، وقتی اونجا گذاشتم همه چیزش به هم ریخت
                      بنابر این تبدیل به عکس کردم تا ملموس تر باشه

                      در رابطه با این مشکل هم حق با شماست
                      فکر میکنم به خاطر تنظیم نبودن زمان باشه چون وقتی یه کم برنامه دیگه بهش اضافه میکنم
                      حتی تو 10 بار راه اندازی 1 بار هم کار نمیکنه وبه نوعی هنگ میکنه

                      خوب راه حلش چیه؟؟
                      ارتباط Usart وقفه داره !! میشه یه جوری تبدیل به rs-485 کرد؟؟ :read:
                      من نبودم آنکه از من در خیالت ساختی ...
                      پس تو هم چون دیگران چندان مرا نشناختی

                      دیدگاه


                        #12
                        پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

                        چرا که نه. فقط برای راحتی بیشتر منطق باید اینجوری باشه:
                        بطور آغازین هر دو در حالت دریافت هستن. برای ارسال یک بایت بعد از ست کردن حالت خروجی اقدام به ارسال میکنیم. در روال وقفه ای که بعد از ارسال آخرین بیت فریم سریال فعال میشه؛ سیستم رو به حالت "خوندن" برمیگردونیم. و در وقفه ای که در هنگام خالی شدن رجیستر ارسال اطلاعات فعال میشه بایت های بعدی رو ارسال میکنیم.

                        در حالت دریافت؛ اطلاعات رو دریافت میکنیم و پس از یک تاخیر مثلا 1 میلی ثانیه بعد از دریافت کلیه اطلاعات؛ شروع به ارسال میکنیم.

                        دیدگاه


                          #13
                          پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

                          واقعا ممنون جناب آقا زاده
                          ماشالله سرعت پاسخگویی شما از سرعت اینترنت من بیشتره
                          امشب تست میکنم
                          فقط یه مساله دیگه
                          این برای 3 تا slave مشکلی نداره که ؟
                          من نبودم آنکه از من در خیالت ساختی ...
                          پس تو هم چون دیگران چندان مرا نشناختی

                          دیدگاه


                            #14
                            پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

                            برای بیش از دو تا میکرو باید یا منطقمستر اسلیو رو پیش ببرین یا توکن رو. ولی بصورت عام تا 30 تاش هیچ مشکلی نیست. بیش از این باید repeater بذارین. چون این آی سی فقط میتونه 32 تا تجهیز رو بهم ربط بده. یکی هم مستر و دیگری repeater.

                            دیدگاه


                              #15
                              پاسخ : ADM-485 فقط بعضی وقت ها کار میکنه ؟؟

                              سلام
                              usart اونقدر ها هم که فکر میکردم آسون نبود
                              هیچ جزوه بدرد بخوری هم ندارم :angry: ولی دارم روش کار میکنم
                              من اول ارتباط را با یوزارت انجام میدم (بین 2تا میکرو) وقتی انجام شد سراغ 485 میرم

                              سوال:
                              تو این پروژه باید ارتباط همزمان استفاده کنم یا غیر همزمان؟ :read:
                              ارسال 8 بیتی یا 9 بیتی استفاده کنم؟؟
                              من نبودم آنکه از من در خیالت ساختی ...
                              پس تو هم چون دیگران چندان مرا نشناختی

                              دیدگاه

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