اطلاعیه

Collapse
No announcement yet.

کار با پورت و پین ها

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

    #46
    پاسخ : کار با پورت و پین ها

    ممنون که با حوصله به همش پاسخ دادید .
    راست میگید وقتی به دیتا شیت مراجعه کردم دیدم که خیلی دقیقتر همه چیز مشخص شده است .
    فقط یه چیزی در مورد USART اگه من نخوام از کلاکش استفاده کنم میشه ؟
    مثلا rx , tx رو بدم به آی سی Max232 و خروجی رو بدم به کامپیوتر ؟

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

    دیدگاه


      #47
      پاسخ : کار با پورت و پین ها

      در هر دو خانواده MEGA و XMEGA در صورتی که USART در مد سنکرون تنظیم شود، لازم است از پین XCK به عنوان کلاک سنکرون استفاده شود. اما در صورت استفاده از USART در مد آسنکرون، در هیچ یک از این دو خانواده نیازی به استفاده از این پین نیست.
      اوژن: به معنای افکننده و شکست دهنده است
      دانایی، توانایی است-Knowledge is POWER
      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

      دیدگاه


        #48
        پاسخ : کار با پورت و پین ها

        خیلی ممنون استاد
        آقای دکتر این اولین باری است که شما جواب سوال منو میدید . افتخار دادید و خیلی ممنونم . :wow:
        - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

        دیدگاه


          #49
          پاسخ : کار با پورت و پین ها

          سلام دوستان
          نمی دونم چرا ولتاژ پین خروجی در حد 1 ولت یا گاهی کمتر حدود 700 میلی ولت است ؟
          میکرو atxmega128a1 و البته با atxmega64a3 هم تست کردم و همین مشکلو دارم . نمی دونم مشکل می تونه از نرم افزار باشه ؟ آیا در xmega تنظیمی برای مقدار ولتاژ خروجی وجود داره ؟
          میکرو داره کار می کنه با اهم متر ولتاژ پایه رو میگرم خاموش روشن شدن که در برنامه تنظیم کردم اتفاق می افته ولی ولتاژ پین در موقع 1 شدن پین حدودا بین 700 میلی ولت تا 1.1 ولت هست . آیا این طبیعی است ؟
          من می تونم کاریش کنم که خروجی حدود 3 ولت بشه؟ . چون تغذیه مدار درست روی 3.3 ولت هست
          - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

          دیدگاه


            #50
            پاسخ : کار با پورت و پین ها

            نوشته اصلی توسط مرد نامرئی
            سلام دوستان
            نمی دونم چرا ولتاژ پین خروجی در حد 1 ولت یا گاهی کمتر حدود 700 میلی ولت است ؟
            میکرو atxmega128a1 و البته با atxmega64a3 هم تست کردم و همین مشکلو دارم . نمی دونم مشکل می تونه از نرم افزار باشه ؟ آیا در xmega تنظیمی برای مقدار ولتاژ خروجی وجود داره ؟
            میکرو داره کار می کنه با اهم متر ولتاژ پایه رو میگرم خاموش روشن شدن که در برنامه تنظیم کردم اتفاق می افته ولی ولتاژ پین در موقع 1 شدن پین حدودا بین 700 میلی ولت تا 1.1 ولت هست . آیا این طبیعی است ؟
            من می تونم کاریش کنم که خروجی حدود 3 ولت بشه؟ . چون تغذیه مدار درست روی 3.3 ولت هست
            سلام مشکل از تغذیه است واسه اینکه خروجی را یک حساب کنیم حداقل یاید2.5 ولت تو خروجی داشته باشیم
            البته اگه تغذیه 5 ولت میتونی بدی بهتره از این تغذیه استفاده کنی :read:
            دوربين مدار بسته و دزد گير و رفع مشكلات
            بانك اطلاعاتي سنسورها
            ساخت رقص نور براي شيشه سكوريت مغازه ها
            تعمير لوازم خانگي را اينجا مطرح كنيد
            [move][b] موفقيت بر روي ستون هاي شکست شکل مي گيرد.

            دیدگاه


              #51
              پاسخ : کار با پورت و پین ها

              خوب حداکثر تغذیه Xmega ولتاژ 3.6 ولت هست که من دارم 3.3 ولت می دم .
              برد هدر میکرو رو کلا از مدار اصلی قطع کردم و فقط تغذیه متصل شده به تمام پایه های تغذیه میکرو همراه با خازن های عدسی 100 نانو فاراد و یک خازن 100 میکرو فاراد 16 ولتی و از طرفی هم با اینترفیس pdi به پروگرامر متصل شده و از اوسیلاتور کریستال خارجی 16 مگاهرتز دارم استفاده می کنم . پین های تغذیه روی میکرو ولتاژ 3.3 ولت رو نشون می دن . ولی پین A3 که بصورت خروجی تعریف شده و مطابق کد زیر باید خاموش روشن بشه (که میشه و مشکلی در خاموش روشن شدنش و زمانش هم نیست ) ولتاژ پائینی داره در حد 1 ولت که خوب مشکل ساز شده برام . بازم تاکید می کنم که میکرو از مدار خارج شده و داره تست میشه .

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

              دیدگاه


                #52
                پاسخ : کار با پورت و پین ها

                نوشته اصلی توسط مرد نامرئی
                خوب حداکثر تغذیه Xmega ولتاژ 3.6 ولت هست که من دارم 3.3 ولت می دم .
                برد هدر میکرو رو کلا از مدار اصلی قطع کردم و فقط تغذیه متصل شده به تمام پایه های تغذیه میکرو همراه با خازن های عدسی 100 نانو فاراد و یک خازن 100 میکرو فاراد 16 ولتی و از طرفی هم با اینترفیس pdi به پروگرامر متصل شده و از اوسیلاتور کریستال خارجی 16 مگاهرتز دارم استفاده می کنم . پین های تغذیه روی میکرو ولتاژ 3.3 ولت رو نشون می دن . ولی پین A3 که بصورت خروجی تعریف شده و مطابق کد زیر باید خاموش روشن بشه (که میشه و مشکلی در خاموش روشن شدنش و زمانش هم نیست ) ولتاژ پائینی داره در حد 1 ولت که خوب مشکل ساز شده برام . بازم تاکید می کنم که میکرو از مدار خارج شده و داره تست میشه .

                و دو میکروی متفاوت رو تست کردم و با هر دو این مشکلو دارم .
                دوست عزیز بنده با pic کار میکنم و خیلی وقت ها با این مشکل روبرو میشم که بعد میفهمم یا تغذیه یه جایی مشکل داره یا اینکه تو برنامه درست خروجی را تعریف نکردم مثلا بارها شده تو برنامه بعلت دستورات زیاد یه پین را خروجی وهم ورودی تعیین کرده باشم :read:
                دوربين مدار بسته و دزد گير و رفع مشكلات
                بانك اطلاعاتي سنسورها
                ساخت رقص نور براي شيشه سكوريت مغازه ها
                تعمير لوازم خانگي را اينجا مطرح كنيد
                [move][b] موفقيت بر روي ستون هاي شکست شکل مي گيرد.

                دیدگاه


                  #53
                  پاسخ : کار با پورت و پین ها

                  سلام
                  این حالت موقعی بوجود میاد که شما پین رو به عنوان خروجی تعیین نکرده باشین
                  یعنی همه کارهایی که برنامه ریزی کردین اتفاق میفته ولی با سطح ولتاژ low
                  من چندین بار هواسم نبود به این قضیه و این مشکل برام پیش میومد
                  دقیقا مطمئن نیستم ولی بررسی بکنید
                  از سختی نترس! این سختی هاست که جایگاه و مقام انسان را بالا میبرد...

                  دیدگاه


                    #54
                    پاسخ : کار با پورت و پین ها

                    نوشته اصلی توسط مرد نامرئی
                    مطابق کد زیر
                    نمونه کدی را قرار نداده اید.
                    اوژن: به معنای افکننده و شکست دهنده است
                    دانایی، توانایی است-Knowledge is POWER
                    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                    دیدگاه


                      #55
                      پاسخ : کار با پورت و پین ها

                      نوشته اصلی توسط طراح
                      نمونه کدی را قرار نداده اید.
                      ببخشید فراموش کرده بودم . :mrgreen:

                      راستی مشکل نیز حل شد . دوستمون shahin2222 درست گفتن . پورت درست تعریف نشده بود . ولی نیم دونم چرا من از همین روشی که حالا مشکل داشتم توی یه پروژه دیگه استفاده کرده بودم اونم با xMEGA بود ولی اونجا مشکل رو نداشتم شایم اصلا متوجه اون نشدم نیم دونم بحر حال دیگه پیشم نیست که تستش کنم با تغییراتی در تعریف پین ها مشکلم شد . ممنون از همگی
                      این هم نمونه کد :

                      کد:
                      //--------------------------------------------------------------------------------------------------------
                      // --------------------------------------- Usings ---------------------------------------------------------
                      //--------------------------------------------------------------------------------------------------------
                      #include <avr/io.h>
                      #include <stdlib.h>
                      #include <stdio.h>
                      #include <avr/interrupt.h>
                      #include <string.h>
                      #include <avr/pgmspace.h>
                      #include <compat/twi.h>
                      
                      
                      //--------------------------------------------------------------------------------------------------------
                      // --------------------------------------- defines ---------------------------------------------------------
                      //--------------------------------------------------------------------------------------------------------
                      
                      #define Set(a, b) (a) |= (1 << (b))
                      #define Reset(a, b) (a) &= ~(1 << (b))
                      #define Output(a, b) (a) |= (1 << (b))
                      #define Input(a, b) (a) &= ~(1 << (b))
                      
                      //delay functions
                      #define F_CPU 16000000UL 		//Your clock speed in Hz
                      
                      //--------------------------------------------------------------------------------------------------------
                      // --------------------------------------- Ports ---------------------------------------------------------
                      //--------------------------------------------------------------------------------------------------------
                      
                      
                      
                      //-----------------delays---------------------------------------------------------
                      #define LOOP_CYCLES 8 				//Number of cycles that the loop takes
                      
                      #define fcpu_delay_us(num) delay_int(num/(LOOP_CYCLES*(1/(F_CPU/1000000.0))))
                      #define fcpu_delay_ms(num) delay_int(num/(LOOP_CYCLES*(1/(F_CPU/1000.0))))
                      
                      void delay_int(unsigned long delay);
                      //--------------------------------------------------------------------------------
                      
                      
                      
                      
                      //--------------------------------------------------------------------------------------------------------
                      // --------------------------------------- Functions --------------------------------------------------------
                      //--------------------------------------------------------------------------------------------------------
                      
                      void system_clocks_init(void);
                      
                      
                      
                      int XLED = 0;
                      
                      
                      int main(void)
                      {
                      	system_clocks_init();
                      	
                      	
                      	
                      	PORTJ.DIR = 0xFF;
                      	PORTJ.OUT = 0xFF;
                      	
                      	
                      	
                      	
                      	while(1)
                      	{
                      		if(XLED==0)
                      		{
                      			
                      			
                      				PORTJ.OUT = 0xFF;
                      			XLED = 1;
                      		}
                      		else
                      		{
                      			
                      			PORTJ.OUT = 0x00;
                      			XLED = 0;
                      		}
                      		
                      		fcpu_delay_ms(4000);
                      	}
                      }
                      
                      
                      void delay_int(unsigned long delay)
                      {
                      	while(delay--) asm volatile("nop");
                      };
                      
                      // 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;
                      }
                      - به دنبال فرصت عمري تباه کردم ! فرصت جواني ام بود من اشتباه کردم .

                      دیدگاه


                        #56
                        پاسخ : کار با پورت و پین ها

                        سلام به همه ی اساتید مخصوصا استاد کی نژاد
                        من موارد زیرو میخوام تو یه پروژه استفاده کنم،آیا میشه این موارد روی پایه هایی که دلم بخواد از نظر ورودی خروجی دیجیتال و آنالوگ بذارم یا شرایط داره و روی پایه های خاص باید بذارم؟تو سایر میکرو های AVR و یکی دو نوع PIC مشکل نداشتم،ولی الان که میخوام از XMEGA استفاده کنم ترسیده شدم تاپیکو دیدم
                        کیپد،lcd128x240،تاچ اسکرین،سنسور SMT160،سروو،DS1307،دوتا پورت سریالUART،و حدود 20 تا I/O
                        یه سوال دیگه اینکه پایه های تغذیه آنالوگ برای استفاده از ADC برای تاچ اسکرین مثه سری های قبلی(فیلتر LC) وصل میشه؟
                        ممنون میشم پاسخ بدین
                        انحصار طلبي علمي در دنياي امروز جايگاهي ندارد،بياييد تا دانسته هاي خود را هرچند اندک؛با ديگران به اشتراک بگذاريم...
                        فرهنگ و تمدن بي همتاي ايرانيان به سبب حمله ي وحشيانه مغولان نابود شد،امروز نوبت من و توست که با انتشار دانسته هاي خود ايران را به جايگاه بي همتاي گذشته باز گردانيم.

                        پيامبر اکرم(ص)فرمودند بهترين مردم کساني هستند که خيرشان به ديگران برسد.

                        دیدگاه


                          #57
                          پاسخ : کار با پورت و پین ها

                          در مواردی که فقط عملکرد دیجیتال به عنوان یک I/O عمومی مورد نظر باشد، از هر پینی می توانید استفاده کنید. اما در صورت نیاز به سخت افزارهای جانبی داخلی مانند usart و adc و dac فقط پین های مرتبط با این سخت افزارها قابل استفاده است (فهرست این پین ها در انتهای Datasheet مرتبط با شماره مورد استفاده قابل دسترس است). برای AVcc هم ترجیحا بهتر است فیلتر پائین گذری را قرار دهید.
                          اوژن: به معنای افکننده و شکست دهنده است
                          دانایی، توانایی است-Knowledge is POWER
                          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                          دیدگاه


                            #58
                            پاسخ : کار با پورت و پین ها

                            متشکرم،2تا سوال دیگه،
                            آیا برای اتصال DS1307 نیاز هست ولتاژ پایه های SDA و SCL کاهش پیدا کنند یا فقط به 3.3 پول پ شوند کافیه؟
                            پایه آنالوگی که Vref هست آیا نیازه با خازن 100 نانو زمین بشه؟از ADC فقط جهت اتصال تاچ اسکرین فقط میخوام استفاده کنم
                            ممنونم
                            انحصار طلبي علمي در دنياي امروز جايگاهي ندارد،بياييد تا دانسته هاي خود را هرچند اندک؛با ديگران به اشتراک بگذاريم...
                            فرهنگ و تمدن بي همتاي ايرانيان به سبب حمله ي وحشيانه مغولان نابود شد،امروز نوبت من و توست که با انتشار دانسته هاي خود ايران را به جايگاه بي همتاي گذشته باز گردانيم.

                            پيامبر اکرم(ص)فرمودند بهترين مردم کساني هستند که خيرشان به ديگران برسد.

                            دیدگاه


                              #59
                              پاسخ : کار با پورت و پین ها

                              برای استفاده از I2C اگر سنسور شما 5 ولت هست باید یک مقاومت 330 اهم روی خطوط i2c قرار دهید تا میکروکنترلر آسیب نبیند. البته مدارات دیگری هم برای این منظور وجود داره اما ساده ترین این مدار ها همین هست.

                              دیدگاه


                                #60
                                پاسخ : کار با پورت و پین ها

                                نوشته اصلی توسط sadeghmojtabaei
                                برای استفاده از I2C اگر سنسور شما 5 ولت هست باید یک مقاومت 330 اهم روی خطوط i2c قرار دهید تا میکروکنترلر آسیب نبیند. البته مدارات دیگری هم برای این منظور وجود داره اما ساده ترین این مدار ها همین هست.
                                ممنون،آخه 2 طرفست،ازون طرف هم 3.3 ولت کاهش پیدا میکنه و همچنین یک مقاومت پول پ هم موجوده
                                آیا نیازه در یک محیط نسبتا نویز دار برای همه پایه های تغذیه خازن 100 نانو بذارم؟
                                انحصار طلبي علمي در دنياي امروز جايگاهي ندارد،بياييد تا دانسته هاي خود را هرچند اندک؛با ديگران به اشتراک بگذاريم...
                                فرهنگ و تمدن بي همتاي ايرانيان به سبب حمله ي وحشيانه مغولان نابود شد،امروز نوبت من و توست که با انتشار دانسته هاي خود ايران را به جايگاه بي همتاي گذشته باز گردانيم.

                                پيامبر اکرم(ص)فرمودند بهترين مردم کساني هستند که خيرشان به ديگران برسد.

                                دیدگاه

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