Перейти к содержимому

МК + USB: ТЗ и выбор компонентов

Время: ~60 мин

Цели урока

  • сформулировать ТЗ платы с микроконтроллером и USB
  • разбить плату на функциональные узлы и понять, как они связаны
  • выбрать микроконтроллер, преобразователь USB–UART, защиту и разъём по даташитам с обоснованием

Второй проект заметно сложнее первого. В нём есть микроконтроллер, кварц, USB с дифференциальной парой, иерархическая схема и компоненты, которых нет в стандартных библиотеках. Зато на выходе получится настоящая отладочная плата: подключил к компьютеру, загрузил прошивку из Arduino IDE — и она работает.

Проект займёт пять уроков: ТЗ и компоненты (этот), схема (11.2.2), библиотека (11.2.3), топология (11.2.4), выпуск и запуск (11.2.5).

Параметр Требование
Назначение отладочная плата для своих проектов, совместимая с Arduino IDE (как плата «Arduino Uno»)
Микроконтроллер ATmega328P, 16 МГц, прошивка по USB через загрузчик
Питание 5 В от USB-C; потребление платы без нагрузки — десятки мА
Защита ограничение тока по VBUS, защита линий USB от электростатики (ESD)
Связь с ПК USB 2.0 → виртуальный COM-порт (UART)
Программирование «с нуля» разъём ISP 2×3 для записи загрузчика
Органы управления кнопка сброса, светодиод питания, светодиод на выводе D13 (PB5)
Выводы все порты на гребёнки с шагом 2,54 мм, ширина платы под макетку
Плата 2 слоя, около 55×25 мм
XS1USB-CUSB 2.0CC: 2×5,1 кОмDA1USBLC6-2SC6D±DD1CH340CUSB ↔ UARTDD2ATmega328P-AU5 В, 16 МГцTXD→RXDRXD←TXDDTR100 нФ → RESETF1 PTC 0,5 АVBUS → +5V+5V → DD1, DD2, светодиодыXP1XP2выводыпортовZQ1 16 МГц · SB1 сброс · XP3 ISP 2×3 · HL1 питание · HL2 на PB5
Рис. 11.5. Структура платы: USB-C даёт питание 5 В и линии данных D+/D−. Через защиту от ESD данные идут в преобразователь USB–UART CH340C, а он общается с ATmega328P по UART. Линия DTR через конденсатор сбрасывает микроконтроллер перед загрузкой прошивки. Разъём ISP — для первой прошивки загрузчика.

Плату удобно делить на два узла — потом они станут двумя листами иерархической схемы (урок 9.8):

  1. USB и питание: разъём USB-C, предохранитель, защита ESD, преобразователь USB–UART.
  2. Микроконтроллер: ATmega328P с кварцем, сбросом, развязкой, ISP, светодиодом и гребёнками.

Между узлами всего три сигнала: TXD, RXD и DTR (для автосброса) плюс питание.

Это тот же кристалл, что стоит в Arduino Uno и Nano. Суффикс -AU — корпус TQFP-32 (шаг выводов 0,8 мм; паяется руками, если не торопиться).

Выписываем из даташита Microchip:

Параметр Значение Что из этого следует
Напряжение питания 1,8–5,5 В работает и от 3,3 В, и от 5 В
Допустимая частота 0–4 МГц при 1,8–5,5 В; 0–10 МГц при 2,7–5,5 В; 0–20 МГц при 4,5–5,5 В 16 МГц требуют питания около 5 В → питаем от 5 В USB
Выводы питания (TQFP-32) VCC — 4 и 6; GND — 3, 5 и 21; AVCC — 18; AREF — 20 каждой паре VCC/GND свой конденсатор
Кварц XTAL1 — 7 (PB6), XTAL2 — 8 (PB7)
Сброс RESET — 29 (PC6)
UART RXD — 30 (PD0), TXD — 31 (PD1) к CH340C
ISP (SPI) MOSI — 15 (PB3), MISO — 16 (PB4), SCK — 17 (PB5) к разъёму ISP; на PB5 ещё и светодиод D13
AVCC подключать к VCC обязательно, даже если АЦП не используется; при работе АЦП — через фильтр нижних частот

У ATmega328P нет встроенного USB, поэтому нужен преобразователь USB → UART. Популярные варианты: FT232R (FTDI), CP2102 (Silicon Labs), CH340 (WCH). Берём CH340C в корпусе SOP-16:

Параметр (даташит WCH, CH340DS1 версии 3B) Значение
Генератор встроенный — кварц не нужен (в отличие от CH340G)
Питание 4,0–5,3 В (режим 5 В) или 3,1–3,6 В (режим 3,3 В)
Вывод V3 при 5 В — на конденсатор 0,1 мкФ к земле; при 3,3 В — соединить с VCC
VCC развязка 0,1 мкФ рядом с выводом
Линии USB UD+ (5), UD− (6) — прямо на шину, без последовательных резисторов
Модемные сигналы DTR# (13), RTS# (14) — пригодятся для автосброса
Скорость USB 2.0 Full Speed (12 Мбит/с)

Почему не CH340G? Ему нужен внешний кварц 12 МГц с конденсаторами — три лишние детали и лишняя трассировка. Почему не FT232R? Дороже, а для учебной платы разницы нет.

  • USB-C, 16-контактный (только USB 2.0). Полноценный 24-контактный не нужен: высокоскоростных линий USB 3.x у нас нет. Контакты D+ и D− продублированы для двух положений кабеля (A6/B6 и A7/B7), их соединяют попарно. CC1 и CC2 — каждый своим резистором 5,1 кОм на землю, как в уроке 11.1.1, иначе источник USB-C не подаст 5 В.
  • USBLC6-2SC6 (ST, SOT23-6) — защита линий D+/D− и VBUS от электростатики по IEC 61000-4-2 (уровень 4: 8 кВ контакт, 15 кВ воздух). Ёмкость линии до 3,5 пФ — для USB 2.0 незаметно. Ставится вплотную к разъёму.
  • Самовосстанавливающийся предохранитель (PTC) на VBUS с током удержания около 0,5 А. Защищает USB-порт компьютера, если на плате или на подключённой к ней нагрузке случится замыкание.

Для 16 МГц берём кварцевый резонатор, а не керамический: точность у кварца порядка десятков ppm, а у керамического резонатора — около 0,5 %. Для UART и таймеров кварц надёжнее. Корпус — SMD 3225 или HC-49/SMD. В даташите кварца ищем нагрузочную ёмкость CL — по ней в уроке 11.2.2 посчитаем конденсаторы.

Итоговая таблица компонентов (черновик BOM)

Заголовок раздела «Итоговая таблица компонентов (черновик BOM)»
Обозн. Компонент Корпус
XS1 USB-C, 16 конт., USB 2.0, на плату SMD + выводы крепления
F1 PTC, удержание ≈ 0,5 А 1206 или 1812
R1, R2 5,1 кОм 1 % 0805
DA1 USBLC6-2SC6 SOT23-6
DD1 CH340C SOP-16
DD2 ATmega328P-AU TQFP-32
ZQ1 кварц 16 МГц 3225 или HC-49/SMD
C9, C10 нагрузочные, номинал по расчёту 0603/0805 C0G
R3, VD1, C4, SB1 цепь сброса и автосброса 0805, SOD-123, тактовая кнопка
C1, C2, C5–C8, C11 развязка 0805
HL1, HL2 + резисторы индикация 0805
XP1, XP2 гребёнки 1×15, шаг 2,54 THT
XP3 ISP 2×3, шаг 2,54 THT

🧯 Типичные ошибки

Плата на 3,3 В с кварцем 16 МГц работает через раз

Почему Для 16 МГц ATmega328P нужно питание около 5 В — это граница безопасной работы из даташита.

Как исправить Либо 5 В и 16 МГц, либо 3,3 В и 8 МГц.

Заказали CH340G вместо CH340C и забыли про кварц

Почему CH340G требует внешний кварц 12 МГц, CH340C — нет.

Как исправить Сверяй суффикс микросхемы с даташитом и со схемой. Если всё-таки G — добавь кварц 12 МГц и конденсаторы.

Зарядник USB-C не даёт питания

Почему На CC1/CC2 нет резисторов 5,1 кОм или стоит один общий.

Как исправить Каждый CC — свой резистор 5,1 кОм на землю.

Проверь себя

  1. 1. Почему плата питается от 5 В, а не от 3,3 В?
  2. 2. Чем CH340C удобнее CH340G?
  3. 3. Где ставят USBLC6-2SC6?
  4. 4. К какому выводу ATmega328P-AU подключают RXD преобразователя (то, что принимает CH340C)?

Практическое задание~40 мин

  1. Скачай даташиты ATmega328P, CH340C (обрати внимание на версию документа), USBLC6-2 и выбранного кварца. Для каждой микросхемы выпиши в таблицу выводы, которые используешь, со ссылкой на страницу даташита.
  2. Выбери конкретные модели разъёма USB-C, предохранителя PTC и кварца у доступного тебе поставщика, запиши MPN и ключевые параметры: ток удержания PTC, CL кварца.
  3. Сохрани ТЗ рядом с проектом.