FLProg+nooLite (продолжение)
В предыдущем посте я рассказал о реализации поддержки оборудования nooLite в программе FLProg. Моим упущение было не рассказать об одной очень удобной функции этого оборудования, которое позволяет подключить сразу несколько трансиверов к одному порту UART и обращаться с ними независимо. Я решил исправить это упущение.
Схема подключения нескольких трансиверов к одному порту UART (взято из документации на трансивер) выглядит так:
Особенностью такого включения заключается в использовании входов SE трансиверов. Если на этот вход подать 0 V то трансивер не будет реагировать на команды, передаваемые через UART, а если подать 3-5V, то команды будут исполняться.
В этом уроке мы будем включать, и выключать несколько нагрузок с помощью разных трансиверов.
Схема тестового стенда:
Создаём новый проект, и в нем конфигурируем входа – выхода контроллера.
Сначала создаём три входа для кнопок:
Поскольку у нас кнопки подключены между GND и входом включаем подтягивающие резисторы, ну и для четкого срабатывания включаем защиту от дребезга.
Затем создаём три выхода для управления трансиверами.
Затем создаём шесть переменных для команд управления.
Теперь перетаскиваем на схему первый вход, два блока R-триггера (Библиотека блоков – папка «Триггеры»), а так же две переменных – «Команда на включение нагрузки 1» и «Команда на отключение нагрузки 1». Затем соединяем их в соответствии со схемой:
Как она работает? Поскольку у нас кнопка включена между GND и входом, а так же включён подтягивающий резистор то при отпущенной кнопке на выходе блока входа будет 1, а при нажатой кнопке – 0. Верхний R-Тригер выделяет передний фронт (переход от 0 к 1) – то есть момент отпускания кнопки и создаёт в переменной «Команда на отключение нагрузки 1» короткий импульс на отключение нагрузки. Нижний R-Триггер в виду того что у него инвертирован вход производит выделение заднего фронта (переход от 1 к 0) – то есть момента нажатия кнопки. И так же формирует в этот момент короткий импульс в переменной «Команда на включение нагрузки 1».
Теперь повторим эту схему для остальных входов.
Назовём эту плату «Выделение фронтов» и создадим ещё одну. Сразу можно назвать её – «Управление трансиверами». Перетащим на неё переменные «Команда на включение нагрузки 1» и «Команда на отключение нагрузки 1», блок OR (Библиотека элементов – папка «Базовые элементы») и выход «Включение трансивера 1». Затем соединим их в соответствии со схемой:
Как она работает? При наличии 1 в переменной «Команда на включение нагрузки 1» ИЛИ в переменной «Команда на отключение нагрузки 1» на выходе «Включение трансивера 1» появится лог 1 (ТО есть трансивер 1 будет отрабатывать подаваемые на него команды). Повторим эту схему для остальных трансиверов.
Создадим новую плату «Отправка команд».
Для работы данной схемы важно, что бы управление трансиверами находилось, и отправка команд находились на разных платах, и плата управления была расположена выше, чем отправка команд. Это гарантирует, что сначала трансивер включится, а потом на него пойдет команда. Порядок выполнения команд в пределах одной платы не так однозначен и подчиняется более сложному алгоритму.
Перетащим на нижнюю плату все переменные команд включения, блок OR (Библиотека элементов – папка «Базовые элементы»), и блок управления трансивером nooLite (Библиотека элементов – папка «Разное»). Соединим их.
В соответствии со схемой при появлении в любой из переменных лог.1 будет происходит отправка команды на включение нагрузки. Настроим блок управления трансивером nooLite на передачу этой команды.
Повторим эту схему для отправки команды на выключение.
Настроим блок.
Ну, вот и всё. Спасибо за внимание.
Nvidia может прекратить выпуск двух флагманских видеокарт GeForce уже в январе
Широкий, как Huawei Pura X View, но в шесть раз дешевле: Coolpad COOL X Wide с 6,38-дюймовым экраном оценили в $150
Starlink как аргумент: пассажиры переходят к United Airlines от конкурентов ради спутникового интернета на борту
Нейросеть помогла устранить проблемы с производительностью в Oblivion Remastered и повысить скорость игры на 40%
США подготовили план действий на случай, если ИИ-агенты перестанут подчиняться людям
Qualcomm в ноябре приступит к сокращениям по всему миру по итогам ежегодной оценки эффективности персонала
Amazon построит 12 малых ядерных реакторов на площадке бывшей угольной электростанции в США
Меньше ёмкость, выше цены: Oppo Find X10 и Find X10 Pro Max добрались до мирового рынка, но стоят заметно дороже, чем в Китае