اطلاعیه

Collapse
No announcement yet.

USART

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

    USART

    سلام به همه ی دوستان

    من با میکرو at91sam7x256 کار می کنم که در قسمت usart هر کاری که می کنم کار نمی کنه شرایط به شکل زیر هست:
    نرخ انتقال 9600 بر روی پایه TXD1 با 8 بیت اطلاعات، 1بیت توقف، بیت توازن هم نداره فرکانس کلاک اصلی 48MHz

    با max233 دارم راه میندازم و برنامه هم به صورت زیر است

    #include <Atmel/ioat91sam7x256.h>
    #include "LCD.h"
    #include "delay_us.h"

    void main ()
    {
    //--------------------start up--------------------------
    AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; // AT91C_WDTC_WDDIS=(1<<15)
    AT91C_BASE_RSTC->RSTC_RMR=0xA5000001;
    //--------------------speed up--------------------------
    AT91C_BASE_CKGR->CKGR_MOR = 0xF01;
    AT91C_BASE_CKGR->CKGR_PLLR = 0x2903FFC;
    AT91C_BASE_PMC->PMC_MCKR = 0x3;
    AT91C_BASE_PMC->PMC_SCER = 0x1;
    //-----------------------------------------------------
    AT91C_BASE_PMC->PMC_PCER = ( 1<<AT91C_ID_PIOA ); // AT91C_ID_PIOA=2
    AT91C_BASE_PMC->PMC_PCER = ( 1<<AT91C_ID_ADC ); // AT91C_ID_ADC=4
    AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_US1); // AT91C_ID_US1=7
    //------------------------------------------------------
    AT91C_BASE_PIOA->PIO_PER = (1<<0|1<<1|1<<2|1<<3);
    AT91C_BASE_PIOA->PIO_OER = (1<<0|1<<1|1<<2|1<<3);
    AT91C_BASE_PIOA->PIO_OWER = (1<<0|1<<1|1<<2|1<<3);
    AT91C_BASE_PIOA->PIO_ODSR = 0x0;

    AT91C_BASE_PIOA->PIO_PDR = (1<<5|1<<6|1<<8|1<<9);
    AT91C_BASE_PIOA->PIO_MDER =(1<<5|1<<6|1<<8|1<<9);
    AT91C_BASE_PIOA->PIO_ASR = (1<<5|1<<6|1<<8|1<<9);
    AT91C_BASE_US1->US_CR=0xC;
    AT91C_BASE_US1->US_MR=0x8D0;
    AT91C_BASE_US1->US_BRGR=0x27;
    AT91C_BASE_US1->US_CR=0x50;

    AT91C_BASE_ADC->ADC_MR = 0x1000010;
    AT91C_BASE_ADC->ADC_CHER = (1<<4);

    lcd_pininit(10,11,12,13,14,15,16,17,18,19);
    lcd_init ();

    while (1)
    {
    AT91C_BASE_ADC->ADC_CR = 0x2;
    while ((AT91C_BASE_ADC->ADC_SR&1<<4)==0);


    if ((AT91C_BASE_US1->US_CSR&0x2)==0x2)
    AT91C_BASE_US1->US_THR = 0xAA;



    lcd_gotoxy(0,0);
    lcd_puts( AT91C_BASE_ADC->ADC_CDR4&0xFF);



    delay_us(200000);
    lcd_clear();
    delay_us(200000);
    }
    }

    #2
    پاسخ : USART

    قسمت adc کار میکنه و مشکلی نداره ولی قسمت usart کار نمیکنه حتی با xbee هم تست کردم ولی نشد ؟

    دوستان اگه امکان داره راهنمایی کنند

    دیدگاه


      #3
      پاسخ : USART

      سلام
      از این هدری که پیوست کردم استفاده کن
      فایل های پیوست شده
      زندگی یعنی امید و حرکت
      کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
      سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
      برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
      به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

      دیدگاه


        #4
        پاسخ : USART

        ممنون از جوابتون

        این هدر مربوط به keil هست من با IAR کار میکنم البته میشه تبدیل کرد و مشکلی نداره

        فقط سوالم اینجاست که چرا برنامه بالا کار نمیکنه تمام ریجستر ها رو چک کردم و درسته؟

        دیدگاه


          #5
          پاسخ : USART

          نوشته اصلی توسط ramin00ramin
          ممنون از جوابتون

          این هدر مربوط به keil هست من با IAR کار میکنم البته میشه تبدیل کرد و مشکلی نداره

          فقط سوالم اینجاست که چرا برنامه بالا کار نمیکنه تمام ریجستر ها رو چک کردم و درسته؟
          فک کنم کلاکتون مشکل داره
          آخه هدری که من بالا گذاشتم کلاک کریستال رو به عنوان کلاک میگیره ولی شما خروجی PLL که MHz 48 هست رو کلاک گرفتین (طبق توضیحات پست اولتون)
          در ضمن فک کنم این هدر با IAR هم به راحتی کار کنه
          شما علاوه بر این هدر، هدر AT91SAM7X256.h رو هم انکلود کن و به احتمال 99 درضد کار میکنه چون این هدر ها استاندارد هستند
          زندگی یعنی امید و حرکت
          کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
          سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
          برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
          به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

          دیدگاه


            #6
            پاسخ : USART

            من هم از sam7x256 استفاده می کنم.فرق usart0 و usart1 فقط در پایه های اضافه تریه که usart1 داره؟

            دیدگاه


              #7
              پاسخ : USART

              نوشته اصلی توسط gizmo89
              من هم از sam7x256 استفاده می کنم.فرق usart0 و usart1 فقط در پایه های اضافه تریه که usart1 داره؟
              فرقشون از چه نظر؟
              ساختاری؟
              یا راه اندازی؟
              کلا یکی هستن و فرق خاصی ندارن چون هر پایه ای که USATR صفر داره یک هم داره
              توی راه اندازی هم باید فقط پایه های مربوطه رو تنظیم کنی و ببریشون تو حالت کاربرد جانبی
              همین
              زندگی یعنی امید و حرکت
              کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
              سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
              برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
              به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

              دیدگاه


                #8
                پاسخ : پاسخ : USART

                نوشته اصلی توسط علی ایمانی فر
                فک کنم کلاکتون مشکل داره
                آخه هدری که من بالا گذاشتم کلاک کریستال رو به عنوان کلاک میگیره ولی شما خروجی PLL که MHz 48 هست رو کلاک گرفتین (طبق توضیحات پست اولتون)
                در ضمن فک کنم این هدر با IAR هم به راحتی کار کنه
                شما علاوه بر این هدر، هدر AT91SAM7X256.h رو هم انکلود کن و به احتمال 99 درضد کار میکنه چون این هدر ها استاندارد هستند
                نه کلاک مشکلی نداره در ریجستر AT91C_BASE_US1->US_MR=0x8D0 کلاک usart بر 8 تقسیم میشه

                نحوه ی نوشت ریجستر در IAR و keil با هم متفاوته به همین خاطر هدر باید اصلاح بشه

                دیدگاه


                  #9
                  پاسخ : USART

                  برای استفاده rs485 مثال یا راهنمایی ندارین؟

                  دیدگاه


                    #10
                    پاسخ : USART

                    نوشته اصلی توسط gbg
                    برای استفاده rs485 مثال یا راهنمایی ندارین؟
                    من در حال حاضر چیزی برای RS485 ندارم و تا حالا هم کار نکردم باهاش فقط میدونم RS232 هست که به صورت تفاضلی کار میکنه تا نویز زیاد روش تاثیر نذاره
                    میگردم اگه پیدا کردم حتما برات میذارم
                    زندگی یعنی امید و حرکت
                    کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                    سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                    برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                    به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                    دیدگاه


                      #11
                      پاسخ : پاسخ : USART

                      نوشته اصلی توسط علی ایمانی فر
                      من در حال حاضر چیزی برای RS485 ندارم و تا حالا هم کار نکردم باهاش فقط میدونم RS232 هست که به صورت تفاضلی کار میکنه تا نویز زیاد روش تاثیر نذاره
                      میگردم اگه پیدا کردم حتما برات میذارم
                      سلام.خسته نباشید.اگر زحمیتی نیست،می خواستم یک مدار اینترفیس سریال پورت امتحان شده برام بگذارید.باتشکر :nerd:

                      دیدگاه


                        #12
                        پاسخ : پاسخ : USART

                        نوشته اصلی توسط gizmo89
                        سلام.خسته نباشید.اگر زحمیتی نیست،می خواستم یک مدار اینترفیس سریال پورت امتحان شده برام بگذارید.باتشکر :nerd:
                        سلام
                        منظورتونو درست متوجه نمیشم
                        مدار اینتر فیس سریال که خیلی راحته. کلا سه تا سیمه یکی GND و RX , TX مشکل کجاست؟
                        اگه اشتباه منظورتونو فهمیدم بیشتر توضیح بدین :job:
                        زندگی یعنی امید و حرکت
                        کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                        سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                        برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                        به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                        دیدگاه


                          #13
                          پاسخ : پاسخ : پاسخ : USART

                          نوشته اصلی توسط علی ایمانی فر
                          سلام
                          منظورتونو درست متوجه نمیشم
                          مدار اینتر فیس سریال که خیلی راحته. کلا سه تا سیمه یکی GND و RX , TX مشکل کجاست؟
                          اگه اشتباه منظورتونو فهمیدم بیشتر توضیح بدین :job:
                          یه چیز تو مایه های همون درایور استپر که داده بودید.میخوام مدارشو با مکس 232 ببندم.
                          مدار کتاب نص رو بستم،ولی جواب نگرفتم.یه سوال دیگه اینکه،می شه از مبدل usb به سریال هم برای ارتباط استفاده کرد؟من دارم ازین کابلا برای اتصال به pc استفاده می کنم.

                          دیدگاه


                            #14
                            پاسخ : پاسخ : پاسخ : USART

                            نوشته اصلی توسط gizmo89
                            یه چیز تو مایه های همون درایور استپر که داده بودید.میخوام مدارشو با مکس 232 ببندم.
                            مدار کتاب نص رو بستم،ولی جواب نگرفتم.یه سوال دیگه اینکه،می شه از مبدل usb به سریال هم برای ارتباط استفاده کرد؟من دارم ازین کابلا برای اتصال به pc استفاده می کنم.
                            بله میشه من خودم همیشه همین کارو میکنم چون لپ تاپا دیگه پورت سریال ندارن
                            خروجی کابلتون چه مدلیه؟
                            TTL هست یا RS232؟
                            اگه RS232 باشه باید از MAX232 استفاده کنی در غیر این صورت نیازی به MAX232 نیست
                            این مداری که پیوست کردمو خودم بستم و جواب گرفتم
                            تستش کن اگه کارت راه نیوفتاد یه فکر دیگه کنیم
                            فایل های پیوست شده
                            زندگی یعنی امید و حرکت
                            کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                            سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                            برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                            به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                            دیدگاه


                              #15
                              پاسخ : پاسخ : پاسخ : پاسخ : USART

                              نوشته اصلی توسط علی ایمانی فر
                              بله میشه من خودم همیشه همین کارو میکنم چون لپ تاپا دیگه پورت سریال ندارن
                              خروجی کابلتون چه مدلیه؟
                              TTL هست یا RS232؟
                              اگه RS232 باشه باید از MAX232 استفاده کنی در غیر این صورت نیازی به MAX232 نیست
                              این مداری که پیوست کردمو خودم بستم و جواب گرفتم
                              تستش کن اگه کارت راه نیوفتاد یه فکر دیگه کنیم
                              rs-232 نه پین هستش.فردا تست می کنم.ممنون

                              دیدگاه

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