Основной блок контроллера для гидропоники

Основной блок является “мозгами” контроллера для гидропоники. Схема основного блока приводится на двух листах.

Лист 1

Step-down преобразователь +12В -> +3,3В

Преобразователь построен на базе LM2842 (U7). Его характеристики:

Настройка (из тех. описания на LM2842):

1) Величина выходного напряжения: VOUT = VFB * (1 + R39/R38), где R38 = 100..10000 Ом

2) Входной конденсатор С4 (керамика с низким ESR; X5R или X7R). Рекомендуемые значения ёмкости от 2,2 до 10 мкФ

3) Дроссель L1 = [(VIN - VOUT) * VOUT] / (VIN * Iripple * fsw)

С ростом допустимых пульсаций тока Iripple величина индуктивности уменьшается, но возрастают потери на намагничивание, потери в сердечнике. Это также требует выходного конденсатора большей ёмкости. Рекомендуемое значение Iripple составляет около 30% от величины выходного тока. Расчёт индуктивности ведётся для максимального значения VIN. КПД преобразователя напрямую зависит от сопротивления дросселя (лучшие показатели достигаются с использованием толстого провода). Рекомендуется использовать такой индуктор, в котором потери на нагрев составляют 2% от выходной мощности (другими словами, активное сопротивление дросселя составляет 2% от сопротивления нагрузки). Начальным вариантом является дроссель с индуктивностью от 10 до 22 мкГн и максимальным током 1,1 А или выше.

4) Выбор выходного конденсатора C6 зависит от величины максимальных допустимых пульсаций выходного напряжения. При постоянной частоте fsw величина пульсаций напряжения

Vripple = Iripple * (ESR + [1 / (8 * fsw * COUT)]).

Необходимо выбирать керамические конденсаторы с низким ESR. Рекомендуемый номинал от 22 до 100 мкФ с ESR ≤ 0,1 Ом.

5) C5 ≥ 0,15 мкФ (керамика). Рекомендуется 1,0 мкФ.

Расчёт:

1) Входные данные: VIN = 12 В, VOUT = 3,3 В, IOUT = 0,5 А, Iripple = 0,15 А.

2) R38 = 1,4 кОм, R39 = (VOUT / 0,765 – 1) * R38 = (3,3 / 0,765 – 1) * 1,4 = 4,7 кОм.

3) С4 = 10 мкФ (керамика).

4) L1 = (12 – 3,3) * 3,3 / (12 * 0,15 * 550 * 103) = 29 мкГн (SDR1006-330KL: 33 мкГн, Irms= 1,5 А).

5) C6 = 22 мкФ, Vripple = 0,15 * (0,35 + [1/(8 * 550 * 103 * 22 * 10-6)] = 0,053 В.

6) C5 = 1,0 мкФ.

7) D1 – 10BQ060 (60 В, 1,0 А).

Аналоговая часть

С целью уменьшения влияния цифровой части устройства на измеряемые аналоговые сигналы вводится «развязка» питания через LC-фильтр (по примеру схемы платы LPC1830-Xplorer).

Измерение аналоговых сигналов происходит с помощью резистивных делителей и операционных усилителей AD8606 (питание +3,3 В) с коэффициентом усиления 1 (на схеме U3, U5).

Резистивный делитель построен на резисторах номиналами 10 и 3,3 кОм (R19 и R21, R26 и R27, R32 и R33) и позволяет измерять входное напряжение величиной до 13,3 В.

После делителя сигнал смещается вверх на 0,5 В (с помощью U3:A) и поступает на неинверсный вход операционного усилителя. С выхода операционного усилителя повторённый сигнал идёт на вход АЦП микроконтроллера.

Дискретные сигналы

Входные сигналы типа “сухой контакт”

Измерение входного дискретного сигнала типа «сухой контакт» (-, минус) осуществляется с помощью подтянутого к питанию +12 В резистора (номинал 10 кОм) и транзисторной сборки ULN2804, выбранной исходя из величины опорного напряжения (+12 В).

Коллектор выходного транзистора ULN2804 (U6) подтянут к питанию +3,3 В. Сигнал с коллектора поступает на сдвиговый регистр 74HC165 (U4), который по сигналу микроконтроллера преобразует входной параллельный код в выходной последовательный код и выдаёт микроконтроллеру состояние датчиков типа «сухой контакт».

Выходные сигналы

К выходным дискретным сигналам относятся: силовые напряжением ~220 В (ток до 5 А) и силовые напряжением +12 В (ток до 0,1 А).

Выдача дискретных сигналов происходит с помощью:

Коммутацию напряжения ~220 В выполняет реле типа TRJ-12DC (RL1-RL4). В цепи фазы установлен предохранитель с номинальным током 5 А (FU1-FU4).

Коммутацию напряжения +12 В выполняет транзистор IRF7314 (Q1). В цепи +12 В установлен самовосстанавливающийся защитный резистор с номинальным током 0,1 А (R4, R8).

Лист 2

В центре схемы - микроконтроллер STM32F407Z. Он тактируется кварцевым резонатором частотой 12 МГц (X1 - HC-49SM, печатный монтаж), зашунтированным конденсаторами по 18 пФ (керамика).

Для питания микроконтроллера введён массив керамических конденсаторов номиналами 1,0 и 0,1 мкФ (C15-C22).

Отладка микроконтроллера происходит по интерфейсу JTAG. Для этого на плате размещается разъём XP1 (IDC-20MS).

Диагностический интерфейс

Для отладки устройства без использования специализированных средств (JTAG-программатора) служит выделенный USB-интерфейс, который построен на микросхеме CP2102 (U10), представляющей собой полноценный преобразователь USB-UART.

Кроме стандартной обвязки CP2102 (рекомендации по её параметрам приводятся в описании к микросхеме) добавлен транзистор, который формирует сигнал RESET (сброс микроконтроллера). Дополнительный сигнал ISP нужен для ввода микроконтроллера в режим загрузчика.

Сигнал RESET определяется состоянием на линии DTR, сигнал ISP – состоянием на линии RTS. Сигнал сброса микроконтроллера RESET проходит через ФНЧ с постоянной времени τ = R77 * C13 = 47000 * 0,1 * 10-6 = 4,7 мс.

Ethernet

Схема модуля позаимствована из схемы платы LPC1830-Xplorer (OM13028).

Модуль построен на PHY LAN8720 (U11). PHY тактируется от кварцевого генератора KXO-V97 частотой 50 МГц (самый крайний по приемлемости вариант, лучше использовать более точный генератор).

Особое внимание необходимо уделить питанию PHY. В цепи питания установлен LC-фильтр на базе L4 и C26-C28 (аналогично схеме-донору).

Сигнальный трансформатор встроен в разъём RJ-45 (XS1). В нём же установлены светодиоды, информирующие о скорости работы интерфейса и активности на линии.

Часы реального времени

Используется микросхема DS3231M (U13). Очень хороший вариант, рекомендую.

Часы могут работать как от основного питания, так от батарейки (в случае отсутствия основного питания). Взаимодействие микроконтроллера с часами происходит по интерфейсу I2C. Номиналы резисторов R87, R88 на линиях SDA и SCL определяют максимальную скорость информационного обмена. Установлены резисторы номиналом 10 кОм (при том, что имелся опыт работы на частоте 400 кГц с резисторами номиналом 22 кОм).

Энергонезависимая память

В качестве микросхемы энергонезависимой памяти используется AT45DB321D (U12) объёмом 4 Мбайт. Это довольно продвинутая память, которая берёт часть работы программиста на себя. Так, при записи новых данных, она копирует страницу во внутреннее ОЗУ, стирает страницу, а затем пишет в стёртую страницу результат слияния прошлых данных с теми, которые были переданы пользователем.

Драйвер RS-485

Для связи с периферийными устройствами по асинхронному последовательному каналу в контроллере находится драйвер шины RS-485 MAX-487 (U9) с управлением потоком (чтение/запись).

Схема токового управления нагрузкой

Схема управления питанием основана на pnp-транзисторе (Q4-Q7), с помощью которого выдаётся сигнал на оптопару. Расчёт схемы проведён исходя из того, что на другой стороне установлены оптопары типа HCPL0530/¼.

1) Прямой ток через диод оптопары составляет IF = (3,3 – VF) / R55 = (3,3 – 1,45) / 100 = 18,5 мА (VF - падение напряжения на диоде).

2) Максимальный выходной ток оптопары при IF = 18,5 мА составляет примерно IO = 6 мА.

3) Для управления оптопарой выбран транзистор BC807 (коэффициент усиления по току – 100, не менее; в базе резистор 4,7 кОм, то есть базовый ток составляет (3,3 – 0,7) / 4,7 = 0,55 мА, что позволяет получить ток коллектора от 50 мА и выше).

Измерения тока в цепи нагрузки

Из схемы питания нагрузки в основной микроконтроллер через оптопару поступают импульсы (разъёмы XT17, XT18). Коллектор оптопары подтянут к питанию +3,3V через резистор номиналом 4,7 кОм (R60-R63).

Подключение радиомодуля

Предполагается, что в устройстве будет использован радиомодуль RF-2423P, работающий в области частоты 2,4 ГГц. Подключение радиомодуля осуществляется через разъём XP2 (PBD-8). Линия питания поддержана дополнительным танталовым конденсатором C11 ёмкостью 10 мкФ.

74hc165, 74hc595, ad8606, at45db321d, cp2102, ds3231m, hcpl0530, lan8720, lm2842, max-487, rf-2423p, stm32f407z, uln2803, uln2804, гидропоника, контроллер