اطلاعیه

Collapse
No announcement yet.

مشکل با نرخ ارسال تو ارتباط سریال !!

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

    مشکل با نرخ ارسال تو ارتباط سریال !!

    سلام به دوستان
    من برای ارتباط میکرو با لب ویو از مبدل usb به com (نپرسید چرا از اونطرف دوباره یه max232 دیگه میزارم تا سطح ولتاژ درست شه) استفاده می کنم. روی این مبدل نوشته که از فرکانس 2400 تا 115200 رو برای باودریت ساپورت میکنه.
    کریستال من برای میکرو AVR هم 16M هستش. وقتی داده ای رو برای میکرو ارسال می کنم فقط تو باودریت 2400 خوب و درست عمل میکنه اما تو باودریت های دیگه، کار نمیکنه !! oo:
    کسی از دوستان میدونه مشکل از چی میتونه باشه ؟
    ممنون.
    ---------
    .
    .
    ...........

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

    میکروت چیه ، تو چه محیطی کار میکنی(زبان برنامه نویسی)؟
    به احتمال زیاد رجیستر مربوط به پورت سریالت رو درست مقدار نمیدی.

    دیدگاه


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

      سلام.ممکنه از خطای بادریت باشه.که اگر زیاد باشه کار نمیکنه.برای خطا ها می تونید این لینک رو ببینید
      http://www.wormfood.net/avrbaudcalc.php

      دیدگاه


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

        فکر کنم باید از کریستال 11.0592 استفاده کنی تا خطا از بین بره

        دیدگاه


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

          نوشته اصلی توسط امیر . م
          میکروت چیه ، تو چه محیطی کار میکنی(زبان برنامه نویسی)؟
          به احتمال زیاد رجیستر مربوط به پورت سریالت رو درست مقدار نمیدی.
          میکروی من ATMEGA32 هستش و با کدویژن برنامه می نویسم.
          این تیکه کد هم برای قسمت دریافت هستش:
          کد:
          .
          .
          .
          char Input_Data[60]   // Received String from PC wit usart
          
          #define RX_BUFFER_SIZE 64
          char rx_buffer[RX_BUFFER_SIZE];
          
          interrupt [USART_RXC] void usart_rx_isr(void)  {
          char status,data;
          status=UCSRA;
          data=UDR;
          
          if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) { 
            if (data=='P' && rx_wr_index==0) {
              rx_wr_index=1;rx_buffer[0]=data;
              }
            else if (data!='n' && rx_wr_index<=50) {
              rx_buffer[rx_wr_index]=data;rx_wr_index++ ;
              }
            else if (data=='n') {
          		strcpy(Input_Data,rx_buffer);
              rx_wr_index=0;
              }
            } 
          }
          .
          .
          .
          // USART initialization
            UCSRA=0x00;   // Communication Parameters: 8 Data, 1 Stop, No Parity
            UCSRB=0xD8;   // USART Receiver: On
            UCSRC=0x06;   // USART Transmitter: On
            UBRRH=0x01;   // USART Mode: Asynchronous
            UBRRL=0xA0;  // USART Baud Rate: 2400
          .
          .
          .
          ---------
          .
          .
          ...........

          دیدگاه


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

            کد:
            // USART initialization
            // Communication Parameters: 8 Data, 1 Stop, No Parity
            // USART Receiver: On
            // USART Transmitter: On
            // USART Mode: Asynchronous
            // USART Baud Rate: 38400
            UCSRA=0x00;
            UCSRB=0x98;
            UCSRC=0x86;
            UBRRH=0x00;
            UBRRL=0x19;
            شما میتونید با کریستال 16 مگ تا بادریت 38400 استفاده کنید. اما بیشتر از اون خطا زیاد میشه و نمیتونین استفاده کنید.
            دقت کنید تو لب ویو هم بادریت رو درست تنظیم کنید.
            تو تنظیمات خودتون Tx Interrupt رو هم فعال کرده بودین که لزومی نداره.
            اگر میخواین از بادریت بالاتر استفاده کنید میتونین از کریستال 11.0592 یا 14.7456 مگ استفاده کنید که دومی طبعا فرکانس کاری میکروتون رو هم بیشتر میکنه(از 11.0592) .
            موفق باشید.

            دیدگاه


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

              ممنون از راهنماییتون دوستان
              من دوباره با باودریت های بالاتر مثل همون 38400 امتحان کردم. وقتی که از لب ویو 5 یا 6 بار ارسال می کنم، یکبار رشته ارسالی تو میکرو درست دریافت میشه.
              اما با باودریت 2400 همیشه دریافت درست صورت میگیره.
              علتش میتونه همون خطای 0.2 باشه ؟
              ---------
              .
              .
              ...........

              دیدگاه


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

                سلام اره
                مشکل سره درصد خطاست
                رو چه باود ریتی میخوای بذاری بگوراهنماییت کنم

                دیدگاه


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

                  نوشته اصلی توسط pouyaojaghi
                  سلام اره
                  مشکل سره درصد خطاست
                  رو چه باود ریتی میخوای بذاری بگوراهنماییت کنم
                  من میخوام ارتباط RS485 رو در نهایت پیاده سازی کنم، برا همین فکر کنم نیاز به باودریت های بالا دارم. درسته ؟
                  مثلا در حد چند صد کیلوهرتز.
                  ---------
                  .
                  .
                  ...........

                  دیدگاه


                    #10
                    پاسخ : مشکل با نرخ ارسال تو ارتباط سریال !!

                    خب به نظرت با AVR میشه!!!!!!!!!؟؟؟؟؟؟؟

                    دیدگاه


                      #11
                      پاسخ : مشکل با نرخ ارسال تو ارتباط سریال !!

                      نوشته اصلی توسط pouyaojaghi
                      خب به نظرت با AVR میشه!!!!!!!!!؟؟؟؟؟؟؟
                      با ارتباط میکرو با میکرو که میشه، اما با کامپیونر محدودیت هستش.
                      برای ارتباط با کامپیوتر همون باودریت مثلا 38400 با کریستال 16 مگاهرتز، اگه کزستالم 12.5 مگا باشه اونوقت بازم میشه ارسال بدون خطا یا با خطای کم ( بشه چیزی رو ارسال یا دریافت کرد)
                      انجام میشه ؟
                      ممنون
                      ---------
                      .
                      .
                      ...........

                      دیدگاه


                        #12
                        پاسخ : مشکل با نرخ ارسال تو ارتباط سریال !!

                        وقتی داده ای رو برای میکرو ارسال می کنم فقط تو باودریت 2400 خوب و درست عمل میکنه اما تو باودریت های دیگه، کار نمیکنه !!
                        تنظیمات سخت افزاری رو توی pc انجام می دید؟
                        توی
                        device manager>ports>COMX
                        تب port settings باید تنظیمات مربوط به ارتباط سریال رو انجام بدید.

                        دیدگاه


                          #13
                          پاسخ : مشکل با نرخ ارسال تو ارتباط سریال !!

                          متوجه علامت سوال نشدم که یعنی چی؟؟

                          دیدگاه


                            #14
                            پاسخ : مشکل با نرخ ارسال تو ارتباط سریال !!

                            نوشته اصلی توسط ajapyy
                            سلام به دوستان
                            من برای ارتباط میکرو با لب ویو از مبدل usb به com (نپرسید چرا از اونطرف دوباره یه max232 دیگه میزارم تا سطح ولتاژ درست شه) استفاده می کنم. روی این مبدل نوشته که از فرکانس 2400 تا 115200 رو برای باودریت ساپورت میکنه.
                            کریستال من برای میکرو AVR هم 16M هستش. وقتی داده ای رو برای میکرو ارسال می کنم فقط تو باودریت 2400 خوب و درست عمل میکنه اما تو باودریت های دیگه، کار نمیکنه !! oo:
                            کسی از دوستان میدونه مشکل از چی میتونه باشه ؟
                            ممنون.
                            بچه ها راست میگن
                            کریستال رو عوض کن درست میشه
                            11.0592 یا 14.7456 مگا استفاده کن
                            منم اولش همین مشکل رو داشتم . تا کریستال رو عوض کردم درست شد .
                            حتی سرعت رو تا 115200 هم بردم ولی دیگه به مشکل بر نخوردم
                            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                            معرفی نرم افزار Codewizard PWM
                            با من بیشتر آشنا شوید

                            دیدگاه


                              #15
                              پاسخ : مشکل با نرخ ارسال تو ارتباط سریال !!

                              نوشته اصلی توسط pouyaojaghi
                              متوجه علامت سوال نشدم که یعنی چی؟؟
                              انجام میشه ؟ رو میگید ؟
                              ادامه خط قبلی که پایین نوشتم.
                              ---------
                              .
                              .
                              ...........

                              دیدگاه

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