اطلاعیه

Collapse
No announcement yet.

Pullup

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

    #31
    پاسخ : Pullup

    4.7K بذاری جواب میده. 10K هم جواب میده

    دیدگاه


      #32
      پاسخ : Pullup

      سلام یه سوال این pull up رو فعال میخوان بکنن برنامش طوره خاصیه؟ مثلا من دیدم مینویسن portb=0x03 این عدد 03 چرا جاش 02 نذاشتن؟؟؟ :question:

      دیدگاه


        #33
        پاسخ : Pullup

        نوشته اصلی توسط galaxyboy
        سلام یه سوال این pull up رو فعال میخوان بکنن برنامش طوره خاصیه؟ مثلا من دیدم مینویسن portb=0x03 این عدد 03 چرا جاش 02 نذاشتن؟؟؟ :question:
        با سلام
        ببینید این مدار معادل ساده شده یک پورت i/o هست :


        و طبق جدول زیر ما میتونیم ورودی بودن ، خروجی بودن ، پول پ بودن ، های امپدانس بودن، صفر بودن ، یک بودن پورت رو تعیین کنیم :


        به عنوان مثال :

        unsigned char i;
        ...
        /* Define pull-ups and set outputs high */
        /* Define directions for port pins */
        PORTB = (1<<PB7)|(1<<PB6)|(1<<PB1)|(1&lt ;<PB0);
        DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1 <<DDB0);
        /* Insert nop for synchronization*/
        _NOP();
        /* Read port pins */
        i = PINB;
        ...


        حالا مثلا اونچیزی که شما نوشتید :
        portb=0x03 این یعنی بیت صفر و یک رجیستر PORTB یک بشن و بقیه بیت هاش صفر
        خوب طبق جدول بالا این میتونه حداقل 4 تا معنی داشته باشه :
        1. اگر این دو پایه به صورت ورودی باشند یعنی بیت صفر و یک ، رجیستر DDRB صفر باشند و بقیه بیت هاش هم صفر باشند داریم : پایه های PB0 ,PB1 میکرو به صورت ورودی و در حالت پول پ تنظیم شده اند و بقیه پایه های پورت B نیز به صورت ورودی اما در حالت های امپدانس هستند
        2.اگر این دو پایه به صورت ورودی باشند یعنی بیت صفر و یک ، رجیستر DDRB صفر باشند و بقیه بیت هاش هم یک باشند داریم : پایه های PB0 ,PB1 میکرو به صورت ورودی و در حالت پول پ تنظیم شده اند و بقیه پایه های پورت B نیز به صورت خروجی و صفر هستند
        3.اگر این دو پایه به صورت خروجی باشند یعنی بیت صفر و یک ، رجیستر DDRB یک باشند و بقیه بیت هاش هم صفر باشند داریم : پایه های PB0 ,PB1 میکرو به صورت خروجی و یک هستند و بقیه پایه های پورت B نیز به صورت ورودی اما در حالت های امپدانس هستند
        4. اگر این دو پایه به صورت خروجی باشند یعنی بیت صفر و یک ، رجیستر DDRB یک باشند و بقیه بیت هاش هم یک باشند داریم : پایه های PB0 ,PB1 میکرو به صورت خروجی و یک هستند و بقیه پایه های پورت B نیز به صورت خروجی و صفر هستند .

        دیدگاه


          #34
          پاسخ : Pullup

          با سلام
          برای پین های ورودی که دارای عملکرد مشخصی هستند مانند rX/Tx, AIN0, AIN1, T0/T1 و ... آیا باید این پین ها را کانفیگ کرد یا خیر؟ و اینکه برای آنها باید Pull-up را روشن کنیم یا نه؟ به عنوان مثال وقتی میخواهیم تعداد پالس ها را از طریق T0 شمارش کنیم یا از طریق AIN دو ولتاژ را مقایسه کنیم یا از RX/TX برای ارتباط با کامپیوتر استفاده کنیم. در خیلی از برنامه ها دیدم که این پین ها را کانفیگ نمیکنند.
          با تشکر

          دیدگاه


            #35
            پاسخ : Pullup

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

            دیدگاه


              #36
              پاسخ : Pullup

              نوشته اصلی توسط ashaebani2002
              با سلام
              برای پین های ورودی که دارای عملکرد مشخصی هستند مانند rX/Tx, AIN0, AIN1, T0/T1 و ... آیا باید این پین ها را کانفیگ کرد یا خیر؟ و اینکه برای آنها باید Pull-up را روشن کنیم یا نه؟ به عنوان مثال وقتی میخواهیم تعداد پالس ها را از طریق T0 شمارش کنیم یا از طریق AIN دو ولتاژ را مقایسه کنیم یا از RX/TX برای ارتباط با کامپیوتر استفاده کنیم. در خیلی از برنامه ها دیدم که این پین ها را کانفیگ نمیکنند.
              با تشکر
              برای پین هایی که دارای عملکرد های خاصی هستند, در صورتی که رجیستر های مربوط به همون عملکرد خاصشون تنظیم نشده باشن که به صورت پیش فرض تنظیم نشدن, مثل پین های ورودی خروجی معمولی هستند و تفاتوتی خاصی ندارند. برای استفاده از این امکانات باید رحیسترهای مرتبطشون با توحه به توضیحات دیتاشیت تنظیم بشن.
              ای پادشه خوبان داد از غم تنهایی

              دل بی تو به جان آمد وقت است که باز آیی

              دیدگاه


                #37
                پاسخ : Pullup

                نوشته اصلی توسط darkknightrobo
                سلام دوستان
                ی سوال دارم
                این که گفتید اگه از مقاومت پول اپ استفاده نشه اون پین وضعیتش بین صفر ویک مشخص نیس دقیقا ینی چی؟
                اگر پینی که به حالت ورودی تعریف شده رو هوا باشه (به حایی وصل نباشه), مقدار ولتاژ اون پین مقدار نامشخصی بین 0 ولت تا 5 ولت (یا Vcc) خواهد داشت که این مقدار هم ثابت نیست و مدام تغییر پیدا می کنه که این امر باعث مشکلات زیر می تونه بشه:

                1- نویز پذیری میکرو رو افزایش می ده.

                2- با توججه به اینکه سطح ولتاژ پین مقدار نامشخص و متغیره, مقدار خونده شده ی اون پین توی برنامه کامل نا مشخص و نا معتبر خواهد بود (این که گفته می شه نا مشخص بین صفر و یک, به این معنا نیست که مثلا 0.7 می شه! در اصل مقدار اون یا صفره, یا یک! ولی این مقدار هیچ دلیل و منطق خاصی نداره و کاملا نامعتبر و به درد نخوره :angry

                3- با توجه با بافر دیجیتال پین, مقدار جریان مصرفی پین و در نتیحه میکرو افزایش پیدا می کنه.
                ای پادشه خوبان داد از غم تنهایی

                دل بی تو به جان آمد وقت است که باز آیی

                دیدگاه


                  #38
                  پاسخ : پاسخ : Pullup

                  نوشته اصلی توسط The Savior
                  اگر پینی که به حالت ورودی تعریف شده رو هوا باشه (به حایی وصل نباشه), مقدار ولتاژ اون پین مقدار نامشخصی بین 0 ولت تا 5 ولت (یا Vcc) خواهد داشت که این مقدار هم ثابت نیست و مدام تغییر پیدا می کنه که این امر باعث مشکلات زیر می تونه بشه:

                  1- نویز پذیری میکرو رو افزایش می ده.

                  2- با توججه به اینکه سطح ولتاژ پین مقدار نامشخص و متغیره, مقدار خونده شده ی اون پین توی برنامه کامل نا مشخص و نا معتبر خواهد بود (این که گفته می شه نا مشخص بین صفر و یک, به این معنا نیست که مثلا 0.7 می شه! در اصل مقدار اون یا صفره, یا یک! ولی این مقدار هیچ دلیل و منطق خاصی نداره و کاملا نامعتبر و به درد نخوره :angry

                  3- با توجه با بافر دیجیتال پین, مقدار جریان مصرفی پین و در نتیحه میکرو افزایش پیدا می کنه.
                  ممنون از پاسخگوییتون! ((:
                  میتونید بگید چرا این اتفاق میوفته؟؟ ینی چرا مقدار پین نامشخص و نامعتبره؟؟؟
                  آدم ها همه میپندارند که زنده اند،برای آنها تنها نشانه حیات بخار گرم نفس هایشان است!!
                  کسی از کسی نمیپرسد، آهای فلانی...
                  از خانه ی دلت چ خبر؟؟ گرم است؟؟ نوری دارد هنوز؟؟ ...

                  دیدگاه


                    #39
                    پاسخ : پاسخ : Pullup

                    نوشته اصلی توسط darkknightrobo
                    ممنون از پاسخگوییتون! ((:
                    میتونید بگید چرا این اتفاق میوفته؟؟ ینی چرا مقدار پین نامشخص و نامعتبره؟؟؟
                    فرض کن دو تا مقاومت رو به صورت سری بستیم و به دو سر اونها ولتاژی رو به صورت زیر اعمال کردیم, ولتاژ نقطه ی Vo در این صورت کاملاً وابسته به مقادیر E,R1,R2 خواهد بود. اما اگر این نقطه رو با مقاومت R3 به ولتاژ خاصی مثلا 3.7 ولت وصل کنیم, Vo مستقل از مقادیر R1,R2,E بوده و برابر با 3.7 ولت خواهد بود. البته باید در نظر بگیریم که R3 باید نسبت به R1,R2 خیلی کمتر باشد.



                    وصل کردن R3 در حقیقت همان pull-up کردنه. بدیهیه که مدار داخلی میکرو یک مدار کاملا پیچیدس و قابل مقایسه با این مداری که من گذاشتم نیست. توی میکرو پارامتهای بیشمار و پیچیده ای وجود دارن که همگی روی یک پورت روی آزاد تاثیر میذارن برا همین تعیین و پیش بینی مقدار پین آزاد عملا امکان پذیر نیست. اما با وصل کردن مقاومت pull-up این پین رو در زمانی که چیزی به اون وصل نشده باشه در مقدار ولتاژ Vcc نگه داشته و دارای مقدار منطقی 1 خواهد بود.
                    ای پادشه خوبان داد از غم تنهایی

                    دل بی تو به جان آمد وقت است که باز آیی

                    دیدگاه


                      #40
                      پاسخ : پاسخ : Pullup

                      نوشته اصلی توسط The Savior
                      فرض کن دو تا مقاومت رو به صورت سری بستیم و به دو سر اونها ولتاژی رو به صورت زیر اعمال کردیم, ولتاژ نقطه ی Vo در این صورت کاملاً وابسته به مقادیر E,R1,R2 خواهد بود. اما اگر این نقطه رو با مقاومت R3 به ولتاژ خاصی مثلا 3.7 ولت وصل کنیم, Vo مستقل از مقادیر R1,R2,E بوده و برابر با 3.7 ولت خواهد بود. البته باید در نظر بگیریم که R3 باید نسبت به R1,R2 خیلی کمتر باشد.

                      وصل کردن R3 در حقیقت همان pull-up کردنه. بدیهیه که مدار داخلی میکرو یک مدار کاملا پیچیدس و قابل مقایسه با این مداری که من گذاشتم نیست. توی میکرو پارامتهای بیشمار و پیچیده ای وجود دارن که همگی روی یک پورت روی آزاد تاثیر میذارن برا همین تعیین و پیش بینی مقدار پین آزاد عملا امکان پذیر نیست. اما با وصل کردن مقاومت pull-up این پین رو در زمانی که چیزی به اون وصل نشده باشه در مقدار ولتاژ Vcc نگه داشته و دارای مقدار منطقی 1 خواهد بود.
                      ممنون دوست من!!
                      ولی ی سوال!!! من خودم هنوو مدارو پاس نکردم و نمیدونستم چجوری اون قسمت 3.7 ولت میشد ولتاژ، برا همین از یکی از دوستانم که ارشد کنترله پرسیدم گف از روش جمع آثار استفاده شده و باز هم در این صورت منبع E موثره و باید اونو تاثیر داد
                      میشه توضیح بدید؟؟
                      آدم ها همه میپندارند که زنده اند،برای آنها تنها نشانه حیات بخار گرم نفس هایشان است!!
                      کسی از کسی نمیپرسد، آهای فلانی...
                      از خانه ی دلت چ خبر؟؟ گرم است؟؟ نوری دارد هنوز؟؟ ...

                      دیدگاه


                        #41
                        پاسخ : پاسخ : Pullup

                        نوشته اصلی توسط darkknightrobo
                        ممنون دوست من!!
                        ولی ی سوال!!! من خودم هنوو مدارو پاس نکردم و نمیدونستم چجوری اون قسمت 3.7 ولت میشد ولتاژ، برا همین از یکی از دوستانم که ارشد کنترله پرسیدم گف از روش جمع آثار استفاده شده و باز هم در این صورت منبع E موثره و باید اونو تاثیر داد
                        میشه توضیح بدید؟؟
                        جمع آثار جایی کاربرد داره که چندتا منبع داشته باشیم که این جا یه دونه منبع داریم اگه داشتیمم ربطی به موضوع مورد بحث نداشت.

                        Vo در صورتی که مدار به همین شکل باشه, با استفاده از تقسیم مقاومتی بدست میاد, یعنی:
                        کد:
                        Vo=E*R2/(R1+R2)
                        همون طور که می بینی وابسته به سه تا پارامتریه که فبلا گفتم, ولی اگه یه دونه مقاومت R3 داشته باشیم که یه سرشو وصل کنیم به Vo و سر دیگشو وصل کنیم به یه ولتاژی مثلاً Vi, در صورتی که مقدار مقاومت R3 از R1 و R2 خیلی کمتر باشه (حداقل یک چهارم), Vo همان Vi خواهد بود. (البته قضیه به همین سادگیام نیست و برای همچین مداری که من گذاشتم pull-up نیازی نیست و کاربردی هم نداره, ولی نخواستم یه مدار پیچیده بذارم که خودمم سر در نیارم ازش )

                        اون 3.7 که گفتم یه مقدار فرضی برای Vi هستش.

                        یه موضوع کلی هم که توی بحث های مهندسی وجود داره, بحث "صرف نظر" کردنه! :NO: در این که چه pull-up داشته باشیم چه نداشته باشیم E روی Vo تاثیر خواهد داشت شکی نیست, اما اگر pull-up به صورتی که بالا توضیح دادم داشته باشیم, تاثیر E روی Vo انقد کم خواهد بود که بتونیم ازش صرف نظر کنیم.
                        ای پادشه خوبان داد از غم تنهایی

                        دل بی تو به جان آمد وقت است که باز آیی

                        دیدگاه

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