Данная статья является продолжением раннее опубликованной мною темы: Умный дом на основе интерфейса CAN. Вот ссылки на предыдущие статьи:

  1. Протокол обмена данными. Пользовательский уровень, поверх CAN 2.0. Проект

  2. Выбор структуры для системы «Умный дом»

В качестве ядра схемы контроллера сети был выбран модуль ESP32-C6-WROOM-1-N8. Для грамотной разработки схемы рекомендую пользоваться следующими источниками информации:

  1. Руководство по проектированию оборудования ESP

  2. Datasheet ESP32-C6-WROOM-1: https://documentation.espressif.com/esp32-c6-wroom-1_wroom-1u_datasheet_en.pdf

  3. Datasheet ESP32-C6 Series

  4. ESP32-C6 Техническое руководство пользователя

  5. ESP‑IoT‑решение

1. Требования к источнику питания

1.1 Общие рекомендации по проектированию источников питания:

  • При использовании одного источника питания рекомендуемое напряжение питания составляет 3,3 В, а выходной ток — не менее 500 мА.

  • Рекомендуется добавить диод защиты от электростатического разряда и конденсатор емкостью не менее 10 мкФ на входе питания.

От себя добавлю, что лучше использовать две ступени стабилизации напряжения. Первая ступень — импульсный стабилизатор (поддерживает широкий разброс входных напряжений и высокий к.п.д., вторая — традиционный стабилизатор. Это улучшит фильтрацию выходного напряжения и снизит импульсные помехи.

В качестве импульсного источника питания могу посоветовать стабилизатор на микросхеме TPS54331DR фирмы Texas Instruments (доступна и сравнительно дешево, к тому же есть хорошее руководство по применению).

В качестве традиционного стабилизатора — AMS1117-3.3V.

2. Время включения и сброса чипа

Аппаратный сброс микро��хемы производится подачей нулевого потенциала на вход EN (вывод 3). Для нормальной работы, после подачи напряжения на микросхему необходимо выдержать интервал минимум 50 мкс. Это достигается с помощью RC цепочки установленной по входу EN(вывод 3) с параметрами: 1мкФ; 10 кОм. Причем, так как напряжение на данном выводе не может быть плавающем, резистор должен быть подключен к питающему напряжению, а конденсатор к шине «общий».

3. JTAG интерфейс

JTAG (Joint Test Action Group) — это стандартный аппаратный интерфейс, используемый для программирования, тестирования и отладки электронных плат и микросхем.

В качестве JTAG интерфейса можно использовать вывод 25/TXD0; вывод 24/RXD0. Здесь реализуется последовательный интерфейс (UART) передачи данных типа RS232/COM – порт. Для его осуществления необходимо дополнительное устройство типа ESP-Prog, поэтому данные каналы желательно не использовать.

Также в модуле реализован полноценный JTAG интерфейс: вывод 4/IO4(TMS); вывод 5/IO5(TDI); вывод 6/IO6(TCK); вывод 7/IO7(TDO). Однако его использование для тестирования и отладки сильно ограничит полезное число используемых выводов.

В качестве JTAG интерфейса рекомендую использовать аппаратно/программно реализованный в микросхеме интерфейс USB, что позволит напрямую подключаться к компьютеру. Для реализации данного интерфейса в микросхеме выделены: вывод 13(IO12/D-), вывод 14(IO13/D+). Причем вывод 14 рекомендуется подключать через резистор 10кОм к источнику питания.

4. Конфигурационные выводы

При каждом запуске или сбросе микросхеме требуются некоторые начальные параметры конфигурации, например, режим загрузки и т. д. Эти параметры передаются через соединительные контакты. После сброса соединительные контакты работают как обычные функциональные контакты.

GPIO8/IO8(вывод 10), GPIO9/IO9(вывод 15), GPIO15/IO15(вывод 23), MTMS/IO4(вывод 4) и MTDI/IO5(вывод 5) — это конфигурационные выводы.

  • Режим загрузки чипа определяется начальным состоянием выводов GPIO8 (вывод 10) и GPIO9 (вывод 15). Для записи программы во флеш‑память и последующего запуска этой программы из флеш‑памяти необходимо подключить данные выводы к источнику питания через резисторы 10 кОм.

  • MTMS/IO4(вывод 4) и MTDI/IO5(вывод 5) служат для определения фронта тактового сигнала, по которому следует производить выборку сигналов и управлять выходными линиями. Поэтому желательно не подключать к внешним источникам сигнала или резисторам задающим определенный потенциал. То есть рекомендую использовать их только как выходы.

  • GPIO15/IO15(вывод 23) используется для управления источником сигналов JTAG во время процесса начальной загрузки в зависимости от запрограммированных битов конфигурации eFuse. В исходном состоянии модуля эти биты имеют значение 0, при этом потенциал напряжения на выводе 23 игнорируется и по умолчанию используется интерфейс USB; UART.

5. Ограничения по использованию выводов

При использовании данного модуля накладываются следующие ограничения по выводам:

  • GPIO12 (вывод 13) не задействовать для подключений устройств, использовать только в качестве D‑ интерфейса USB. Данный интерфейс будет использоваться для программирования и отладки программы.

  • GPIO13 (вывод 14) не задействовать для подключений устройств, использовать только в качестве D+ интерфейса USB.

  • GPIO8 (вывод 10) и GPIO9 (вывод 15) использовать как входы и подключить данные выводы к источнику питания через резисторы 10 кОм.

  • IO4(вывод 4) и IO5(вывод 5) использовать их только как выходы.

  • Кроме, того следующие выводы по умолчанию подключены внутренними подтягивающими резисторами к источнику питания: GPIO6 (вывод 6), TXD0 (вывод 25), RXD0 (вывод 24), GPIO18 (вывод 16), GPIO19 (вывод 17), GPIO20 (вывод 18), GPIO21 (вывод 19), GPIO22 (вывод 20), GPIO23 (вывод 21). Значит, если в программе они будут использоваться как выходы управления исполнительными устройствами, то возможно ложное срабатывание в начальный момент если сигнал управления высоким потенциалом. Поэтому рекомендую сигнал управления формировать только низким потенциалом.

    Остались несколько GPIO находящихся в нейтральном состоянии или настроенные по умолчанию как входы, без подключенных сопротивлений. Это: GPIO7 (вывод 7), GPIO0 (вывод 8), GPIO1 (вывод 9), GPIO10 (вывод 11), GPIO11 (вывод 12), GPIO15 (вывод 23), GPIO2 (вывод 27), GPIO3 (вывод 26). Из них только GPIO2 (вывод 27), GPIO3 (вывод 26), GPIO10 (вывод 11),GPIO11 (вывод 12) не задействованы во внутренних процессах и могут использоваться как входы/выходы не обремененные различными условиями.

    6. Функциональные узлы

По возможности, схема контроллера должна ��ыть наиболее универсальной, чтобы изготовленную по ней печатную плату можно было использовать и как контроллер подключаемый к сети Ethernet, так и не подключаемый. Кроме того, необходимо максимально организовать наиболее востребованные функции.

Разработанная схема содержит следующие функциональные узлы:

  • Импульсный источник питания основанный на микросхеме TDS54331DR, позволяющий из входного напряжения питания от 7 В до 28 В получить стабилизированное напряжение 5 В. Желательно данный источник питания поместить в экран, чтобы не было помех на работу других узлов схемы.

  • Дополнительный пассивный стабилизатор напряжения 3,3 В из 5 В, для улучшения стабилизации и фильтрации напряжения питания схемы.

  • Узел формирования сигналов интерфейса CAN, на специализированной микросхеме SIT1050T.

ПРИМЕЧАНИЕ — Данная микросхема рассчитана на напряжение питания 5 В, однако хорошо работает и при 3,3 В. Производитель рекомендует использовать SN65HVD23x в качестве шинного формирователя CAN, однако ее стоимость значительно дороже.

  • Для гальванически развязанного управления нагрузкой в схему введены два реле.

  • Для подключения внешних реле, исполнительных устройств или моторов, реализованы два канала на мощных полевых транзисторах.

  • Также есть два гальванически развязанных входа для подачи сигналов различного напряжения от 5 В до 220 В.

  • На схеме реализован разъем для подключения модуля Ethernet WIZ850io

  • Узел согласования и разъем для подключения USB.

  • Разъем для подключения датчика температуры и влажности типа DHT22.

  • Колодка для набора с помощью перемычек локального адреса устройства в двоичном коде (6 разрядов). Используется только если не установлен модуль Ethernet.

  • Три светодиода индикации: работа — «WORK», авария/сбой — «ALARM», обмен по сети CAN — «CAN».

7. Реализация

Изложенные здесь идеи и требования были учтены при разработки схемы контроллера сети CAN. Однако все учесть не удалось при изготовлении прототипов, поэтому пришлось исправлять ошибки. На рис. 1 приведена фотография макета работающей сети CAN из трех контроллеров.

Рис. 1 Макет сети CAN
Рис. 1 Макет сети CAN

По результатам проверки и настройки схема была изменена и окончательный вариант разработанной схемы приведен на рис. 2.

Рис. Схема контроллера CAN
Рис. Схема контроллера CAN