یکی از نکات مهم در مورد ESP32 این است که GPIO های آن بسیار بیشتر از ESP8266 است. شما مجبور نخواهید بود که پین های IO خود را مالتیپلکس کنید یا ترفند خاصی استفاده کنید. چند نکته وجود دارد که باید مراقب آنها باشید، بنابراین لطفاً PinOut را با دقت بخوانید.
نکته:لطفاً توجه داشته باشید که مرجع PinOut زیر برای برد توسعه ESP32 devkit v1 با 30 پین است.
نکته:همه پینها در همه بردهای توسعه ESP32 بیرون کشیده نشده اند(بدین معنی که به پین های هدر متصل نشده اند در ادامه با توضیحات بیشتر متوجه این مفهئم خواهید شد)، اما هر پین خاص بدون توجه به برد توسعهای که استفاده میکنید یکسان عمل میکند.
ESP32 Peripherals and I/O
اگرچه ESP32 در مجموع دارای 48 پین GPIO است، اما تنها 25 عدد از آنها به هدرهای پین در دو طرف برد توسعه متصل شده است. این پین ها را می توان به انواع وظایف جانبی اختصاص داد، از جمله:
- 15 کانال SAR ADCهای 12 بیتی. محدوده ADC را می توان در سیستم عامل روی 0-1ولت یا 0-1.4ولت یا 0-2 ولت یا 0-4ولت تنظیم کرد.
- 2 رابط UART. یکی برای بارگذاری کد به صورت سریال استفاده می شود. آنها دارای کنترل جریان هستند و از IrDA نیز پشتیبانی می کنند!
- 25 کانال پین PWM برای کاهش نور LED یا کنترل موتورها.
- DAC های 8 بیتی برای تولید ولتاژ آنالوگ واقعی.
- 3 رابط SPI و 1 رابط I2C برای اتصال انواع حسگرها و تجهیزات جانبی وجود دارد.
- 9 GPIO دارای حسگر لمسی خازنی هستند.
به لطف ویژگی مالتی پلکس کردن پین ESP32 (چند دستگاه جانبی روی یک پایه GPIO مالتی پلکس شده اند). به این معنی که یک پین GPIO می تواند به عنوان ورودی ADC / خروجی DAC / پد لمسی عمل کند.
شما می توانید اطلاعات گسترده ای در مورد ESP32 از دیتاشیت دریافت کنید.
ESP32 Pinout
برد توسعه ESP32 در مجموع دارای 30 پین است که آن را به دنیای خارج متصل می کند. برای سادگی، پین هایی با عملکرد مشابه با هم گروه بندی می شوند. پین اوت به شرح زیر است:
اجازه دهید پین های ESP32 و عملکرد آنها را یک به یک با جزئیات بیشتر تجزیه و تحلیل کنیم.
GPIO Pins
برد توسعه ESP32 دارای 25 پین GPIO است که میتوان آنها را به صورت برنامهنویسی به عملکردهای مختلف اختصاص داد. هر GPIO دیجیتال فعال را می توان به pull-up داخلی یا pull-down داخلی یا روی امپدانس بالا تنظیم کرد.
استفاده از کدام ESP32 GPIO ایمن است؟
از آنجایی که ESP32 پین های زیادی با عملکردهای خاص دارد، ممکن است برای پروژه های شما مناسب نباشند. جدول زیر نشان می دهد که کدام پین ها برای استفاده بی خطر هستند و کدام پین ها قبل از استفاده نیاز به توجه بیشتری دارند.
برای راحتی شما، در اینجا تصویری وجود دارد که نشان می دهد کدام پین های GPIO برای استفاده ایمن هستند.
GPIO هایی که فقط باید بصورت ورودی تعریف شوند
پینهای GPIO34، GPIO35، GPIO36(VP) و GPIO39(VN) را نمیتوان بهعنوان خروجی پیکربندی کرد، میتوان از آنها به عنوان ورودی دیجیتال، ورودی آنالوگ یا برای اهداف منحصر به فرد دیگر استفاده کرد. همچنین توجه داشته باشید که آنها مانند سایر پینهای GPIO دارای pull-down یا pull-up داخلی نیستند.
همچنین پین های GPIO36(VP) و GPIO39(VN) بخشی جدایی ناپذیر از پیش تقویت کننده فوق العاده کم نویز (low-noise pre-amplifier) برای ADC هستند که به پیکربندی زمان نمونه برداری و نویز pre-amplifier کمک می کنند.
Pin های مربوط به اینتراپت (ESP32 Interrupt Pins)
همه GPIO ها را می توان به عنوان وقفه پیکربندی کرد.
پین های ADC
ESP32 دارای پانزده کانال ورودی ADC 12 بیتی است. اینها GPIO هایی هستند که می توانند برای تبدیل ولتاژ آنالوگ روی پین به عدد دیجیتال استفاده شوند.
ADC در ESP32 یک ADC 12 بیتی است به این معنی که توانایی تشخیص 4096 (212) سطوح آنالوگ گسسته را دارد. به عبارت دیگر، ولتاژهای ورودی بین 0 و ولتاژ کاری 3.3 ولت را به مقادیر صحیح بین 0 و 4095 ترسیم می کند. به عنوان مثال، این وضوح بین 3.3 ولت / 4096 واحد یا 0.0008 ولت (0.8 میلی ولت) در هر واحد را نشان می دهد.
شما همچنین می توانید وضوح ADC و محدوده ADC کانال های خود را به صورت کد تنظیم کنید.
نکته:وقتی Wi-Fi فعال است نمی توان از پین های ADC2 استفاده کرد. اگر پروژه شما به Wi-Fi نیاز دارد، به جای آن از پین های ADC1 استفاده کنید.
پین های DAC
ESP32 دارای دو کانال DAC 8 بیتی است که می توان از آنها برای تبدیل سیگنال های دیجیتال به ولتاژ آنالوگ واقعی استفاده کرد. می توان از آن به عنوان “پتانسیومتر دیجیتال” برای کنترل دستگاه های آنالوگ استفاده کرد.
این dual-DAC در ESP32 دارای وضوح 8 بیتی است، به این معنی که مقادیر بین 0 تا 256 ولتاژ آنالوگ بین 0 تا 3.3 ولت تولید می کند.
پین های Touch
ESP32 دارای 9 GPIO لمسی خازنی است. هنگامی که یک بار خازنی (مانند انگشت انسان) در مجاورت GPIO باشد، ESP32 تغییر در ظرفیت خازنی را تشخیص می دهد.
این پین ها را می توان با اتصال به هر جسم رسانایی مانند سیم، نخ، فویل، پارچه، رنگ رسانا و غیره به راحتی به یک تاچ پد تبدیل کرد. مورد استفاده قرار گیرد.طبیعت کم نویز طراحی و حساسیت بالای مدار امکان استفاده از پدهای نسبتاً کوچک را فراهم می کند.
از این پین های لمسی خازنی نیز می توان برای بیدار کردن ESP32 از خواب عمیق استفاده کرد.
پین های SPI
پینهای SPI ESP32 دارای سه SPI (SPI، HSPI و VSPI) در حالتهای Slave و Master است. این SPIها همچنین از ویژگی های SPI همه منظوره زیر پشتیبانی می کنند:
- 4 حالت زمان بندی انتقال فرمت SPI
- تا 80 مگاهرتز و کلاک های تقسیم شده 80 مگاهرتز
- حداکثر 64 بایت FIFO
نکته: فقط VSPI و HSPI رابط های SPI قابل استفاده هستند و سومین گذرگاه SPI توسط تراشه حافظه فلش یکپارچه استفاده می شود. کتابخانه های استاندارد معمولا از پین های VSPI بین این دو استفاده می کنند.
HSPI در مقابل VSPI
گاهی اوقات HSPI به اشتباه به عنوان SPI “سخت افزار” و VSPI به عنوان “مجازی” یا “نرم افزار” SPI تعبیر می شود. اگرچه در واقعیت همه آنها به یک شکل کار می کنند!
پین هایI2C
ESP32 دارای یک گذرگاه I2C است که به شما امکان می دهد تا 112 سنسور و تجهیزات جانبی را متصل کنید. پین های SDA و SCL به طور پیش فرض به پین های زیر اختصاص داده می شوند. با این حال، می توانید با دستور wire.begin (SDA, SCL) پروتکل I2C را روی هر پایه GPIO بیت بنگ کنید.
پین های UART
ESP32 دارای 2 رابط UART یعنی UART0 و UART2 است که ارتباط ناهمزمان (asynchronous) برای (RS232 و RS485) و پشتیبانی از IrDA را فراهم می کند و تا 5 مگابیت بر ثانیه ارتباط برقرار می کند.
- پین های UART0 به مبدل USB به سریال متصل می شوند و برای فلش و رفع اشکال استفاده می شوند. بنابراین استفاده از پین های UART0 توصیه نمی شود.
- از طرف دیگر، UART2 پین های Serial1 اضافی هستند و به مبدل USB به سریال متصل نیستند. این بدان معنی است که می توانید از آنها برای اتصال به دستگاه های UART مانند GPS، حسگر اثر انگشت و غیره استفاده کنید.
پین PWM
این برد دارای 25 کانال (تقریبا همه پین های GPIO) پین های PWM است که توسط کنترلر مدولاسیون عرض پالس (PWM) کنترل می شود. خروجی PWM را می توان برای رانندگی Drive موتورهای DC و LED استفاده کرد.
کنترلر از تایمرهای PWM و اپراتور PWM تشکیل شده است. هر تایمر زمان بندی را به صورت همزمان یا مستقل ارائه می دهد و هر اپراتور PWM شکل موج یک کانال PWM را تولید می کند
پین های RTC GPIO
برخی از GPIO ها به زیرسیستم کم مصرف RTC هدایت می شوند که به آنها RTC GPIO می گویند. اینها پینهای ویژهای هستند که برای خارج کردن ESP32 از حالت Sleep زمانی که پردازنده کمکی Ultra Low Power (ULP) در حال کار است استفاده میشود. GPIO های زیر می توانند به عنوان منابع بیدار شدن خارجی (external wake up sources) استفاده شوند.
Power Pins
دو پایه Power وجود دارد یعنی پین VIN و پایه 3.3 ولت. اگر منبع ولتاژ 5 ولتی دارید، می توان از پین VIN برای تامین مستقیم ESP32 و لوازم جانبی آن استفاده کرد. پایه 3.3 ولت خروجی یک ولتاژ روی برد است. از این پین می توان برای تامین تغذیه قطعات خارجی استفاده کرد. GND یک پایه زمین از برد توسعه ESP32 است.
Enable Pin
پین EN برای فعال کردن ESP32 استفاده می شود. تراشه با HIGH فعال می شود. هنگامی که این پین LOW می شود، تراشه با حداقل قدرت کار می کند.
ترجمه از سایت : https://lastminuteengineers.com/esp32-pinout-reference/
آخرین دیدگاهها