Задание
Предыдущая схема оказалась объективно не рабочей, т.к. при подаче лог.1 на ENA триггеров сдвигового регистра, в них, при переключении галетного переключателя, могло записаться что угодно из-за сдвига входных данных на входе D первого D-триггера с разрешением регистра. А также из-за того, что я не реализовал часть задания курсовой работы в котором было сказано, что должно быть 3 клетки и каждая из них программируется (от 1 до 16 мс) с помощью галетного переключателя, то я решил переделать схему по вашему видео.
НО при этом я опять столкнулся со странным багом, связанным со счетчиком, у которого неправильно ограничивается пересчет.
Я сделал 4-х битный шифратор с помощью каскадирования двух 3-х битных, который преобразует лог 1 с галетного переключателя в двоичный код на входе. Все входные и выходные сигналы идут через НЕ, потому что шифратор инверсный, работает при подаче лог.0. Д-триггеры нужны для подавления дребезга.
Заданную частоту в 2кГц поделил пополам D триггером и сделал полученный тактовым сигналом для всей схемы.
Затем собрал схему, программируемого делителя частоты, которая сравнивает с помощью компаратора сигнал с шины шифратора и число со счетчика, который считает тактовые импульсы до тех пор, пока число на счетчике не станет равным числу на шине шифратора. Сигнал СКЕ дальше идет на вход разрешения работы ENT+ENP другого счетчика и на сброс данного счетчика.
СКЕ приходит на ENT+ENP счетчика, который считает кол-во клеточек для включения и выключения фаз шагового двигателя. Коэффициент пересчета был ограничен 12, чтобы счетчик считал до 11. Это нужно, чтобы фазы включались далее попеременно, т.е. 0-2 фаза А, 3-5 фаза Б, 6-8 фаза С, 9-11 D. Но счетчик почему-то досчитывает до 12, моя схема не учитывает данную клетку и получается не нужный мне пробел в работе.. При этом получается, что 0 и 12 счет вместе равны одному нормальному.
Далее используется два компаратора для каждой из фаз, которые сравнивают число с CNT с BEG и END. Для первого компаратора число CNT должно быть больше или равно BEG и для второго меньше или равно END, тогда на выходе выдается единица. Далее к шинам BEG и END подключены соответствующие биты для сравнения, так для каждой из 4 фаз. После все фазы подключены к каскаду D-триггеров, чтобы избезат ложных вкл/выкл.
При переключении одного из 16 положений галетного переключателя лог.1 через инвертор сначала поступает на каскад из D-триггеров 74377 для подавления дребезга. Далее сигнал поступает на каскад из двух 3-х битных шифраторов 74148, который на выходе выдает двоичный код, с помощью элементов 2И-НЕ и НЕ. После этого код поступает на модуль делителя частоты, который состоит из компаратора 7485 и счетчика 74163. Другой счетчик 74163 считает количество импульсов, поступающих с делителя. Двоичный код с этого счетчика поступает на несколько компараторов, которые сделаны для четырех фаз. Сигнал, полученный с предыдущего модуля, поступает каскад из 8 D-триггеров 74377 для устранения ложных включений/выключений.
В ходе данной работы было необходимо разработать схему в программном пакете MAX+plus, которая будет соответствовать техническому заданию. Для этого необходимо провести анализ задания, построение схемы и проверку работоспособности схемы, путем построения временных диаграмм.
