اطلاعیه

Collapse
No announcement yet.

*-* مشکل ریست شدن میکرو در ارتباط سریال

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

    *-* مشکل ریست شدن میکرو در ارتباط سریال

    سلام دوستان!
    یه مشکل عجیب واسم پیش اومده که توجیهی واسش ندارم(کم تجربگیه دیگه :redface
    مشکلم اینه:
    میکرو رو به یه LCD وصل کردم و تو برنامه دارم از ارتباط سریال با باد 9600 کریستال 11.0592مگ، حالت8N1 استفاده میکنم. حالا مشکل اینجاست که اول برنامه ارتباط سریال رو اصلا کانفیگ نمیکنم اما پایه RXD میکرو وصله و بهش اطلاعاتی رو توسط ترمینال کدویژن(پورتCOM) میدم، وقتی سرعت دادن اطلاعات به میکرو بالا میره(مثلا 20بیت اطلاعات رو تو زمان خیلی کمی به میکرو میدم) میکرو ریست میشه! با اینکه من هنوز ارتباط سریال رو فعال نکردم!! :eek:
    از اینجا که بگذریم، میریم قسمتی از برنامه که ارتباط سریال فعال میشه در مود UCSRB=0x10; // USART Receiver: On اما اینجا هم همون مشکل هست: یعنی وقتی که اطلاعات رو خیلی سریع به میکرو میدم،میکرو ریست میشه :arrow: اما وقتی کاراکتر-کاراکتر(با فاصله زمانی) میفرستم مشکلی نداره، اما مشکل من اینجاست که در اصل من میخوام اطلاعات رو از ماجولGPS به میکرو بدم که این ماجول در هر ثانیه اطلاعات زیادی رو سمت میکرو سرازیر میکنه و میکرو بلافاصله ریست میشه، م[glow=red,2,300]شکل و راه حل چیه؟
    با تشکر قبلی..[/glow].
    اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

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

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

    دیدگاه


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

      نوشته اصلی توسط رضا آقازاده
      نمیدونم چکار داری میکنی چون سورس برنامه ات رو نذاشتی و غیر از اون هم نمیدونم که داخل بسکام چه اتفاقی میفته. اما چند تا مسئله. ممکنه با مقدار دهی رجیستر ها وقفه رو فعال کرده باشی؟ یا بافر ورودی اطلاعاتت پر بشه؟ بهر حال با بودن سورس برنامه شاید بشه کمکی کرد.
      آهان،ممنون اما گفتم شاید مشکل رایجی باشه و راه حل مشخصی داشته باشه اما ظاهرا که اینطور نیست :biggrin:

      سورس کامل که خیلی طولانیه(برنامه چندین قسمت داره، به بیان جناب کدویژن: 1608 line(s) compiled :eek
      اما نه از وقفه تو برنامه استفاده نمیشه
      اما 1-تا قبل از اینکه از usart استفاده کنم، هیچ مشکلی نبود و میکرو اصلا ریست نمیشد. 2- وقتی اطلاعات با سرعت کم به میکرو ارسال میشه بازم مشکل رسیت نیست.
      با این اطلاعات میشه راه حل یافت یا بازم سورس نیازه؟(آخه تو سورس هم کار خاصی نکردم،خیلی ساده دارم اطلاعات رو از RX میکرو میگیرم و روی LCD N96 نشون میدم. این کد مربوط به این قسمت هستش:
      کد:
       for(i=1;i<=50;i++)
        {a=getchar();
        lcd_putchar(a,RED ,0,BLACK);}
      اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

      دیدگاه


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

        من نمیدونم چرا تو پست قبلی خیال کردم با بسکام کار میکنین؟؟!!
        البته حالا هم فرقی نمیکنه! چون واقعا عقل من هم به چیزی قد نمیده. شرمنده.
        البته باز هم نمیدونم!! شاید این چیزی که میگم هم بی ربط باشه ولی یکی دو مورد قدیما به مشکلی برخوردم که مجبور شدم سورس تولیدی توسط ویزارد کد ویژن رو برای دریافت اطلاعات سریال به کل عوض کنم. شما بیا یک بافر حلقوی بگیر و اطلاعات رو در روال وقفه داخل اون بافر بذار. بعد هم با getchar از اون بافر بردار ببین مشکلت حل میشه؟
        خودم میدونم جواب چرتیه. اما بارها این برام پیش اومده که مشکل چرت با جواب چرت حل شده!!!
        خودمم نمیدونم چرا.

        دیدگاه


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

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

          دیدگاه


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

            نوشته اصلی توسط رضا آقازاده
            من نمیدونم چرا تو پست قبلی خیال کردم با بسکام کار میکنین؟؟!!
            البته حالا هم فرقی نمیکنه! چون واقعا عقل من هم به چیزی قد نمیده. شرمنده.
            البته باز هم نمیدونم!! شاید این چیزی که میگم هم بی ربط باشه ولی یکی دو مورد قدیما به مشکلی برخوردم که مجبور شدم سورس تولیدی توسط ویزارد کد ویژن رو برای دریافت اطلاعات سریال به کل عوض کنم. شما بیا یک بافر حلقوی بگیر و اطلاعات رو در روال وقفه داخل اون بافر بذار. بعد هم با getchar از اون بافر بردار ببین مشکلت حل میشه؟
            خودم میدونم جواب چرتیه. اما بارها این برام پیش اومده که مشکل چرت با جواب چرت حل شده!!!
            خودمم نمیدونم چرا.
            این حدستونم اشتباه بود :biggrin: من از ویزارد هم استفاده نکردم و تمام کدها رو خودم نوشتم(اما صحتشون رو با کدویزارد چک کردم)
            بافر حلقوی یعنی چی؟ :eek: متوجه نشدم منظورتونو؟؟
            ولی این جملتونو قبول دارما!
            بارها این برام پیش اومده که مشکل چرت با جواب چرت حل شده!!!
            البته سوء تفاهم نشه، منظورم جواب شما نبودا!
            اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

            دیدگاه


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

              نوشته اصلی توسط mojalan
              سلام. پیشنهاد من اینه که به جای اینکه به نوع ارتباط سریالتون شک کنید با توجه به نوع مشکلتون اول ارتباط سخت افزاریتون رو چک کنید و اگه روی برد برد مدار بسته شده جای آی سی یا برد رو عوض کنید
              راستی میکروت چی هست؟ یه وقت واچ داگت فعال نباشه (که بدجوری آدمو سرکار میذاره)

              چک کردم، سخت افزار به نظرم درسته، آخه میگم اینطور نیست که کلا جواب نده، وقتی کاراکترها خیلی سریع به میکرو ارسال میشن(چه از پورت کام و چه از ماجول) این مشکل پیش میاد و میکرو ریست میشه
              اومدم و فرکانس رو عوض کردم، یعنی گذاشتم رو 8مگ داخلی،مشکل ریست شدن میکرو حل شد، اما حالا اطلاعات نامفهومن(چرت و پرت میاد رو LCD) این مشکل احتمالا نرم افزاری باشه،هنوز چک نکردم.
              راستی من وقتی از کریستال 11.0592 مگ استفاده میکردم، واسش خازن 22pf نذاشته بودم، اما خازن های داخلی رو فعال کرده بودم(CKOPT) احتمال داره ریست شدن میکرو واسه این بوده باشه؟!! :eek:
              ممنون...
              اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

              دیدگاه


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

                ولله من نمیدونم اون خازن ها رو برای خوشگلی میذارن یا واقعا کاری میکنه؟ :eek: اما معمولا به اطلاعات نویسنده دیتاشیت وفادارم و تا بحال هم مشکل خاصی پیش نیومده.

                دیدگاه


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

                  تیکه ننداز دیگه آقا رضا! :biggrin:
                  مشکل حل شد:
                  من CKOPT رو یک کرده بودم(فک کردم اینجوری خازن های داخلی فعال میشن!) اما یهو یادم اومد که نه! باید صفرش کنم تا فعال شد و اینگونه بود که مشکل حل شد
                  فعلا هم دارم برنامه رو مینویسم
                  ممنون از دوستان
                  یه سری هم به این بزنید:
                  http://www.eca.ir/forum2/index.php?topic=15492.msg287470#msg287470
                  ممنون...
                  اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

                  دیدگاه

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