اطلاعیه

Collapse
No announcement yet.

USART

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

    USART

    usart
    با سلام
    من دو تا میکرو 16رو با اتصال usartاتصال دادم تو پروتوس درست کار می کنه اما تو عمل وقتی که pinb1صفر وقتی که میکرو روشن می کنیم ledروشن می شه اما وقتی که pinb1یک با شه و تغذیه میکرو رو وصل کنیم وبعد pinb1رو صفر کنیم ledباید روشن بشه که روشن نمی شه

    #2
    پاسخ : USART

    با سلام
    دوست عزیز از اتصالات سخت افزاریتون مطمئنید فرکانس کریستالتون چیه ، با چه کامپایلری کار می کنید ؟

    دیدگاه


      #3
      پاسخ : USART

      چرا شما پایه هارو صفرو یک میکنید ؟
      اصول یوزارت بر مبنای ماکسترمه
      یعنی همیشه سطح منتقی 1 هست موقعی که دیتا ارسال میشه
      به مدت چند میکرو ثانیه سطح ولتاژ صفر شده دباره به سطح منتقی 1 بر میگرده
      [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

      دیدگاه


        #4
        پاسخ : USART

        با سلام
        ممنون از جوابتون
        با کریستال 8 وکدویژن و از اتصال قطعات هم مطمئنم

        دیدگاه


          #5
          پاسخ : USART

          خوب طبق جدول زیر با فرکانس 8 مگ توی بود ریت های پایین احتمال وجود داره ، بیایید طبق جداول موجود در دیتا شیت متناسب با نیازتون یک کریستالی رو انتخاب کنید که توی بود ریت مورد نظرتون خطای ارسال داده به 0% برسه ، ببینید مشکلتون حل میشه :

          دیدگاه


            #6
            پاسخ : USART

            نه حل نشد به نظر شما من چیکار کنم

            دیدگاه


              #7
              پاسخ : USART

              میشه بیشتر توضیح بدید که دقیقا چکاری میخواهید انجام بدید یا اگه براتون مقدوره مثلا برنامه تون رو بزارید؟

              دیدگاه


                #8
                پاسخ : USART

                میشه بگید تو کدوم سایت اپلود می کنید ممنون می شم

                دیدگاه


                  #9
                  پاسخ : USART

                  برای پلود عکس : http://up.vatandownload.com/
                  برای پلود فایل زیپ : http://s2.picofile.com/

                  دیدگاه


                    #10
                    پاسخ : USART

                    http://s2.picofile.com/file/7130245264/t.zip.html
                    اینم یه برنامه ازمایشی که تو پروتوس کار می کنه اما تو عمل کار نمی کنه

                    دیدگاه


                      #11
                      پاسخ : USART

                      منتظر جوابهای سبزتان هستیم

                      دیدگاه


                        #12
                        پاسخ : USART

                        یک سوال ، شما از Double Speed Mode استفاده کردید دسته ؟
                        اگر درسته چرا توی برنامه فرستنده بیت U2X رو یک نکردید ؟

                        راستی کریستالتون رو عوض کردید مقدار کریستالاتون چی بود و تنظیمات رو چجوری انجام دادید ، به نظر من برای اسیلاتور میکرو ها کریستالی مثل 7.3728 MHz استفاده کنید

                        دیدگاه


                          #13
                          پاسخ : USART

                          با سلام
                          کریستال که استفاده شده 8مگ این یه ارتباط ساده است بین دو میکرو واز پروتکل 485استفاده نشده

                          دیدگاه


                            #14
                            پاسخ : USART

                            دوست عزیز نگفتین که چرا U2X رو یک نکردین ، می دونید چرا این سوال رو می پرسم چون وقتی به برنامه تون نگاه کردم دیدم امیدید UBRRL=0X67 گزاشتید که این یعنی UBRR=103 که طبق همون جدولی که براتون گزاشتم ، این مقدار برای زمانی هست که اوسیلاتور 8 مگ و بود ریت 9600 و بیت U2X=1 باشه اما شما اون رو یک نکردید .
                            به این سوالمم جواب ندادید که وقتی گفتم بیایید از یک کریستال استاندارد استفاده کنید از چه کریستالی استفاده کردید و تنظیمات رو توی برنامه چجوری انجام داید که باز هم از مدار جواب نگرفتید
                            به نظر من ارتباط ، ارتباط دیگه ساده و پیچیده نداره شما دارید از usart استفاده میکنید حالا چه یه بیت بفرستید چه هشت بیت ، قالب ارسالتون یکیه وقتی که خطا وجود داشته باشه اطلاعاتتون درست منتقل نمیشه اگر هم درست منتقل بشه بازهم احتمال خطا وجود داره خوب شما دارید یک بایت رو می فرستید با یک مقدار مشخص اون ور هم یک بایت دریافت میکنید
                            و البته یک مورد که الان یادم امد ،
                            طبق اونچه که توی هدر stdarg.h امده ورودی تابع putchar() باید از نوع char باشه اما شما امدید ورودی تون رو از نوع unsigned char انتخاب کردید و البته اون رو با یک متغیر دیگه از نوع int مقدار دهی کردید و خوب بازهم البته چون مقداری که میفرستید عدد 7 هست و این عدد در هر سه قالب تا اونجا که من میدونم بیت های 0تا 2 هر متغیر رو یک میکنه و این در هر سه متغیر مشترک هست ، اینجا اشکالی ایجاد نمیکته اما برای مقادیر بزگتر از 127 یا کوچکتر از 128- حتما با مشکل مواجه خواهیم شد .

                            دیدگاه


                              #15
                              پاسخ : USART

                              من نرخ اطلاعاتو 4800گرفتم که تو این حالت U2X=0است
                              من از کریستال 8مگ استفاده کردم نصبت به اون جدول و نرخ اطلاعات ,من از یک سیم برای ارتباط بین دو میکرو به صورت ازمایشی استفاده کردم وفاصله ی بین دو میکرو هم زیاد نیست ایا جواب می ده یا باید از پروتکل 485استفاده کنم

                              دیدگاه

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