اطلاعیه

Collapse
No announcement yet.

مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

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

    مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

    سلام دوستان
    با یه مشکل برخورد کردم هر کاری میکنم حل نمیشه
    من میخوام یه سری عدد را از سنسور بگیرم و با میکرو pic16f877a و از طریق یه مبدل usb به RS232 به لپتابم که سیستم عاملش ویندوز 7 هست ارسال کنم اما اطلاعاتی که دریافت می کنم نامفهوم و یه سری شکل و علائم است. موارد زیر را هم در نظر گرفتم:
    1-BAUD را هم تو برنامم هم تو ویندوز و هم تو هایپر ترمینال یکسان انتخاب کردم و مقادیر 300، 2400،4800و9600 را هم امتحان کردم ولی فرقی نکرد.
    2-از برنامه نویسی PICBASIC استفاده کردم و از دستور DEBUG
    3-اتصال زمینم هم با اتصال به زمین مدارم یکی هست
    4-پایه شماره 2 پورت RS232 رو به میکرو (برای دریافت) با یه مقاومت 1 کیلو متصل کردم و پایه شماره 5 رو به زمین
    هر کاری میکنم اطلاعات درستی نمیگرم آیا ممکنه که نشه با مبدل انتقال اطلاعات داد ؟ کسی هست تا حالا تو لپ تاب هایی که پورت RS232 ندارند با مبدل تونسته باشه اطلاعات رو منتقل کنه؟
    خیلی گیر افتادم خیلی ممنون میشم یکی کمک کنه.

    #2
    پاسخ : مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

    سلام
    متاسفانه من با C18 کار می کنم و چنین کاری توسط مبدل انجام دادم
    پیشنهادم این هست که شماتیک مدارتون و برنامه رو اینجا پلود کنین

    دریافت کارکترهای نامفهوم بیانگر اتصال صحیح کامپیوتر با میکرو هست اما بادریت(یا به طور کلی برنامه میکرو) ، کمی ولتاژ بین فرستنده و گیرنده می تونه مشکل آفرین باشه(که در اکثر مواقع باز همون baudrate هست)

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

    دیدگاه


      #3
      پاسخ : مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

      ممنون از توجه شما
      کد برنامه رو در زیر میارم
      DEFINE OCS 4
      DEFINE DEBUG_REG PORTC
      DEFINE DEBUG_BIT 4
      DEFINE DEBUG_BAUD 9600
      define DEBUG_MODE 1
      B VAR byte
      B=10
      :MAIN
      DEBUG DEC B
      PAUSE 1000
      GOTO MAIN
      END

      دیدگاه


        #4
        پاسخ : مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

        سلام
        شرمنده من زیاد basic این میکروها رو بلد نیستم اما طبق سرچ هایی که کردم شما باید از دستور serout2 برای این منظور استفاده کنین که شیوه کار به این صورت هست

        serout2 portc.6, 16468, ["hello world", 10, 13]

        ابتدا پورت C پین 6 رو به عنوان خروجی تعریف کنین (همون TRIS)
        16468 یعنی بادریت 9600
        16572 یعنی بادریت 4800
        16780 یعنی بادریت 2400
        که می تونین جای عدد 16468 مقادیر بالا رو با توجه به توضیحات داده شده و سرعت دلخواه قرار بدین
        در دستور بالا عباتر Hello world به همراه کارکتر 10 و 13 که بیانگر ابتدای خط و کارکتر اینتر هستند به خروجی ارسال می شن

        خروجی رو با توجه به میکروتون می تونین از پین TX یا همون پین PORTC.6 بگرین.
        هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

        دیدگاه


          #5
          پاسخ : مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

          سلام
          یه نگاهی به فرکانس کاری میکرو بنداز
          برای یک نرخ داده مشخص مثلا 9600 نمی تونی با هر فرکانس کاری کار کنی -جون باعث خطا در ارسال ودریافت میشه.
          یا علی

          دیدگاه


            #6
            پاسخ : مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

            سلام
            یه سوال میکنم چون زیاد وارد نیستم ببخشید
            فرکانس کاری میکرو چیه ؟ همون عدد کریستال مورد استفاده هست ؟ اگر اینه مال من 4 مگاهرتز هست .از کجا بفهمم درسته یا خراب

            دیدگاه


              #7
              پاسخ : مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

              سلام
              فرکانس کاری میکرو در مد غیر از HS همیشه ضریب کسری از فرکانس هست که به صورت پیشفرض 1/4 فرکانس کریستال متصل به میکرو هست.
              شما اگر کریستالتون 4 مگاهرتز هست فرکانس کاری میکرو 1 مگاهرتز هست (سرعتی که میکرو باهاش دستورات رو اجرا می کنه) و فرکانس متصل به میکرو 4 مگاهرتز هست
              برای فهمیدن درستی کار کریستال بعد از اتصال کریستال به میکرو و روشن کردن مدار می تونین پایه های کریستال رو توسط اسکوپ چک کنین و باید یه سیگنال سینوسی اندازه کریستال متصل به میکرو مشاهده کنین(مثلا 4 مگاهرتز)
              هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

              دیدگاه


                #8
                پاسخ : مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

                نیاز به اسکوپ و این حرفها نیست -
                کریستال روی 4مگا بزار-و نرخ داده یا baud rate را رو9600 یا4800 تنظیم کن بعد نتیجه رو ببین به احتمال زیاد مشکلت برطرف میشه.

                دیدگاه


                  #9
                  پاسخ : مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

                  نوشته اصلی توسط morteza_cmos
                  نیاز به اسکوپ و این حرفها نیست -
                  کریستال روی 4مگا بزار-و نرخ داده یا baud rate را رو9600 یا4800 تنظیم کن بعد نتیجه رو ببین به احتمال زیاد مشکلت برطرف میشه.
                  سلام دوست من
                  من روش عملیش رو گفتم
                  چون در مواقعی که ما C کارها کار می کنیم با مقدار دهی اشتباه یا خطای محاسباتی در متغییر SBPRG و در صورت صحیح بودن همه موارد خطا ایجاد می شه و بهترین کار این هست که ابتدا خروجی کریستال رو توسط اسکوپ یا روش دیگر تست کنیم و نهایتا با خطا یابی به مشکل اصلی پی ببریم.
                  این هم یک روش هست نه نقض یک کار
                  هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                  دیدگاه


                    #10
                    پاسخ : مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

                    سلام

                    نرخ انتقال به شکل زیر محاسبه میشود

                    اگر بیت BRGH را 1 کرده باشید




                    SPBRG = ( (FOSC / Desired Baud Rate) / 16 ) - 1
                    SPBRG = ( (4000000 / 9600) / 16 ) - 1
                    SPBRG = 25



                    دقت کنید فقط 20 سانتیمتر سیم آزاد کافیه تا اطلاعات به دلیل نویز غیر قابل استفاده شود اگر از تراشه هایی مثل MAX232 استفاده نمیکنید

                    من اطلاعات کاملی برای انتقال دیتا روی پرت سریال میکرو در آموزش شماره 3 قرار دادم

                    به لینک زیر دقت کنید

                    http://www.eca.ir/forum2/index.php?topic=59815.msg346195#msg346195

                    نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
                    تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

                    دیدگاه


                      #11
                      پاسخ : مشکل با انتقال اطلاعات به صورت صحیح با مبدل usb به RS232 از میکرو به کامپیوتر

                      مشکلم حل شد
                      ایراد اینجا بود که کریستال مورد استفاده من خراب بود وقتی عوضش کردم همه چیز درست شد یه نکته دیگه هیچ وقت برای ارسال با بودریت 9600 از کریستال 4 مگا استفاده نکنید برای 4 مگا 2400 از همه بهتره
                      مجددا از همه اساتیدی که کمکم کردن تشکر فراوان می کنم

                      دیدگاه

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