اطلاعیه

Collapse
No announcement yet.

مشکل با UART

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

    مشکل با UART

    هنگامی که از UART سخت افزاری استفاده می کنیم زمان بندی های میکرو مثل refresh سون سگمنت ها به هم میریزد کسی میدونه چرا؟ :angry:

    #2
    پاسخ : مشکل با UART

    uart سخت افزاری همون پورت rs232 خودمونه ؟!؟! من اینکارو کردم مشکلی پیش نیومد . اگه با codevision نوشتید کدتون رو بزارید شاید بتونم کمکتون کنم.
    ولی همینجوری بگم که واسه خودم پیش اومده که وقتی از وقفه تایمر اتستفاده میکنم و از دستور delay هم استفاده میکنم یخورده تایمره قاتی میکنه شاید این داره واسه شما هم پیش میاد.

    دیدگاه


      #3
      پاسخ : مشکل با UART

      آیا راه حلی وجود داره که بتونم چند پورت مستقل دیگه (غیر از Rx , Tx) را در ATMega16 جوری برنامه ریزی کنم که اون ها هم مثل UART سخت افزاری کار بکنه یعنی احتمالاً باید دنبال یک لایبرری یا هدر مخصوص این کار بگردم.مشکل من از اونجایی شروع می شه که مجبورم چند ماژول مختلف (که هیچ کدوم قابل برنامه ریزی نیستن تا بشه از همه اشون رو یک پورت UART استفاده کرد و دریافت و ارسال اطلاعات را در اون ها به ترتیب برنامه ریزی کرد) رو به یک AVR که فقط یک UART داره وصل کنم (حتی اگه از مدل های دارای 2 عدد UART هم استفاده کنم هم برام کافی نیست و از طرف دیگه نمی خوام دو تا یا بیشتر AVR تو مدار داشته باشم، فقط یک دونه!).
      مشتاق همکاری با افراد پرتلاش و باهوش هستم.
      Saed.Ahmadi@Gmail.com

      دیدگاه


        #4
        پاسخ : مشکل با UART

        نوشته اصلی توسط سعید احمدی
        آیا راه حلی وجود داره که بتونم چند پورت مستقل دیگه (غیر از Rx , Tx) را در ATMega16 جوری برنامه ریزی کنم که اون ها هم مثل UART سخت افزاری کار بکنه یعنی احتمالاً باید دنبال یک لایبرری یا هدر مخصوص این کار بگردم.مشکل من از اونجایی شروع می شه که مجبورم چند ماژول مختلف (که هیچ کدوم قابل برنامه ریزی نیستن تا بشه از همه اشون رو یک پورت UART استفاده کرد و دریافت و ارسال اطلاعات را در اون ها به ترتیب برنامه ریزی کرد) رو به یک AVR که فقط یک UART داره وصل کنم (حتی اگه از مدل های دارای 2 عدد UART هم استفاده کنم هم برام کافی نیست و از طرف دیگه نمی خوام دو تا یا بیشتر AVR تو مدار داشته باشم، فقط یک دونه!).
        یک جورهایی منم تو غم شما شریکم. فکر کنم اگه سنکرون کار کنید بتونید این کار رو انجام بدیدو چون به نظرم تو مد آسنکرون چون از لحاظ ظمانبندی باید دقت بالا داشته باشید مشکل بشه تازه فکر کنم که 2 تا تایمر بیشتر نداشته باشید. اما توی آسنکرون میتونید کنترل کنید که هروقت دیتا آماده ارسال شد کلاک بزنید و یا کلاک بگیرید بعد بخونید. البته اینجوری هم باز یکم محدودیت دارید . 2 تا وقفه حساس به لبه بیشتر نداریم. اگر اشتباه نکرده باشم.

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

        دیدگاه


          #5
          پاسخ : مشکل با UART

          آره منظور همون RS232 هستش
          هنگامی که دستور زیر رو وارد میکنم رفرش میریزه به هم
          if PIND.0=1 then waitms 40
          if PIND.0=1 then
          increas c
          waitms 40
          end if
          و وقتی که برش میدارم درست میشه
          در ضمن از UART نرم افزاری نتونستم جواب بگیرم با این کدpen "comd.0,2400,8,n,1" for input as #1

          دیدگاه


            #6
            پاسخ : مشکل با UART


            فرض کنید چندتا ماژول با baud از پیش تعیین شده و غیره قابل تنظیم داریم که بدتر از اون قابل برنامه ریزی هم نیستن ( تا بشه مثلاً براشون معین کنیم که هر کدوم در چه زمانی روی یک باس مشترک از Rx و Tx استفاده کنند) و آسنکرون هم کار می کنند، کامپایلر مورد استفاده C هست و فقط باید از یک عدد AVR که تنها یک UART سخت افزاری داره استفاده کنیم. با توجه به این شرایط به احتمال 99% نمی شود همه اون ها روی یک باس مشترک باشند که بوسیله چند خط کنترلی هم نحوه و ترتیب جابجایی اطلاعات روی اونها کنترل بشه. پس باید از UART های جداگانه که بطور نرم افزاری ایجاد می شوند استفاده کرد.
            مشتاق همکاری با افراد پرتلاش و باهوش هستم.
            Saed.Ahmadi@Gmail.com

            دیدگاه


              #7
              پاسخ : مشکل با UART

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

              دیدگاه


                #8
                پاسخ : مشکل با UART

                نه با این راه مشکل ام حل نمیشه، ببین در اصل من یک ماژول GPS و یک GSM و RS-232 کامپیوتر و دو قطعه دیگر را باید همزمان به یک AVR وصل کنم در حالیکه مثلاً ماژول GPS با فرکانس 1Hz دائم اطلاعات خودش رو سند می کنه و همینطور بعضی از قطعه های دیگه هم همینطور هستند و اصلاً حالتی که بشه بر روی اونها ارسال یا دریافت را بوسیله یک اینتراپت کنترل کرد وجود نداره.
                مشتاق همکاری با افراد پرتلاش و باهوش هستم.
                Saed.Ahmadi@Gmail.com

                دیدگاه


                  #9
                  پاسخ : مشکل با UART

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

                  دیدگاه

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