Записки программиста
Благодаря заметке Два способа мультиплексирования светодиодов на примере микроконтроллеров AVR мы с вами знаем, что можно управлять сотней светодиодов, используя всего лишь 11 пинов микроконтроллера. Но что делать, если нужно управлять двумястами или, скажем, тысячью светодиодами? Оказывается, что изученные способы мультиплексирования могут быть улучшены, да так, что используя всего лишь три пина микроконтроллера можно управлять абсолютно любым количеством светодиодов! И в этом нам помогут следующие микросхемы.
Примечание: Если вы пропустили предыдущий пост, посвященный микросхемам 74xx, вот он — Интегральные схемы: чипы стандартной логики 74xx. Впрочем, тот пост был посвящен логическим вентилям, и для понимания представленного далее материала читать его не требуется.
SIPO сдвиговый регистр 74HC595
Сдвиговые регистры — это микросхемы, позволяющие, очень грубо говоря, добавить пинов вашему микроконтроллеру. Для добавления пинов на запись, используются SIPO сдвиговые регистры. SIPO означает «последовательный вход, параллельный выход». Если же нужно больше пинов на чтение, используются сдвиговые регистры PISO, «параллельный вход, последовательный выход». В данном разделе мы познакомимся с типичным SIPO сдвиговым регистром, 74HC595.
Какой пин 74HC595 для чего предназначен, можно узнать из даташита [PDF]:
Если коротко, то:
- VCC, GND — это питание.
- OE — разрешение вывода. Чтобы вывод был всегда разрешен, можно подключить этот пин напрямую к минусу.
- SRCLR — сброс. Если не используется, то нужно подключить напрямую к плюсу.
- SER, SRCLK — используются для передачи данных. При подаче высокого напряжения на SRCLK происходит считывание одного бита данных с пина SER.
- RCLK — при подаче сюда высокого напряжения происходит одновременный вывод принятых данных на параллельные выходы.
- Qa-Qh — параллельные выходы. Сюда происходит вывод последних восьми полученных бит при подаче высокого напряжения на SRCLK.
- Qh’ — при получении очередного бита информации и смещении значений по параллельным выходам бит Qh на самом деле не отбрасывается, а поступает на этот пин. Подключив его к пину SER другого сдвигового регистра, а также соединив выходы RCLK и SRCLK обоих сдвиговых регистров, можно получить 16-разрядный сдвиговый регистр. Второй сдвиговый регистр в свою очередь можно соединить с третьим и так далее, получив сколь угодно разрядный регистр сдвига.
Надеюсь, идея ясна — мы последовательно передаем на сдвиговый регистр восемь бит информации по одному биту. Затем сдвиговый регистр параллельно выводит полученные биты на восемь пинов. Отсюда и «последовательный вход, параллельный выход».
const uint8_t hc595_data = 6 ; /* SER */
const uint8_t hc595_latch = 7 ; /* RCLK */
const uint8_t hc595_clock = 8 ; /* SRCLK */
void setup ( )
{
pinMode ( hc595_data, OUTPUT ) ;
pinMode ( hc595_latch, OUTPUT ) ;
pinMode ( hc595_clock, OUTPUT ) ;
void loop ( )
{
/* . */
digitalWrite ( hc595_latch, LOW ) ;
shiftOut ( hc595_data, hc595_clock, MSBFIRST, hc595_out ) ;
digitalWrite ( hc595_latch, HIGH ) ;
/* . */
delay ( 100 ) ;
}
Нам даже не нужно писать никаких циклов. В Arduino уже предусмотрена готовая процедура shiftOut , которая делает все за нас.
В итоге три пина микроконтроллера эффективно превратились в восемь пинов. Если соединить несколько сдвиговых регистров, как это было описано выше, то можно вместо восьми пинов получить сколько угодно. При этом в микроконтроллере все так же будет задействовано только три пина.
Существует похожий чип 74HC164, который имеет 14 пинов вместо 16-и. В нем отсутствует пин переноса (аналог Qh’). Даташит 74HC164 доступен здесь [PDF].
PISO сдвиговый регистр 74HC165
Типичным представителем PISO сдвиговых регистров является 74HC165.

- VCC, GND — питание.
- A-H — входы сдвигового регистра.
- SH — когда на этом пине низкое напряжение, происходит считывание данных с пинов A-H.
- CLK INH — что-то делает только при высоком напряжении на SH. Низкое напряжение означает разрешить использование часов (пин CLK). На практике можно подключить напрямую к земле.
- CLK — когда на SH высокое напряжение и на CLK INH низкое, при подаче на CLK низкого напряжения происходит сдвиг данных.
- Qh — выход сдвигового регистра. Одноименный выход с чертой — это инвертированный выход.
- SER — при очередном сдвиге освободившийся бит принимает значение, поданное на этот пин. Пин может быть задействован при одновременном использовании нескольких сдвиговых регистров. Или можно просто подключить к земле.
Пример кода, считывающего состояние восьми кнопок, используя всего лишь три пина:
const uint8_t hc165_data = A5 ; /* QH */
const uint8_t hc165_latch = A4 ; /* SH */
const uint8_t hc165_clock = A3 ; /* CLK */
pinMode ( hc165_data, INPUT ) ;
pinMode ( hc165_clock, OUTPUT ) ;
pinMode ( hc165_latch, OUTPUT ) ;
}
uint8_t shiftIn165 ( uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder )
{
uint8_t value = 0 ;
uint8_t i ;
for ( i = 0 ; i < 8 ; ++ i )
{
digitalWrite ( clockPin, LOW ) ;
if ( bitOrder == LSBFIRST )
value | = digitalRead ( dataPin ) << i ;
else
value | = digitalRead ( dataPin ) << ( 7 — i ) ;
digitalWrite ( clockPin, HIGH ) ;
}
void loop ( )
{
digitalWrite ( hc165_latch, LOW ) ;
delayMicroseconds ( 5 ) ;
digitalWrite ( hc165_latch, HIGH ) ;
delayMicroseconds ( 5 ) ;
hc595_out = shiftIn165 ( hc165_data, hc165_clock, MSBFIRST ) ;
Встроенная процедура shiftIn для работы с 74HC165, к сожалению, не годится, так в ней используется обратный порядок подачи сигналов LOW и HIGH на clockPin. Поэтому в приведенном коде используется собственная реализация с правильным порядком.
Декодер / демультиплексор 74HC138
В данном контексте было бы большим упущением не рассказать про демультиплексоры, так как они могут быть использованы для управления светодиодными матрицами, так же, как и сдвиговые регистры. Грубо говоря, демультиплексоры занимаются тем, что декодируют числа из бинарного представления в унарное. Типичным представителем демультиплексоров является 74HC138.
Вот иллюстрация из его даташита [PDF]:

- VCC, GND — питание.
- A, B, C — три бита входа.
- Y0-Y7 — выход. Если на вход подан ноль в бинарном представлении, на Y0 будет подано низкое напряжение, а на все остальные выходы высокое. Если подана единица в бинарном представлении, на Y1 будет низкое напряжение, а на всех остальных выходах высокое, и так далее.
- G1, G2A, G2B — разрешение вывода. Чтобы на выходах Y0-Y7 было что-то осмысленное, на G1 должно быть подано высокое напряжение, а на G2A и G2B — низкое. Иначе на всех выходах Y0-Y7 будет высокое напряжение независимо от входов A, B и C. Пины G2A и G2B можно просто подключить к земле.
const uint8_t hc138_a = 5 ;
const uint8_t hc138_b = 4 ;
const uint8_t hc138_c = 3 ;
const uint8_t hc138_enable = 9 ;
uint8_t hc138_out = 0 ;
pinMode ( hc138_a, OUTPUT ) ;
pinMode ( hc138_b, OUTPUT ) ;
pinMode ( hc138_c, OUTPUT ) ;
pinMode ( hc138_enable, OUTPUT ) ;
digitalWrite ( hc138_enable, LOW ) ;
digitalWrite ( hc138_a, hc138_out & ( 1 << 0 ) ) ;
digitalWrite ( hc138_b, hc138_out & ( 1 << 1 ) ) ;
digitalWrite ( hc138_c, hc138_out & ( 1 << 2 ) ) ;
digitalWrite ( hc138_enable, HIGH ) ;
hc138_out = ( hc138_out + 1 ) & B00000111 ;
74HC138 может быть использован в бегущей строке. При использовании матричной схемы мультиплексирования светодиодов с его помощью можно выбирать строку светодиодной матрицы.
Существует также чип 74HC154. Он аналогичен по функциональности, но более громоздок и является четырехбитным. Его даташит можно полистать здесь [PDF].
Как несложно догадаться, если есть демультиплексоры, значит бывают и мультиплексоры. Они в каком-то смысле аналогичны PISO сдвиговым регистрам, так как позволяют увеличить количество читающих пинов микроконтроллера. В качестве примеров можно привести чипы 74HC151 и 74HC153. Их даташиты доступны, соответственно, здесь [PDF] и здесь [PDF].
Fun fact! При помощи мультиплексора можно реализовать произвольную логическую функцию, подключив его входы напрямую к питанию или земле в соответствии с таблицей истинности и используя управляющие сигналы, как входные данные.
Полная версия кода
Вы, конечно же, поняли, что приведенные выше отрывки кода являются частью одной программы. Вот ее полный исходный код:
const uint8_t hc595_data = 6 ; /* SER */
const uint8_t hc595_latch = 7 ; /* RCLK */
const uint8_t hc595_clock = 8 ; /* SRCLK */
const uint8_t hc138_a = 5 ;
const uint8_t hc138_b = 4 ;
const uint8_t hc138_c = 3 ;
const uint8_t hc138_enable = 9 ;
const uint8_t hc165_data = A5 ; /* QH */
const uint8_t hc165_latch = A4 ; /* SH */
const uint8_t hc165_clock = A3 ; /* CLK */
uint8_t hc595_out = 0 ;
uint8_t hc138_out = 0 ;
void setup ( )
{
pinMode ( hc595_data, OUTPUT ) ;
pinMode ( hc595_latch, OUTPUT ) ;
pinMode ( hc595_clock, OUTPUT ) ;
pinMode ( hc138_a, OUTPUT ) ;
pinMode ( hc138_b, OUTPUT ) ;
pinMode ( hc138_c, OUTPUT ) ;
pinMode ( hc138_enable, OUTPUT ) ;
pinMode ( hc165_data, INPUT ) ;
pinMode ( hc165_clock, OUTPUT ) ;
pinMode ( hc165_latch, OUTPUT ) ;
}
uint8_t shiftIn165 ( uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder )
{
uint8_t value = 0 ;
uint8_t i ;
for ( i = 0 ; i < 8 ; ++ i )
{
digitalWrite ( clockPin, LOW ) ;
if ( bitOrder == LSBFIRST )
value | = digitalRead ( dataPin ) << i ;
else
value | = digitalRead ( dataPin ) << ( 7 — i ) ;
digitalWrite ( clockPin, HIGH ) ;
}
void loop ( )
{
digitalWrite ( hc165_latch, LOW ) ;
delayMicroseconds ( 5 ) ;
digitalWrite ( hc165_latch, HIGH ) ;
delayMicroseconds ( 5 ) ;
hc595_out = shiftIn165 ( hc165_data, hc165_clock, MSBFIRST ) ;
digitalWrite ( hc595_latch, LOW ) ;
shiftOut ( hc595_data, hc595_clock, MSBFIRST, hc595_out ) ;
digitalWrite ( hc595_latch, HIGH ) ;
digitalWrite ( hc138_enable, LOW ) ;
digitalWrite ( hc138_a, hc138_out & ( 1 << 0 ) ) ;
digitalWrite ( hc138_b, hc138_out & ( 1 << 1 ) ) ;
digitalWrite ( hc138_c, hc138_out & ( 1 << 2 ) ) ;
digitalWrite ( hc138_enable, HIGH ) ;
hc138_out = ( hc138_out + 1 ) & B00000111 ;
Фотография соответствующего прототипа на макетной плате:

Используемые чипы слева направо — микроконтроллер ATmega328P, SIPO сдвиговый регистр 74HC595, демультиплексор 74HC138, PISO сдвиговый регистр 74HC165. Состояние восьми кнопок считывается через 74HC165. Светодиоды слева, соответствующие нажатым кнопкам, не горят, а отпущенным — горят. Состояние этих светодиодов контролируется через 74HC595. На фото я зажал три правые кнопки карандашом и потому три соответствующих им светодиода не горят. Еще восемь светодиодов справа контролируются демультиплексором 74HC138. Их состояние зависит только от времени, по очереди гаснет один светодиод.
Заключение
Еще из интересных чипов стоит упомянуть шинный формирователь 74HC244. Это штука, которая может как бы отрезать одну часть цепи от другой. Если добавить в цепь 74HC04 (логическое НЕ), то при помощи 74HC244 можно будет использовать одни и те же пины для работы с SIPO и PISO сдвиговыми регистрами, плюс один пин для переключения между ними. Итого, если микроконтроллер имеет четыре пина, он может работать с любым количеством кнопок и светодиодов. У самого маленького известного мне микроконтроллера ATtiny13 целых пять свободных пинов, что позволяет обойтись и без 74HC04. Подробности о 74HC244 ищите в даташите [PDF], там все очень просто.
Также заслуживает внимания чип 74HC4051. Эта штука позволяет соединить аналоговый канал с любым из 8 других аналогвых каналов, или разъединить их все. Мне нравится думать о 74HC4051, как о переключателе, управляемом программного. Подробности — в даташите [PDF].
В контексте увеличения числа пинов микроконтроллера стоит также упомянуть чипы MCP23017 / MCP23S17 [PDF] и специализированные чипы для управления светодиодными матрицами вроде MAX7221 [PDF]. Интересны они тем, что предлагая функциональность, аналогичную функциональности сдвиговых регистров и декодеров, могут занимать меньше места на плате. Если же вы хотите увеличить числ ШИМ-пинов, обратите внимание на микросхему TLC5940 (видеообзор, библиотека). Однако обсуждение данных микросхем уже сильно выходит за рамки данного поста. Вы без труда сможете изучить их самостоятельно в качестве домашнего задания.
Итак, теперь вы знаете все необходимое, чтобы делать при помощи светодиодов потрясающие вещи, вроде таких или даже таких. Полную версию исходников к посту вы найдете в этом репозитории на GitHub. Как обычно, буду весьма рад вашим вопросам и дополнениям.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.
Знакомство с микросхемой регистра сдвига 74HC595 — управление 16 светодиодами
Из этого руководства вы узнаете, как управлять 16 светодиодами используя всего 3 линии управления. Мы осуществим это путем последовательной передачи данных в сдвиговые регистры 74HC595.

Микросхема 74HC595 содержит 8 битный регистр хранения и 8 битный сдвиговый регистр. Данные последовательно передаются в сдвиговый регистр, затем фиксируются в регистре хранения. К регистру хранения подключены 8 выходных линий. На картинке ниже показано расположение выводов микросхемы 74HC595.



Вывод 14 (DS) это вывод данных. В некоторых описаниях он обозначается как «SER».
Когда уровень на выводе 11 (SH_CP, иногда обозначается как SRCLK) переходит из низкого в высокий, значение на выводе DS сохраняется в сдвиговом регистре, при этом данные сдвигаются на один разряд, чтобы предоставить место для нового бита.
Пока на выводе 12 (ST_CP, иногда обозначается как RCLK) низкий уровень, данные записываются в регистр сдвига. Когда уровень переходит в высокий, данные из сдвигового регистра фиксируются в регистре хранения, из которого поступают на выводы Q0…Q7.
На представленной ниже временная диаграмме, показано, каким образом можно установить на выходах Q0…Q7 микросхемы значение 11000011, учитывая что изначально там было значение 00000000.

Ниже показана схема, которую мы соберем в несколько шагов.
Мы используем перфорированную макетную плату с контроллером Atmega8, которую использовали во многих наших проектах. Добавим еще 2 пустых макетных платы и подведем к ним питание.

Установим микросхему регистра сдвига и подключим к ней питание +5 В и общий провод.

Теперь проведем 3 линии управления между микроконтроллером и регистром сдвига, для чего подсоединим:
- PC0 к DS
- PC1 к ST_CP
- PC2 к SH_CP
Этими линиями являются 3 синих провода на картинке ниже.

Затем подключим светодиоды и резисторы. Я использовал резисторы сопротивлением 510 Ом, но допустимы и другие номиналы.

Для демонстрации работы схемы я написал небольшую программу, которая выводит перемещающийся из стороны в сторону огонек на 8 светодиодах.
Все это конечно впечатляет, но разве я не говорил, что мы будем управлять 16 светодиодами? Чтобы сделать это, нам потребуется еще один сдвиговый регистр 74HC595, больше светодиодов, больше резисторов и больше оранжевых и голубых проводов.
Мы используем вывод Q7, чтобы соединить регистры сдвига в одну цепочку.
Модифицированная схема показана ниже.

Мы остановились на 16 светодиодах, но можно соединить в одну цепочку еще больше регистров сдвига. Эта методика конечно не ограничивается управлением светодиодами, ее можно использовать для увеличения числа портов вывода, чтобы управлять другими видами устройств.
Одно предупреждение касательно этой методики. Когда вы включаете схему, на выходах регистров наблюдаются некоторое произвольное значение. Для того чтобы записать требуемое значение, требуется меньше микросекунды, но для некоторых схем это может стать причиной проблем. В этом случае вы должны использовать выводы MR и OE, для сброса регистров хранения.
Динамическая индикация и 7 сегментный индикатор, модуль на двух 74HC595, код из видео

4bit Digital Tube LED Display Module — Обзор модуля с семисегментным индикатором и двумя сдвиговыми регистрами 74HC595. разберем работу с динамической индикацией.
Особенности модуля:
Модуль базируется на двух сдвиговых регистрах TM74HC595 к которым подключен 4х разрядный 7 сегментный индикатор ZS3641BS. Схема похожего модуля, с двумя индикаторами ZS3641BS и 8 сегментами ниже, отличие только в дополнительном индикаторе.

Один TM74HC595 управляет сегментами, причем всеми разом, ибо они все параллельны, а второй управляет разрядами. Если на один регистр отправить байт, в котором будет символ, он будет на всех четырех разрядах, но отобразится на том, который будет включен вторым регистром, и соответственно для этого, на него нужно отправить второй байт.
Динамическая индикация:
Для отображения всех разрядов применяется динамическая индикация, что это и как работает показано в видео ниже.
Подключение модуля к Arduino:
Подключать индикатор можно на любые свободные выходы Arduino, питание у модуля 5 вольт.
Для работы с модулем можно использовать код выше, можно использовать библиотеки, например эту.
ФОРМИРОВАТЕЛЬ СИГНАЛА —
RAWR
Самый, простой вариант — во-
обще обойтись без формирователя
(рис.5). Здесь сигнал -RDDATA "по
совместительству" является и сигна-
лом -RAWR, проходя напрямую че-
рез интерфейсный разъем Х1.
Резистор R1
служит нагрузкой
открытого коллек-
тора микросхемы
DD1. Его наличие
обязательно для
всех последующих
схем. Номинал
R1 обычно колеблется в пределах
от 150. 330 Ом (желательно) до 10
кОм. При низких номиналах R1 улуч-
шается согласование волнового со-
противления ленточного кабеля, ко-
торый находится между дисководом
и контроллером. При этом увеличи-
вается крутизна фронта сигнала —
RDDATA.
(Продолжение. Начало в N4/99)
Схема, показанная на рис.5 бу-
дет работать, если имеется полная
уверенность в том, что в конкрет-
ном дисководе длительность сигна-
ла -RDDATA (а значит, и -RAWR) не
превышает 600 нс. Однако дисковод
дисководу рознь. К примеру, соглас-
но техническим данным на НГМД
"Электроника МС5305" [3], макси-
мальная длительность -RDDATA со-
ставляет 1,5 мкс.
Понятно, что приведенная про-
стейшая схема в контроллерах не
прижилась. Очередной шаг напра-
шивается сам собой — сделать
длительность сигнала -RDDATA пос-
тоянной. С этим может справиться
од-новибратор (рис.6).
Длительность выходных импуль-
сов од-новибратора DD2 рассчиты-
вается по приближенной формуле
Ти = 0,45*R1*C1. В схемах обычно
добиваются значения Ти в пре-
делах 200. 300 нс.
Иногда одновибратор стро-
ится по схеме формирователя с
RC-задержкой (рис.7, [5]).
Сигнал RDD (вывод 23 БИС
i8272A) функционально экви-


валентен сигналу -RAWR ВГ93. Его
длительность определяется цепоч-
кой задержки R1, С1. "Необычный"
логический элемент DD1 образован
Следует заметить,
что в схемах рис. 6, 7
импульсы одновибра-
тора никак не связаны
с тактовыми сигнала-
ми контроллера. Это
вносит дополнитель-
ную погрешность в
к импульсам синхронизации FCLK
(рис.8). Поясняющие временные
диаграммы приведены на рис.9.
Длительность сигнала -RAWR
строго нормирована величиной 250
нс независимо от периода (4; 6 или
8 мкс). Тактовые импульсы FCLK
частотой 4 МГц поступают от внут-
реннего кварцевого генератора конт-
роллера. Их период определяет дли-
тельность сигнала -RAWR.
Сдвиг во времени переднего
фронта сигналов -RDDATA и -RAWR
(рис.9) не носит принципиального
характера, поскольку основная ин-
формация переносится периодом
следования сигнала.
Существует несколько разновид-
ностей данной схемы, отличающих-
ся типом применяемого логического
элемента DD2, вплоть до замены его
диодом и резистором. Общим клас-
сифицирующим признаком является
подача сигнала -RDDATA на D-вход
триггера DD1.1.
прошивкой программируемой матри-
цы.

процесс выделения информации.
Как следствие, во многих контролле-
рах схемы были усовершенствова-
ны. В частности, изменить ситуацию
помогает привязка сигнала -RDDATA

В схеме на рис.10 сигнал чтения
подается на С-вход триггера DD2.1.
Логика работы (рис.11) и возмож-
ности схемы от этого не меняются.
Новизна заключается в применении
сигнала WF/DE, блокирующего вы-
дачу импульсов -RAWR в режиме
записи информации. Это может по-
надобиться для корректной работы
некоторых схем формирователя сиг-
нала RCLK.
Еще один нюанс, который заслу-
живает внимания — можно ли "сэ-
кономить" на буферном элементе

DD1.1? Не секрет, что D-триггеры
ТТЛ-серий ТМ2 очень чувствитель-
ны к крутизне фронта импульса на
синхровходе. К примеру, согласно
техническим условиям,
на вход С микросхемы
К555ТМ2 желательно
подавать сигналы с
длительностью фрон-
та и среза не более 15
нс.
Учитывая это, эле-
мент DD1.1 нужен, а
вот устанавливаемый в некоторых
схемах конденсатор С1 (отмечен
пунктиром) — под вопросом. Если
С1 удаляет "иголки" сигнала, то сто-
ит вначале попытаться уменьшить
номинал резистора R2.
Схемы на рис.8, 10 относятся к
разряду "четырехмегагерцовых"^
CLK). В некоторых контроллерах
имеется дополнительно частота 8
МГц. Разработчики не преминули
воспользоваться такой возможнос-
тью, что позволило уменьшить дли-

тельность сигнала -RAWR до 125 нс
(рис.12, [6]).
Микросхема DD2 содержит син-
хронно тактируемые D-триггеры.
Временные диаграммы (рис.13) по-
казаны для случая WF/DE=0, т.е. для
режима чтения.
Закономерен вопрос, а зачем
вообще нужно уменьшать длитель-
ность сигнала -RAWR? Ответ дает
рис.14, на котором показаны вре-
менные соотношения в "окне детек-
тирования" согласно техническим
данным на ВГ93 [4].
Запас "окна детектирования"
(ЗП) определяется по формуле
ЗП = ±(Т/2 — х1 — т2 — Ти)/2.
Ти — это не что иное как дли-
тельность сигнала -RAWR. Если
принять т1 = т2 = 40 нс, то для Ти
= 125 нс значение ЗП равно +897
мкс (+0.224Т), а для Ти — 250 нс
ЗП равно ±835 мкс (+0.209Т).
Следовательно, схема на рис.12
теоретически имеет на 7,4% боль-
ший запас "окна детектирования",

чем схемы на рис.8,10, что позволя-
ет ближе подойти к пределу +0.25Т.
Нередко встречаются "гибрид-
ные" схемы, у которых -RAWR рас-
щепляется на два сигнала: один из
них, длительностью 250 нс, подается
на вывод 27 ВГ93; другой, длитель-
ностью 125 нс — на схему выделе-
ния синхросерии. К чему это приво-
дит, станет ясно при рассмотрении
схемотехники формирования сигна-
ла RCLK.
ФОРМИРОВАТЕЛЬ СИГНАЛА
RCLK
Изложение данного материала в
радиолюбительских статьях обычно
сопровождается кратким описанием
принципа работы, иногда — графом
переходов [6]. Думается, этого недо-
статочно, ведь за общими фразами
не видно физики процесса, а вузов-
ская подготовка имеется далеко не у
каждого. Отсюда путаница в поняти-
ях, отсутствие какой-либо классифи-
кации.
