اطلاعیه

Collapse
No announcement yet.

درگاه GPIO چیست؟

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

    درگاه GPIO چیست؟

    سلام

    من تو um دیسکاوری دیدم یه سری رو GPIO زده

    یعنی چی؟ دوستان در این مورد توضیح میدید؟

    ممنون

    #2
    پاسخ : درگاه GPIO چیست؟

    پورت های ورودی خروجی همه منظوره. شما راحت میتونید صفر یا یک کنیدشون یا مثلا به یه چیز دیگه مثل LCD وصل کنید و اون رو راه اندازی کنید. این مصرف جز عام ترین حالت پایه های میکروست.
    [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

    دیدگاه


      #3
      پاسخ : درگاه GPIO چیست؟

      سرنام General Purpose Input/Output

      دیدگاه


        #4
        پاسخ : درگاه GPIO چیست؟

        ببخشید میشه راجع به انواعورودی و خروجی های دیگه هم یه توضیحی بدین ... یعنی بگید این GPIO ها که همه منوره هستن با بقیه I/O ها چه فرقی دارند؟ کلا چند نوع I/O داریم و توضیحات تکمیلی ...

        ممنونم

        دیدگاه


          #5
          پاسخ : درگاه GPIO چیست؟

          وقتی از یک پایه GPIO استفاده میکنی یعنی مستقیما خودت ورودی یا خروج را 0 یا 1 میکنی در غیر اینصورت از همون پایه میتونی به عنوان peripheral استفاده کنی مثلا spi pwm usart همون پایه است فقط اسم کاربردیش فرق میکنه

          دیدگاه


            #6
            پاسخ : درگاه GPIO چیست؟

            وقتی پایه رو به یکی از حالت هایی که گفتین تغییر بدیم چقدر تفاوت میکنه؟

            یعنی مثلا پایه ای که از GPIO به PWM تغییر وضغیتش میدیم ، خود میکرو یه سری کد واسه پایه اضافه میکنه؟ یا مثلا یه سری توابع واسش تعریف میکنه و ما با اون توابع کار میکنیم جای اینکه مستقیم با پایه کار کنیم؟

            یکم بیشتر توضیح (ترجیحا با مثال کد برنامه) میتونید بزنید؟


            با تشکر

            دیدگاه


              #7
              پاسخ : درگاه GPIO چیست؟

              gpio یعنی اون پایه ورودی یا خروجی باشه مثلا خروجی پورت B پایه های 20 و 21 و 22 و 23 ، اولش پورت را فعال میکنیم تا کلاک و تغذیه اش وصل بشه.
              *AT91C_PIOB_PER=(1<<20|1<<21|1<< 22|1<<23);
              حالا ریجستر های مربوط به خرجی رو مقدار دهی میکنیم یعنی 4 پایه خروجی بشه
              *AT91C_PIOB_OER=(1<<20|1<<21|1<< 22|1<<23);
              حال اونها را ست میکنیم یعنی 1 یا ولتاژ می دهیم
              *AT91C_PIOB_SODR=(1<<20|1<<21|1<&lt ;22|1<<23);
              همین 3 خط را تو تابع main بنویسی و بریزی رو میکرو اگه LED به این پایه ها وصل کنی میبینی روشن میشه. اگه خاستی خاموش بشه باید پین رو ریست کنی
              *AT91C_PIOB_CODR=(1<<20);
              خاموش کردن پین 20


              Peripheral

              ولی وقتی از یک peripheral استفاده میکنی لازم نیست هرلحظه خودت پایه ها رو 0 و 1 کنی مثلا وقتی میخوای داده ای را ارسال کنی. کافیه که داده را در ریجستر مربوطه بذاری و دستور ارسال بدی
              البته GPIO کلا به پایه هایی گفته میشه که در حالت ورودی یا خروجی میشه ازش استفاده کرد که یه معیاره بذا اینکه بدونیم یک میکرو چند پایه داره که ازش میشه در ارسال و دریافت استفاده کرد بقیه پایه ها هم که تغذیه و ریست میکرو و ... است چند تا مثالم گذاشتم نگا کنی سابر پریفرالا رو میبینی فقط باید اسم ریجسترا شونو بدونی تا یفهمی کدوم رو فعال کردم


              #include <at91sam7X512.h>
              int main ()
              {

              //-----------------------------------------------------
              *AT91C_PMC_PCER = (1<<AT91C_ID_PWMC); // AT91C_ID_PWMC=10
              //-----------------------------------------------------
              *AT91C_PIOB_PDR = (1<<19);
              پین 19 غیر فعال میشه تا از پریفرال اون پین که pwm است استفاده بشه
              *AT91C_PIOB_ASR = (1<<19);

              مقدار دهی به ریجسترا جهت تنظیم pwm

              *AT91C_PWMC_CH0_CMR = 0x202;
              *AT91C_PWMC_CH0_CPRDR = 250;
              *AT91C_PWMC_CH0_CDTYR = 25;
              *AT91C_PWMC_ENA = 1;
              while(1);
              }

              توصیه میکنم مجله شماره 2 PMM رو بخونی در این مورده
              http://www.iranmicro.ir/forum/forumdisplay.php?f=203

              دیدگاه

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