اطلاعیه

Collapse
No announcement yet.

rs232 .در xmega

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

    rs232 .در xmega

    سلام. من بالاخره xmega رو راه اندازی کردم. حالا می خوام از طریق rs232 با پورت سریال کامپیوتر ارتباط برقرار کنم. باید از چه مداری استفاده کنم.

    #2
    پاسخ : rs232 .در xmega

    سلام. من بالاخره xmega رو راه اندازی کردم.
    مبارکه ! :applause:

    می تونی از همون MAX232 استفاده کنید مطابق نقشه داخل دیتاشیتش .

    اینم کد :

    کد:
    //This function is used to initialize the USART
    //at a given UBRR value
    void USARTInit(uint16_t ubrr_value)
    {
    
    	//Set Baud rate
    	UBRRL = ubrr_value;
    	UBRRH = (ubrr_value>>8);
    	
    	//UBRRH=0x00;
    	//UBRRL=0xCF;
    	/*Set Frame Format
    	>> Asynchronous mode
    	>> No Parity
    	>> 1 StopBit
    	>> char size 8
    	*/
    
    	UCSRC=(1<<URSEL)|(3<<UCSZ0);
    
    	//Enable The receiver and transmitter
    	UCSRB=(1<<RXEN)|(1<<TXEN);
    
    
    }
    
    
    //This function is used to read the available data
    //from USART. This function will wait untill data is
    //available.
    char USARTReadChar()
    {
    	//Wait untill a data is available
    	while(!(UCSRA & (1<<RXC)))
    	{
    		//Do nothing
    	}
    
    	//Now USART has got data from host
    	//and is available is buffer
    
    	return UDR;
    }
    
    
    //This fuction writes the given "data" to
    //the USART which then transmit it via TX line
    void USARTWriteChar(char data)
    {
    	//Wait untill the transmitter is ready
    	while(!(UCSRA & (1<<UDRE)))
    	{
    		//Do nothing
    	}
    
    	//Now write the data to USART buffer
    
    	UDR=data;
    	fcpu_delay_ms(40);
    }
    فکر کنم با توضیحاتش خودش مفهوم باشه . اگه سوالی بود در خدمتم

    البته کد مربوطه به Mega هست نه Xmega !
    - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

    دیدگاه


      #3
      پاسخ : rs232 .در xmega

      می تونی از آی سی MAX232 استفاده کنی ولی باید یا تبدیل ولتاژ انجام بدی یا از آی سی های مبدل استفاده کنی.
      پیشنهاد من MAX3232 هست که نیاز به انجام کارهای بالا نداره و ولتاژ کاریش 3 ولت هست.
      در زیر این نقاب چیزی بیشتر از گوشت هست. در زیر این نقاب یک ایده هست و ایده ها ضدگلوله هستند.

      1-به اندازه ی باورهای هر کسی ؛ با او حرف بزن …. بیشتر که بگویی ، تو را احمق فرض خواهد کرد …!!!
      2-تنها دو گروه نمى توانند افکار خود را عوض کنند: دیوانگان تیمارستان و مردگان گورستان.
      3-آدم ها مثل عکس ها هستند: زیاد بزرگشون کنی ، کیفیتشون میاد پایین!

      دیدگاه


        #4
        پاسخ : rs232 .در xmega

        نوشته اصلی توسط siyavash2k
        می تونی از آی سی MAX232 استفاده کنی ولی باید یا تبدیل ولتاژ انجام بدی یا از آی سی های مبدل استفاده کنی.
        پیشنهاد من MAX3232 هست که نیاز به انجام کارهای بالا نداره و ولتاژ کاریش 3 ولت هست.
        برای چی تبدیل ولتاژ ؟ oo: من توی مدارایی که تا حالا ساختم با Xmega از max232 استفاده کردم و مشکلی هم نداشتم . :eek:
        - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

        دیدگاه


          #5
          پاسخ : rs232 .در xmega

          سلام.
          شما ولتاژ 5 ولت به تغذیه max232 می دین یا 5 ولت؟ سیم کشیش همونی است که با mega انجام می شد؟

          دیدگاه


            #6
            پاسخ : rs232 .در xmega

            من همون 5 ولت رو بهش می دم و به تغذیه میکرو هم 3.3 ولت ولی کار می کنه . البته Receive اش رو امتحان نکردم . چون تو پروژه هایی که اخیرا داشتم همش Send مورد نیاز بوده . ولی توی Send هیچ مشکلی نبوده . :rolleyes:
            - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

            دیدگاه


              #7
              پاسخ : rs232 .در xmega

              منظورتون از receive از کامپیوتر به میکرو است یا میکرو به کامپیوتر؟ همین طور send.

              راستی چطور باید تنظیم کنم که میکرو با 32mhz کار کنه؟
              این عکی فیوز بیت ها است. باید چطور تنظیم کنم؟



              دیدگاه


                #8
                پاسخ : rs232 .در xmega

                منظورم Receive میکرو بود . من از میکرو می فرستم سمت کامپیوتر و دریافتم در کامپیوتر مشکلی نداشته .

                اما برعکسش رو فعلا چک نکردم هنوز البته توی برد جدیدم که تا آخر این هفته حاضر میشه باید این کار رو هم انجام بدم .

                در ضمن برای تنظیم کلاک در Xmega نیازی به تغییر فیوز بیتها نیست .
                دقیقا نمی دونم چطوری باید 32 مگا هرتز بشه ولی می دونم که باید از کریستال خارجی 16 مگاهرتز استفاده کنید با کد زیر کلاک خارجی رو استفاده کنید و می دونم که باید با تغییراتی در کد اونو 2 برابر کنید که امیدوارم دوستای دیگه این قسمت رو بفرمایند . ما هم استفاده کنیم .

                کد:
                // System Clocks initialization
                void system_clocks_init(void)
                {
                	OSC.XOSCCTRL=0XCB;
                	OSC.CTRL = 9;
                	while(!(OSC.STATUS & 8));
                	CCP = 0xD8;
                	CLK.CTRL = 0x03;
                	CLK.PSCTRL = 0x01;
                }
                این تابع رو در main هم باید call کنید .
                - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

                دیدگاه


                  #9
                  پاسخ : rs232 .در xmega

                  راه اندازی کلاک 32MHz داخلی:
                  http://www.eca.ir/forum2/index.php?topic=42495.msg375411#msg375411
                  گاهی افرادی به موفقیت های بزرگ می رسند، تنها به این دلیل ساده که نمی دانند کاری که به آن دست زده اند بسیار دشوار، بلکه غیر ممکن است.

                  دیدگاه


                    #10
                    پاسخ : rs232 .در xmega

                    چطور می شه PLL در میکروی xmega رو در حد اکثر سرعت قرار داد؟

                    $lib "xmega.lib"
                    $external _xmegafix_clear
                    $external _xmegafix_rol_r1014
                    Config Osc = Enabled , 32mhzosc = Enabled 'We use internal 32MHz
                    Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 'Internal 32MHz, no prescaler

                    در این دستورات کجا مشخص می کنیم که PLL فعال باشه.

                    دیدگاه


                      #11
                      پاسخ : rs232 .در xmega

                      فکر کنم بهتر باشه . این بحث کلاک رو توی همون تاپیکی دوستمون معرفی کردن ادامه بدیم .
                      - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

                      دیدگاه


                        #12
                        پاسخ : rs232 .در xmega

                        اگه max232 با 5 ولت تغذیه بشه خروجی اون هم در حدود 5 ولت میشه و این ولتاژ ممکنه باعث اسیب دیدن پایه های میکرو بشه.
                        در زیر این نقاب چیزی بیشتر از گوشت هست. در زیر این نقاب یک ایده هست و ایده ها ضدگلوله هستند.

                        1-به اندازه ی باورهای هر کسی ؛ با او حرف بزن …. بیشتر که بگویی ، تو را احمق فرض خواهد کرد …!!!
                        2-تنها دو گروه نمى توانند افکار خود را عوض کنند: دیوانگان تیمارستان و مردگان گورستان.
                        3-آدم ها مثل عکس ها هستند: زیاد بزرگشون کنی ، کیفیتشون میاد پایین!

                        دیدگاه


                          #13
                          پاسخ : rs232 .در xmega

                          با سلام خدمت دوستان
                          بنده با استفاده از برد آموزشی xmega که استاد کی نژاد زحمتش رو کشیدن یه برنامه ساده مربوط به پورت سریال رو راه اندازی کردم به طوری که دایم یه کاراکتری رو به پورت سریال کامپیوتر میفرسته و در سمت کامپیوتر با یه برنامه ترمینال ساده اون عدد رو دریافت میکنم . در این حالت جریان کشیده شده از مدار حدود 20 میلی آمپر هستش . ولی بعد از یک بار خاموش روشن کردن تغذیه برد در حالی که پورت سریال کامپیوتر از طریق کابل به مدار وصل هستش ، جریانی حدود 400 میلی آمپر از برد کشیده میشه . اما اگه کابل از برد جدا باشه و مدار رو خاموش روشن کنم و بعد از روشن شدن مدار بعدش بیام و کابل رو به مدار وصل کنم همون 20 میلی آمپر جریان مصرف میشه . ممکنه دلیل این امر رو بفرمایید و راه حل اون رو؟
                          ممنون
                          "در عجبم از مردمي که خود زير شلاق ظلم و ستم زندگي مي کنند و بر حسيني مي گريند که آزادنه زيست" شريعتي
                          در جهان روشنايي هايي وجوددارد كه در عميق ترين ظلمات نهانند.

                          دیدگاه


                            #14
                            پاسخ : rs232 .در xmega

                            نوشته اصلی توسط siyavash2k
                            اگه max232 با 5 ولت تغذیه بشه خروجی اون هم در حدود 5 ولت میشه و این ولتاژ ممکنه باعث اسیب دیدن پایه های میکرو بشه.
                            شاید بخاطر اینکه تا حالا با Receive اش کار نکردم مشکلی برام پیش نیومده . چون روی برد فعلی که دارم فقط از Send استفاده می کنم و با همون Max232 کار می کنم و فعلا که مشکلی نبوده . ممنون از راهنماییتون .

                            نوشته اصلی توسط tictactoe
                            با سلام خدمت دوستان
                            بنده با استفاده از برد آموزشی xmega که استاد کی نژاد زحمتش رو کشیدن یه برنامه ساده مربوط به پورت سریال رو راه اندازی کردم به طوری که دایم یه کاراکتری رو به پورت سریال کامپیوتر میفرسته و در سمت کامپیوتر با یه برنامه ترمینال ساده اون عدد رو دریافت میکنم . در این حالت جریان کشیده شده از مدار حدود 20 میلی آمپر هستش . ولی بعد از یک بار خاموش روشن کردن تغذیه برد در حالی که پورت سریال کامپیوتر از طریق کابل به مدار وصل هستش ، جریانی حدود 400 میلی آمپر از برد کشیده میشه . اما اگه کابل از برد جدا باشه و مدار رو خاموش روشن کنم و بعد از روشن شدن مدار بعدش بیام و کابل رو به مدار وصل کنم همون 20 میلی آمپر جریان مصرف میشه . ممکنه دلیل این امر رو بفرمایید و راه حل اون رو؟
                            ممنون
                            دوست عزیز شما از کدوم آی سی استفاده کردید ؟ MAX232 یا Max3232 یا چیز دیگه ای ؟ خازن ها رو چی گذاشتید ؟ البته با این مشکل من یه جورایی برخورد کرده بودم ولی بحض روشن شدن و فعال شدن پورت دوباره مشکلات همه حل میشدند .
                            - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

                            دیدگاه


                              #15
                              پاسخ : rs232 .در xmega

                              با سلام
                              توی این مدار که بنده دارم از max232 استفاده شده و خازنها 1 میکرو هستند. اما اینجا همون اضافه جریان هستش

                              اگه max232 با 5 ولت تغذیه بشه خروجی اون هم در حدود 5 ولت میشه و این ولتاژ ممکنه باعث اسیب دیدن پایه های میکرو بشه.
                              میشه با دو تا مقاومت 560 اهمی و 1 کیلویی به ورودی سریال میکرو وصلش کرد
                              ممنون
                              "در عجبم از مردمي که خود زير شلاق ظلم و ستم زندگي مي کنند و بر حسيني مي گريند که آزادنه زيست" شريعتي
                              در جهان روشنايي هايي وجوددارد كه در عميق ترين ظلمات نهانند.

                              دیدگاه

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