اطلاعیه

Collapse
No announcement yet.

چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

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

    چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

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

    #2
    پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

    سلام دوست عزیز.
    میتونی از این دستور استفاده کنی:
    Open "COMb.4:2400,8,n,1,inverted" For Output As #2


    استفاده از دستور Open به این شکل، برای تعریف پورت سریال نرم افزاریه. یعنی اینکه رویه پایه شماره 4 از پروت B با نرخ 2400، به صورت 8 بیت، بدون Parity و 1 بیت برای Stop به صورت خروجی یک پورت سریال رو شبیه سازی میکنه که به اون شماره یا عدد 2 رو اختصاص می ده. لفظ Inverted برای مشخص شدن سطوح ولتاژ برای بیان بیتهاست و همچنین در زمان Idle وضعیت پایه مشخص می شه.

    دیدگاه


      #3
      پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

      این تنظیم ها قابل تغییر هستند؟ یعنی میشه نوشت
      Open "COMb.4:19200,8,n,1,inverted" For Output As #2
      و اینکه آیا میکانیزم عملکرد این دستور رو میدونید تا بتونم به codevision تبدیلش کنم ؟

      دیدگاه


        #4
        پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

        از پروتکل RS485 استفاده کنید

        دیدگاه


          #5
          پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

          نوشته اصلی توسط ardavanzzz
          . یعنی اینکه رویه پایه شماره 4 از پروت B با نرخ 2400،
          اگه کد مورد استفاده codevision هم در این مورد دارید لطف میکنید بفرمایید ؟
          فقط با همون بادریت جوابمیده یا میشه تنظیمش کرد ؟
          همه atmega ها دارند یا بی تعداد خاصیه ؟
          میشه برای پورت های دیگه هم تعریف کرد ؟
          فرقی هم با پورت سریال معمول داره یا به همون صورته ؟
          شرمنده سوالام زیاد شد .
          در میان مردم پی دستی هستم پی گرمای نگاهی حتی در پس این همه چشم سردی غربت انسان پیداست
          در پس، این همه نور این همه رنگ چه کسی میبیند اشک آن کودک را چشم آن مردی را
          که شبانگاه، سر افکنده ز شرم و به یاد طفل اش بی صدا میگرید، می شکند
          آری این شهر من است این همان شهر شما است در پی چشمی باش که نگاه اش آبی است و پر از نم نم باران بهار

          دیدگاه


            #6
            پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

            سلام منم این مشکل رو دارم که با codevision کار میکنم آقای حمیدی شما فرمودید که از rs-485 استفاده بشه خوب چند ماژول رو وصل کردیم بعدش دستور رو که روی باس میزاریم ماله کدوم ماژوله؟؟؟ oo: هیچ کنترلی وجود نداره روی باس.

            من یه بار با رله سوئیچ می کردم یا از سوئیچ های آنالوگ باید استفاده کرد من خودم هم با این مسئله درگیرم :cry:

            دیدگاه


              #7
              پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

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

              دیدگاه


                #8
                پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

                من این کار رو با سخت افزار انجام دادم و 10 تا پورت درست کردم
                به این ترتیب که از 3 تا ماکس 4 به 1 استفاده کردم و به گیرندم وصل کردم
                10 تا فرستنده داشتم یه گیرنده :mrgreen: که اطلاعات هر کدوم رو خواستم انتخاب میکردم و میخوندمشون
                واسه فرستنده هم اومدم شبکه کردم و با یه دیکدر به اونی که میخواستم اعلام میکردم و اونم یوزارتش رو فعال میکرد و اطلاعات رو میگرفت
                به نظرم دنبال سخت افزاری باشی بهتره تا نرم افزاری
                دنبال کار میگردم تو تهران کسی سراغ داره

                دیدگاه


                  #9
                  پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

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

                  دیدگاه


                    #10
                    پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

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

                    اما مشکل همچنان هست و حل نشده که چند پورت روی codevision داشته باشیم وقتی توی bascom شده پس توی codevision حتماً میشه :nerd:

                    اگه بشه کد رو از bascom تبدیل به C کنیم حله لمل من bascom خیلی کم بلدم :cry: و تسلطم روی codevision است کمک کنید لطفاً oo:

                    دیدگاه


                      #11
                      پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

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

                      دیدگاه


                        #12
                        پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

                        با درود فراوان و سپاس از پاسختون

                        از همراهان دیگر که بر روی نرم افزار bascom تسلط بیشتری دارند انتظاز کمک بیشتری هست تا کد bascom درباره افزودن پورت rs232 به صورت نرم افزاری را به codevision برگردانند :nerd: :nerd:

                        کمک
                        کمک :eek:

                        دیدگاه


                          #13
                          پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

                          احتمالاً باید جواب را پیدا کرده باشم، ولی یک مقداری توضیحاتش بیش از اندازه است و باید روش کار بشه. این کد رو خود Atmel ظاهراً ساپورت کرده و آدرسش این هست:

                          http://www.atmel.com/dyn/resources/prod_documents/doc0941.pdf

                          http://www.atmel.com/dyn/resources/prod_documents/avr304.zip


                          ظاهراً هرچی که لازم باشه توش نوشته شده ولی فکر می کنم بهتره هرکس که خواست با هاش کار کنه، تجربیاتش رو برای استفاده سریع تر دیگران در اینجا قرار بده.
                          مشتاق همکاری با افراد پرتلاش و باهوش هستم.
                          Saed.Ahmadi@Gmail.com

                          دیدگاه


                            #14
                            پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

                            من روی فایل هایی که قرار دادید یه بررسی انجام می دم و حتماً نتیجه رو میزارم اینجا شما هم بحث ادامه بده و نکات رو بزار اینجا باهم درستش می کنیم ان شاا.. :nerd:

                            دیدگاه


                              #15
                              پاسخ : چگونه در یک AVR با یک پورت UART، چند پورت UART دیگر بطور نرم افزاری ایجاد کنم

                              توی بس کام هم من امتحان کردم نشد البته rs232 میشه سمپل بس کام رو هم بدین ممنون میشم من توی انجمن هم گشتم نبود
                              معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

                              دیدگاه

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