Блок для РЕГИСТРЫ РАСШИРЕНИЯ hc595, mcp23x017
Быстрый блок вывода байта в устройство 74HC595 (AVR,ESP,SAMX,SAMD21,STM32 и др., поддерживаемые библиотекой RT_HW_BASE.h).
Используемые библиотеки: RT_HW_BASE.h.
1.Устройство может быть подключено через два интерфейса:
аппаратный SPI. Используются два аппаратных пина SPI (clk,mosi) и один пин cs, который выбирается в настройках.
Также может быть выбран номер используемой шины SPI (0,1,2,3) [ESP32,STM32 и др.] (default=0);
программный SPI (SSPI), через 3 пина clk,mosi,cs, которые выбираются в настройках.
2.Используемые пины могут могут быть заданы тремя способами:
тестовые[автоматически выбираемые под тип контроллера];
пользовательские (в строке параметра);
через входы блока.
3.Пины проверяются на соответствие функциональным требованиям.
Если задан недопустимый пин, то блок записывает в custom код ошибки и в далее не выполняет каких-либо действий.
3.Входные данные могут быть в формате байта(default) или в формате 8-ми бит.
4.Вывод осуществляется всегда при включении, событии по входу eN 0->1, событии по входу reset 1->0
и далее периодически при изменени входного значения.
5.Период вывода может быть выбран из табличных значений (default=50) или задан пользователем.
6.Последовательность вывода битов выбирается наичная со старшего бита(default), либо с маладшего бита.
7.Входы eN(разрешение работы) и reset(сброс текущего значения) настраимваемые (default разрешены).
8.Предусмотрен режим отладки блока (defaul=не разрешен).
При включении режима отладки на консоль выводятся параметры блока и его состояние, в т.ч. параметр custom.
9.Измеренное время вывода (для Arduino Nano) по сигналу cs составляет для SPI 4.2мкс, для SSPI 33мкс.
Блок реализует возможности расширителя дискретных сигналоы ввода/вывода MCP23x17:
MCP23017 - интерфейс i2c;
MCP23S17 - интерфейс SPI (в разработке).
1.Поддерживается произвольная конфигурация входов/выходов.
2.Поддерживается "горячий" перезапуск.
3.По сравнению с известными библиотеками C++ и блоками FLProg обоспечивает существенно более высокое быстродействие
при минимальной загрузке шины обмена. Особенно это актуально для интерфейса i2c.
Для обеспечения максимальной производительности по времени рекомендуется использование однотипных портов
(например, все пины на выход или на вход).
В соответствии с примененным алгоритмом отправка в устройство данных на выходные пины осуществляется только при их изменении
не чаще "периода работы". Этот параметр можно установить "В каждом цикле" в этом случае управление по времени удобно выполнять
через вход EN.
Период опроса входов можно увеличить параметровм "Множитель опроса входов" - это разгружает шину обмена.