Урок 1. D-триггер CD4013
В картинкахПосле этого урока в библиотеке микросхема CD4013 — два D-триггера, а на холсте — первая деталь парктроника: делитель, от которого шагает весь прибор. Триггер пробуем тумблерами и кнопкой.
1.1. Идея: запомнить в момент
Парктроник опрашивает датчики по очереди, шаг за шагом. Шагам нужен такт, а такту — элемент, который запоминает значение в момент, когда такт меняется с 0 на 1 (фронт), и держит его до следующего фронта, что бы ни делал вход. Это D-триггер: вход D (data), такт CL, выход Q.
- фронт
CL—Qстановится равнымD; - в остальное время
Qдержит,Dможно менять как угодно; S= 1 — сразу 1,R= 1 — сразу 0, без такта.
1.2. Идея: мастер и слейв
Внутри — две защёлки подряд. Первая (мастер) пропускает D, пока CL = 0, и закрывается, когда CL = 1. Вторая (слейв) — наоборот: открывается, когда CL = 1, и берёт то, что мастер запер. Вместе они ни в какой момент не открыты насквозь, поэтому Q меняется только на фронте.
Каждая защёлка — два И-НЕ и два ключа TG: ключ данных и ключ обратной связи. Ключ — пара транзисторов nmos + pmos, он замыкает провод, когда N = 1 и P = 0. Ключами управляют cln = НЕ CL и clp = НЕ cln — всегда противоположные: когда один ключ защёлки замкнут, другой разомкнут.
1.3. Идея: слабая обратная связь
На миг переключения такта cln и clp оба «на полпути», и замкнуты оба ключа защёлки: вход встречается с выходом обратной связи. В настоящей микросхеме транзисторы обратной связи маленькие — побеждает вход. У нас это Resistor (weak) перед ключом обратной связи: «слабый провод», который уступает настоящему выходу.
Capacitor (hold) на узлах a и b — их ёмкость: держит значение, когда на миг разомкнуты оба ключа.
1.4. Идея: делитель на 2
Если завести QN обратно на D, на каждом фронте триггер записывает своё перевёрнутое значение: Q меняется через такт. Генератор 60 Гц превращается в 30 Гц — это шаг опроса датчиков парктроника.
1.5. Сборка
Новый проект. Нужны вентили NOT и NAND — из урока 0 или любого набора серии.
Шаг 1. Чип TG — ключ на паре транзисторов
Если TG уже есть в библиотеке (из набора «Счётчик посетителей» — внутри CD4511) — шаг пропусти.
Ключ, как на схемах TI: nmos и pmos рядом, оба соединяют A с B. nmos открыт при N = 1, pmos — при P = 0. Управляют ими всегда парой противоположных сигналов: N = 1 и P = 0 — ключ замкнут, N = 0 и P = 1 — разомкнут. Транзистор: затвор, сток, исток.
| Деталь | Нога | Метка |
|---|---|---|
| Порт входа | выход | A |
| Порт входа | выход | N |
| Порт входа | выход | P |
| Порт выхода | вход | B |
| nmos | затвор сток исток | N A B |
| pmos | затвор сток исток | P A B |
Ctrl+G → имя TG. Ноги: входы A, N, P; выходы B.
Шаг 2. Чип FF4013 — D-триггер CD4013 (мастер и слейв)
Вся схема одним рисунком — выше, в «Идее» (и в файле ff4013-schema.html). Порядок сборки: инверторы R, S, CL; мастер — ключ данных, два И-НЕ, ключ обратной связи с резистором, cap на узле a; слейв — то же; четыре инвертора на выходы. Resistor (weak) и Capacitor (hold) — из палитры. У ключей смотри, куда идут N и P: у ключа данных мастера N = cln, у ключа мастер → слейв — наоборот, N = clp.
| Деталь | Нога | Метка |
|---|---|---|
| Порт входа | выход | D |
| Порт входа | выход | CL |
| Порт входа | выход | S |
| Порт входа | выход | R |
| Порт выхода | вход | Q |
| Порт выхода | вход | QN |
| NOT | I0 O0 | R nr |
| NOT | I0 O0 | S ns |
| NOT | I0 O0 | CL cln |
| NOT | I0 O0 | cln clp |
| TG | A N P B | D cln clp a |
| NAND | I0 I1 O0 | nr a m1 |
| NAND | I0 I1 O0 | m1 ns m2 |
| TG | A N P B | a clp cln m2w |
| Resistor (weak) | конец 1 конец 2 | m2w m2 |
| Capacitor (hold) | вывод | a |
| TG | A N P B | m1 clp cln b |
| NAND | I0 I1 O0 | b ns s1 |
| NAND | I0 I1 O0 | nr s1 s2 |
| TG | A N P B | b cln clp s2w |
| Resistor (weak) | конец 1 конец 2 | s2w s2 |
| Capacitor (hold) | вывод | b |
| NOT | I0 O0 | s1 q1 |
| NOT | I0 O0 | q1 Q |
| NOT | I0 O0 | b qn1 |
| NOT | I0 O0 | qn1 QN |
Ctrl+G → имя FF4013. Ноги: входы D, CL, S, R; выходы Q, QN.
Шаг 3. Чип CD4013 — 2 × D-триггер
Ноги корпуса по даташиту TI: 1 Q1, 2 QN1, 3 CLOCK1, 4 RESET1, 5 D1, 6 SET1, 8 SET2, 9 D2, 10 RESET2, 11 CLOCK2, 12 QN2, 13 Q2; 7 — VSS (земля), 14 — VDD (питание) — у нас питание общее, этих ног нет. Внутри — два FF4013: первый на ногах с цифрой 1, второй — с цифрой 2.
| Деталь | Нога | Метка |
|---|---|---|
| Порт входа | выход | D1 |
| Порт входа | выход | CLOCK1 |
| Порт входа | выход | SET1 |
| Порт входа | выход | RESET1 |
| Порт входа | выход | D2 |
| Порт входа | выход | CLOCK2 |
| Порт входа | выход | SET2 |
| Порт входа | выход | RESET2 |
| Порт выхода | вход | Q1 |
| Порт выхода | вход | QN1 |
| Порт выхода | вход | Q2 |
| Порт выхода | вход | QN2 |
| FF4013 | D CL S R Q QN | D1 CLOCK1 SET1 RESET1 Q1 QN1 |
| FF4013 | D CL S R Q QN | D2 CLOCK2 SET2 RESET2 Q2 QN2 |
Ctrl+G → имя CD4013. Ноги: входы D1, CLOCK1, SET1, RESET1, D2, CLOCK2, SET2, RESET2; выходы Q1, QN1, Q2, QN2.
Шаг 4. Проба: тумблеры, кнопка «Такт», лампы
Button (momentary) — подпись «Такт» (двойной клик по кнопке). Второй триггер корпуса в пробе не нужен — его входы на GND.
| Деталь | Нога | Метка |
|---|---|---|
| Power | выход | VCC |
| Ground | выход | GND |
| Input (тумблер) | выход | D |
| Input (тумблер) | выход | S |
| Input (тумблер) | выход | R |
| Button «Такт» | выход | CL |
| CD4013 | D1 CLOCK1 SET1 RESET1 D2 CLOCK2 SET2 RESET2 Q1 QN1 | D CL S R GND GND GND GND Q QN |
Шаг 5. Лампы пробы
| Деталь | Нога | Метка |
|---|---|---|
| LED | вход | CL |
| LED | вход | Q |
| LED | вход | QN |
Шаг 6. Парктроник: генератор, «Сброс», делитель на 2
Это первая деталь парктроника — она остаётся до конца набора. Clock — клик по корпусу до 60Hz. Кнопка — подпись «Сброс». Выход QN1 (C30N) заведён обратно на D1: на каждом фронте CK60 триггер записывает своё перевёрнутое значение, и C30 меняется через такт — 30 раз в секунду.
| Деталь | Нога | Метка |
|---|---|---|
| Clock | выход | CK60 |
| Button «Сброс» | выход | RESET |
| CD4013 | D1 CLOCK1 RESET1 SET1 D2 CLOCK2 SET2 RESET2 Q1 QN1 | C30N CK60 RESET GND GND GND GND GND C30 C30N |
Шаг 7. Лампы делителя
| Деталь | Нога | Метка |
|---|---|---|
| LED | вход | CK60 |
| LED | вход | C30 |
1.6. Проверка
Проба D-триггера (тумблеры D, S, R — в 0):
- Сначала
R= 1 и обратно 0 —Qгаснет,QNгорит. При включении триггер помнит что попало;Rставит его в 0. - Поставь
D= 1 —Qне меняется: D-триггер слушает вход только на фронте такта. - Нажми «Такт» —
Qзагорается,QNгаснет: на фронте записалосьD. - Держи «Такт» нажатой и переключай
D—Qстоит. Пишет только момент нажатия (фронтCL0 → 1), а не нажатое состояние. D= 0, отпусти и снова нажми «Такт» —Qгаснет.S= 1 —Qзагорается сразу, без такта; верниS= 0 —Qдержит.R= 1 —Qсразу гаснет; верниR= 0.
| Что сделал | Q | QN |
|---|---|---|
| D = 1, такта нет | ○ | ● |
| нажал «Такт» | ● | ○ |
| держу «Такт», D = 0 | ● | ○ |
| отпустил, снова «Такт» | ○ | ● |
| S = 1 | ● | ○ |
| S = 0, R = 1 | ○ | ● |
Делитель:
- На
60HzлампыCK60иC30мигают быстрее, чем видит глаз, — кажутся горящими вполсилы. - Клик по корпусу генератора до
1Hz(через4kHz…MAX):CK60мигает раз в секунду, аC30меняется на каждом загоранииCK60— горит секунду, не горит секунду. Частота вдвое ниже. - Держи «Сброс» —
C30гаснет и стоит, такты не действуют. - Верни генератор на
60Hz(1Hz→2Hz→10Hz→60Hz) — для парктроника нужен он.
| Генератор на 1Hz | CK60 | C30 |
|---|---|---|
| 1-я секунда | ● | ● |
| 2-я секунда | ○ | ● |
| 3-я секунда | ● | ○ |
| 4-я секунда | ○ | ○ |
| держу «Сброс» | ●/○ | ○ |
Пробу оставь до урока 2 — там её можно будет удалить. Делитель не трогай: на нём шагает весь парктроник.
Вставка урока 1 (Cmd+I)
Нужны вентили NOT, NAND (урок 0). Если TG уже есть в библиотеке — удали его блок из вставки.
# Урок 1 — CD4013B: D-триггер на ключах TG (мастер и слейв), микросхема 2 × D-триггер; делитель 60 → 30 Гц парктроника.# Вставка: Cmd+I в новый проект, где есть вентили NOT, NAND (урок 0). # TG — ключ на паре транзисторов (как на схемах TI): N = 1 и P = 0 — A соединён с B; N = 0 и P = 1 — разомкнутchip TG { portIn(A) portIn(N) portIn(P) portOut(B) nmos(N, A, B) pmos(P, A, B)} # FF4013 — D-триггер CD4013B (Logic Diagram TI, SCHS023E): мастер и слейв на ключах TG и И-НЕ.# D пишется по фронту CL (0 → 1); S = 1 — сразу 1, R = 1 — сразу 0. TG(A, N, P, B): N = 1 и P = 0 — ключ замкнут.# До Q — два инвертора (у TI нарисовано три, но по таблице функций TI Q = D).# resistor — обратная связь слабая, как в чипе: на миг переключения такта открыты оба TG, и вход должен победить.# cap — ёмкость узла: держит a и b, пока один TG уже закрылся, а другой ещё не открылся.chip FF4013 { portIn(D) portIn(CL) portIn(S) portIn(R) portOut(Q) portOut(QN) NOT(R, nr) NOT(S, ns) NOT(CL, cln) NOT(cln, clp) # мастер: TG данных (открыт при CL = 0), И-НЕ, обратная связь через TG (открыт при CL = 1) TG(A=D, N=cln, P=clp, B=a) NAND(nr, a, m1) NAND(m1, ns, m2) TG(A=a, N=clp, P=cln, B=m2w) resistor(m2w, m2) cap(a) # слейв: TG (открыт при CL = 1), И-НЕ, обратная связь через TG (открыт при CL = 0) TG(A=m1, N=clp, P=cln, B=b) NAND(b, ns, s1) NAND(nr, s1, s2) TG(A=b, N=cln, P=clp, B=s2w) resistor(s2w, s2) cap(b) # буферы выходов NOT(s1, q1) NOT(q1, Q) NOT(b, qn1) NOT(qn1, QN)} # CD4013 — два D-триггера с установкой и сбросом (Logic Diagram TI). Ноги: 1 Q1, 2 QN1, 3 CLOCK1, 4 RESET1, 5 D1, 6 SET1, 8 SET2, 9 D2, 10 RESET2, 11 CLOCK2, 12 QN2, 13 Q2chip CD4013 { portIn(D1) portIn(CLOCK1) portIn(SET1) portIn(RESET1) portIn(D2) portIn(CLOCK2) portIn(SET2) portIn(RESET2) portOut(Q1) portOut(QN1) portOut(Q2) portOut(QN2) FF4013(D=D1, CL=CLOCK1, S=SET1, R=RESET1, Q=Q1, QN=QN1) FF4013(D=D2, CL=CLOCK2, S=SET2, R=RESET2, Q=Q2, QN=QN2)} # ---------- проба D-триггера ----------power(VCC)ground(GND)# D — что запомнить; «Такт» — фронт CLOCK (нажал кнопку); S = 1 — сразу 1, R = 1 — сразу 0input(D)input(S)input(R)button{label="Такт"}(CL)CD4013(D1=D, CLOCK1=CL, SET1=S, RESET1=R, D2=GND, CLOCK2=GND, SET2=GND, RESET2=GND, Q1=Q, QN1=QN)# ---------- лампы пробы ----------led(CL)led(Q)led(QN)# ---------- парктроник: генератор 60 Гц, «Сброс», делитель 60 → 30 Гц (остаётся в устройстве) ----------# D1 = QN1 — на каждом фронте CK60 триггер берёт своё перевёрнутое значение: C30 меняется через такт, вдвое медленнееclock{rt=60}(CK60)button{label="Сброс"}(RESET)CD4013(D1=C30N, CLOCK1=CK60, RESET1=RESET, SET1=GND, D2=GND, CLOCK2=GND, SET2=GND, RESET2=GND, Q1=C30, QN1=C30N)# ---------- лампы делителя ----------led(CK60)led(C30)Не получается? Что-то не работает →