- Вступ до ESP8285
- Схема дошки розробки ESP
- Виготовлення нашої плати для розробників ESP8285
- Замовлення друкованої плати з PCBWay
- Складання та програмування плати ESP8285
- Тестування за допомогою простого світлодіодного ескізу
- Тестування ескізу веб-сервера на ESP8285
Контролери ESP від Espressif стають широко популярним вибором для дизайну на основі IoT. На ринку вже доступно багато видів модулів ESP та плат розвитку, серед яких NodeMCU є найбільш популярним. Окрім цього, ESP-12E, ESP01 також є популярним вибором. Але якщо ви хочете зробити свій дизайн більш гнучким і компактним, швидше за все, нам доведеться розробляти власний модуль ESP на рівні мікросхеми, а не безпосередньо використовувати легко доступний модуль. У цій статті ми дізнаємося, як розробити схему та друковану плату для безпосереднього використання контролерів ESP (ESP8285) без використання модуля.
У цьому проекті ми використовували ESP8285, оскільки це дуже цікавий маленький чіп. Це крихітний SoC (система на чіпі), з IoT (Інтернет речей) і можливостями глибокого сну. Він має таку ж потужність, як його старший брат ESP8266, і в якості бонусу він має вбудовану флеш-пам'ять об'ємом 1 МБ з великою кількістю GPIO. Ви також можете використовувати ESP8266 як альтернативу, і більшість речей, які обговорюються в цій статті, будуть незмінними.
У попередній статті я показав вам, як ви можете розробити власну антену на друкованій платі для частоти 2,4 ГГц, використовуючи той самий чіп ESP8285 як приклад. Ви можете прочитати цю статтю, щоб дізнатись про дизайн антени для ESP8266 / ESP8285.
Тож у цій статті я розповім про те, як працюють всі схеми, і нарешті з’явиться відео, що все це пояснює. Я також детально описав повну процедуру проектування та замовлення плат друкованих плат із PCBWay для проектування нашого модуля ESP.
Вступ до ESP8285
Якщо ви не знаєте про цей універсальний чіп ESP8285, ось коротке пояснення зі списком функцій. ESP8285 - це невеликий чіп із вбудованим спалахом 1 Мб і оперативною пам'яттю, він дуже схожий на модуль ESP8286, ESP-01, але внутрішня флеш-пам'ять робить його набагато компактнішим і дешевшим.
У цьому чіпі розміщений 32-розрядний ядерний процесор L106 Diamond від Tensilica, те саме стосується і ESP8266, тому весь код ESP8266 може бути прошитий безпосередньо на цей чіп без будь-яких модифікацій, і він має той самий мережевий стек, що і доза ESp8266..
ESP8285 інтегрує антенні вимикачі, радіочастотний сигнал, підсилювач потужності, підсилювач з низьким рівнем шуму, фільтри та модулі управління живленням. Компактна конструкція мінімізує розмір друкованої плати і вимагає мінімальних зовнішніх схем. Якщо ви хочете дізнатись більше про цю мікросхему, ви завжди можете перевірити таблицю даних ESP8285 пристрою в Espressif Systems.
Схема дошки розробки ESP
Схема дуже проста, і я розбив її для кращого розуміння. Нижче наведена схема ESP показує всю схему, як ви можете бачити, є вісім функціональних блоків, я пройдусь по кожному з них і поясню кожен блок.
ESP8285 SOC:
Основою проекту є SoC ESP8285, тут визначено всі GPIO та інші необхідні з'єднання.
Фільтр живлення: На цьому мікросхемі є 7 штифтів живлення, спочатку це штифт живлення для АЦП та входів / виходів. Я коротко їх замкнув і використовую конденсатор фільтра потужності 47 мкФ та конденсатор роз'єднання 0,1 мкФ для фільтрації вхідного струму 3,3 В постійного струму.
PI-фільтр: PI-фільтр є одним з найважливіших блоків цієї конструкції, оскільки він відповідає за живлення РЧ-підсилювача та LNA, будь-який внутрішній або зовнішній шум може бути описовим для цього розділу, тому для цього РЧ-розділ не працюватиме. Ось чому фільтр низьких частот для ділянки LNA дуже важливий. Ви можете дізнатись більше про фільтри PI, перейшовши за посиланням.
Кристалічний генератор: Кристалічний генератор частотою 40 МГц служить джерелом тактової частоти для SoC ESP8285, а конденсатори роз'єднання 10 пФ були додані відповідно до рекомендацій таблиці.
Розділ LNA: Іншим найважливішим розділом цього ланцюга є розділ LNA; тут антена друкованої плати підключається до фізичного виводу ESP. Як рекомендовано в технічному паспорті, використовується конденсатор 5,6 пФ, який повинен працювати точно так само, як і схема узгодження. Але я додав два заповнювачі для двох котушок індуктивності, ніби на випадок, якщо відповідна схема розбіжностей спрацьовує, я завжди можу вкласти деякі котушки індуктивності, щоб налаштувати значення відповідно до імпедансу антени.
У секції LNA також є два перемички для друкованої плати з роз'ємом UFL. Антена друкованої плати встановлена за замовчуванням, але якщо для вашої програми потрібен трохи більший діапазон, ви можете відпаяти перемичку друкованої плати та коротко затягнути перемичку для роз'єму UFL, а можна підключити зовнішню антену просто так.
Вхідний роз'єм акумулятора:
Ви можете бачити вище, я поставив три типи роз'ємів акумулятора паралельно, тому що якщо вам не вдалося знайти один, ви завжди можете поставити інший.
Заголовки GPIO та заголовки програмування:
Заголовки GPIO доступні для доступу до виводів GPIO, а заголовок програмування - для прошивання основного Soc.
Схема автоматичного скидання:
У цьому блоці, два транзистори NPN, MMBT2222A формує схему автоматичного скидання, коли ви натискаєте кнопку завантаження в IDE Arduino, інструмент python отримує виклик, цей інструмент python є інструментом flash для пристроїв ESP, цей інструмент pi дає сигнал на перетворювач UART для скидання плати, утримуючи штифт GPIO на землі. Після цього починається процес завантаження та перевірки.
Світлодіод живлення, вбудований світлодіод і дільник напруги:
Світлодіод живлення: світлодіод живлення має перемичку з друкованої плати. Якщо ви використовуєте цю плату як для роботи на батареях, ви можете припаяти цю перемичку, щоб заощадити трохи енергії.
Вбудований світлодіод: Багато розробницьких плат на ринку мають вбудований світлодіод, і ця плата не є винятком; GPIO16 ІС підключений до вбудованого світлодіода. Поряд з цим, є заповнювач для резистора 0 ОМ, заповнивши резистор 0 Ом, ви підключаєте GPIO16 до скидання, і, як ви, можливо, знаєте, це дуже важливий крок для переведення ESP в режим глибокого сну.
Дільник напруги: Як ви вже знали, максимальна вхідна напруга АЦП становить 1 В. Отже, для зміни діапазону входу на 3,3 В використовується дільник напруги. Конфігурація зроблена так, що ви завжди можете послідовно додати резистор до штиря, щоб змінити діапазон на 5 В.
HT7333 LDO:
Для регулювання напруги на ESP8285 від акумулятора з мінімальними втратами потужності використовується регулятор напруги LDO або низької напруги.
Максимальна вхідна напруга HT7333 LDO становить 12 В, і вона використовується для перетворення напруги акумулятора на 3,3 В, я вибрав цей HT7333 LDO, оскільки це пристрій з дуже низьким струмом спокою. Конденсатори роз'єднання 4,7 мкФ використовуються для стабілізації LDO.
Кнопка для режиму програмування:
Кнопка підключена до GPIO0, якщо ваш перетворювач UART не має штифта RTS або DTR, ви можете використовувати цю кнопку, щоб вручну потягнути GPIO0 на землю.
Резистори витягування та витягування:
Резистори для витягування та витягування є там, як рекомендовано в технічному паспорті.
Крім цього, під час проектування друкованої плати дотримувались багатьох конструктивних норм та рекомендацій. Якщо ви хочете дізнатись більше про це, ви можете знайти це в посібнику з апаратного проектування ESP8266.
Виготовлення нашої плати для розробників ESP8285
Схематична схема виконана, і ми можемо продовжувати викладку друкованої плати. Ми використовували програмне забезпечення для проектування друкованих плат Eagle для виготовлення друкованих плат, але ви можете спроектувати друковану плату за допомогою бажаного програмного забезпечення. Наш дизайн друкованої плати виглядає так, коли він закінчений.
Файли BOM та Gerber можна завантажити за такими посиланнями:
- ESP8282 Розробничі файли Gerber
- ESP8282 специфікація плати розробника
Тепер, коли наш дизайн готовий, настав час виготовити друковані плати з використанням. Для цього просто виконайте наведені нижче дії.
Замовлення друкованої плати з PCBWay
Крок 1: Зайдіть на https://www.pcbway.com/, підпишіться, якщо це ваш перший раз. Потім на вкладці Прототип друкованої плати введіть розміри вашої друкованої плати, кількість шарів та кількість друкованої плати, яка вам потрібна.
Крок 2: Продовжуйте, натискаючи кнопку "Процитувати зараз". Ви потрапите на сторінку, де можна встановити кілька додаткових параметрів, таких як тип плати, шари, матеріал для друкованої плати, товщина та багато іншого, більшість із них вибрано за замовчуванням, якщо ви вибрали якісь конкретні параметри, ви можете вибрати це в чути.
Як бачите, нам потрібні були наші друковані плати чорного кольору! отже, я вибрав чорний колір у розділі кольору припою.
Крок 3: Останнім кроком є завантаження файлу Gerber і продовження платежу. Щоб переконатися, що процес безперебійний, PCBWAY перевіряє, чи справді ваш файл Gerber, перш ніж продовжувати оплату. Таким чином, ви можете бути впевнені, що ваша друкована плата друкована до виготовлення і зв’яжеться з вами як докладена.
Складання та програмування плати ESP8285
Через кілька днів ми отримали нашу друковану плату в акуратній упаковці, і якість друкованої плати була як завжди хорошою. Верхній і нижній шар дошки показані нижче:
Отримавши дошку, я відразу ж почав паяти дошку. Я використовував паяльну станцію для гарячого повітря та багато припою, щоб припаяти основний процесор, а інші компоненти на друкованій платі спаяні за допомогою паяльника. Зібраний модуль показано нижче.
Після цього я підключив свій надійний модуль FTDI для тестування плати, завантаживши ескіз, підключені штирі та зображення плати, показане нижче:
Модуль FTDI для плати розробника ESP8285
3,3 В -> 3,3 В
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Після того, як всі необхідні підключення будуть завершені, я налаштував Arduino IDE, вибравши ESP8285 рада Generic з інструментів > ради > ESP8285 модуль Generic .
Тестування за допомогою простого світлодіодного ескізу
Далі настав час протестувати плату, блимаючи світлодіодом, для цього я використав такий код:
/ * ESP8285 Блимає Блимає синім світлодіодом на модулі ESP828285 * / #define LED_PIN 16 // Визначте миготіння налаштування порожнечі світлодіода () {pinMode (LED_PIN, OUTPUT); // Ініціалізуємо світлодіодний штифт як вихід}} // функція циклу працює знову і знову назавжди void loop () {digitalWrite (LED_PIN, LOW); // Увімкніть світлодіод (зауважте, що LOW - це рівень напруги) затримка (1000); // Чекаємо другого digitalWrite (LED_PIN, HIGH); // Вимкніть світлодіод, зробивши напругу ВИСОКОЮ затримкою (1000); // Зачекайте дві секунди}
Код дуже простий, спочатку я визначив світлодіодний штифт для цієї плати, і це на GPIO 16. Потім я встановив цей штифт як вихід у розділі налаштування. І нарешті, у розділі циклу я включив і вимкнув штифт із затримкою в одну секунду між ними.
Тестування ескізу веб-сервера на ESP8285
Як тільки це спрацювало нормально, настав час протестувати ескіз HelloServer із прикладу ESP8266WebServer. Я використовую приклад ESP8266, оскільки більша частина коду сумісна з чіпом esp8285. Приклад коду також можна знайти внизу цієї сторінки.
Цей код теж дуже простий. По-перше, нам потрібно визначити всі необхідні бібліотеки, #включати
далі, нам потрібно ввести ім’я та пароль точки доступу.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * пароль = STAPSK;
Далі нам потрібно визначити об’єкт ESP8266WebServer. Наведений тут приклад визначає його як сервер (80), (80) - номер порту.
Далі нам потрібно визначити штифт для світлодіода, в моєму випадку це був штифт No 16.
const int led = 16;
Далі визначається функція handleRoot () . Ця функція буде викликана під час дзвінка на IP-адресу з нашого браузера.
void handleRoot () {digitalWrite (led, 1); server.send (200, "text / plain", "привіт з esp8266!"); digitalWrite (led, 0); }
Далі йде функція налаштування, чуйте, ми повинні визначити всі необхідні параметри, як-
pinMode (led, OUTPUT); // ми визначили світлодіодний штифт як вихідний Serial.begin (115200); // ми розпочали послідовне з'єднання з режимом Wi-Fi 115200 бод (WIFI_STA); // ми встановили режим wifi як станцію WiFi.begin (ssid, пароль); тоді ми починаємо з'єднання wifi Serial.println (""); // цей рядок дає додатковий пробіл while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } / * у циклі while ми тестуємо стан з'єднання, який ESP може підключити до точки доступу, який петля буде гальмувати * / Serial.println (""); Serial.print ("Підключено до"); Serial.println (ssid); Serial.print ("IP-адреса:"); Serial.println (WiFi.localIP ());
Далі ми друкуємо ім’я та IP-адресу підключеного SSID у вікно послідовного монітора.
server.on ("/", handleRoot); // on methode об'єкта сервера викликається для обробки кореневої функції server.on ("/ inline", () {server.send (200, "text / plain", "це також працює");}); // знову ми викликали метод on для методу / inline server.begin (); // далі ми запускаємо сервер з методом begin serial.println ("HTTP-сервер запущений"); // і, нарешті, ми друкуємо заяву на послідовному моніторі. } //, що позначає кінець циклу функції void loop (void) {server.handleClient (); }
У функції циклу ми викликали методи handleClient () для правильної роботи esp.
Як тільки це було зроблено, платі ESP8285 знадобився деякий час, щоб підключитися до веб-сервера, і успішно працювала, як очікувалося, що означало кінець цього проекту.
Повну роботу дошки також можна знайти у відео, наведеному нижче. Сподіваюся, вам сподобалась ця стаття і ви дізналися з неї щось нове. Якщо у вас є якісь сумніви, ви можете запитати в коментарях нижче або скористатися нашими форумами для детального обговорення.