TTL и CMOS логика Цифровая схемотехника на логических микросхемах. Счетчики, сдвиговые регистры, простая логика... |
03.02.2016, 21:50
|
|
Прописка
Регистрация: 26.01.2007
Сообщений: 106
Сказал спасибо: 4
Сказали Спасибо 37 раз(а) в 25 сообщении(ях)
|
Re: Как двинуть фазу на дискретной логике?
Состав: генератор, счётчик, регистр, схема сравнения, Д-триггер. Поставить генератор более высокой частоты для дискретизации функции поиска сдвига. Чем выше частота, тем точнее вычисление. При 1МГц ошибка 1%. После генератора двоичный счётчик. Фронтами + и - генератор и счётчик сбрасываются. Генератор не обязательно, если сложно, типа кварц. При приходе очередного фронта перед тем, как сбросить счётчик, число на счетчике запоминается в регистре. Подать на схему сравнения половину числа на регистре (отбросить мл разряд) и числа со счётчика. При равенстве в выходном триггере установить значение текущего сигнала 5кГц (Д-триггер, на Д подать входной 5кГц, на С подать фронт от сработки схемы сравнения.
|
|
|
|
03.02.2016, 22:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Как двинуть фазу на дискретной логике?
Сообщение от ua9ofh
|
конкретезировать задачу?
|
Ну да! Давно уже назрело!
А то тут возникло такое многообразие вариантов, народ уже выдыхается, а Леха никак не соизволит постучать пальчиками по клаве, чтобы конкретизировать свои хотелки. Или ему уже все это по барабану, и он сейчас готовится озадачить нас новой темой?
|
|
|
|
03.02.2016, 22:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Как двинуть фазу на дискретной логике?
Сообщение от Easyrider83
|
Cyclone V справится! Там есть PLL.
(щютка)
|
Первый тоже справится.
хотя...
...как завязать через ФАПЧ и синхронизировать с опорой, надеюсь, объяснять необходимости нет?
Павел, эта записнушка чуть моложе Вас.
Можно, есличё, ГУН и попроще - на двух инверторах и двух диодах.
Справится любая CPLD, в том числе и GAL/ATF16V8.
(НЕ шютка)
|
|
|
|
03.02.2016, 22:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Как двинуть фазу на дискретной логике?
Сообщение от vsch8
|
Состав: генератор, счётчик, регистр, схема сравнения, Д-триггер. Поставить генератор более высокой частоты для дискретизации функции поиска сдвига. Чем выше частота, тем точнее вычисление. При 1МГц ошибка 1%. После генератора двоичный счётчик. Фронтами + и - генератор и счётчик сбрасываются. Генератор не обязательно, если сложно, типа кварц. При приходе очередного фронта перед тем, как сбросить счётчик, число на счетчике запоминается в регистре. Подать на схему сравнения половину числа на регистре (отбросить мл разряд) и числа со счётчика. При равенстве в выходном триггере установить значение текущего сигнала 5кГц (Д-триггер, на Д подать входной 5кГц, на С подать фронт от сработки схемы сравнения.
|
Состав:
1. генератор с частотой - чем выше, тем точнее
2. 1-й счетчик, измеряющий период исходного меандра
3. регистр, для фиксации результата 1-го счетчика
4. два счетчика (2-й и 3-й) на вычитание, с предустановкой, и остановкой счета при достижении нуля, для формирования задержек фронтов
5. триггер RS
Положительным фронтом исходного меандра в регистр записывается состояние 1-го счетчика, деленное на 4 (без двух младших разрядов), и сразу же счетчик обнуляется, начиная подсчет длительности следующего периода.
Выходы регистра подсоединены к установочным входам 2-го и 3-го счетчиков.
Положительным фронтом исходного меандра записывается предустановка 2-го счетчика, и он начинает счет на уменьшение.
Отрицательным фронтом исходного меандра записывается предустановка 3-го счетчика.
Когда 2-й счетчик достигнет нуля, он устанавливает RS триггер в 1.
Когда 3-й счетчик достигнет нуля, он сбрасывает RS триггер в 0.
Таким образом, на выходе RS триггера получим меандр, сдвинутый на 90 градусов относительно исходного.
П.С. исправил ошибочку. Значение первого счетчика надо делить не на 2, а на 4. Ведь в счетчике у меня длительность всего периода, а задержка нужна на четверть.
Такой способ обеспечивает сдвиг ровно на 90 градусов даже при изменении частоты исходного меандра в довольно широких пределах.
Также в очень широких пределах может меняться и скважность.
Но, во-первых, эту форму сигнала уже нельзя будет называть меандром (по определению, меандр должен иметь равные длительности положительного и отрицательного импульсов, то есть скважность=2).
А во-вторых, некорректно будет выражать сдвиг в угловых единицах. Придется перейти на безразмерные единицы - доли периода. Например: четверть периода; 0,165 периода.
Последний раз редактировалось Alex9797; 04.02.2016 в 04:32.
|
|
|
Сказали "Спасибо" Alex9797
|
|
|
03.02.2016, 23:08
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.01.2007
Сообщений: 3,123
Сказал спасибо: 61
Сказали Спасибо 1,153 раз(а) в 624 сообщении(ях)
|
Re: Как двинуть фазу на дискретной логике?
Если частоту можно брать больше, и входной сигнал меандр, то:
Если не меандр, то частоту увеличить в два раза и поставить после источника сигнала еще один триггер .
|
|
|
|
03.02.2016, 23:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,616
Сказал спасибо: 708
Сказали Спасибо 4,383 раз(а) в 2,007 сообщении(ях)
|
Re: Как двинуть фазу на дискретной логике?
Сообщение от Easyrider83
|
(щютка)
|
Зачем сразу подсказываешь??
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
|
|
|
|
04.02.2016, 09:24
|
|
Временная регистрация
Регистрация: 02.09.2006
Сообщений: 86
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как двинуть фазу на дискретной логике?
Сообщение от vlad3156
|
вопрос к ТС...а вообще-то эту операцию сдвига на 90грд. с какой точностью и стабильностью надо исполнить..???
...а то можно и на одновибраторах сделать так..
|
с точностью 0.5 градуса надо двинуть фазу, про стабильность пока в цифрах сложно говорить
|
|
|
|
04.02.2016, 09:26
|
|
Временная регистрация
Регистрация: 02.09.2006
Сообщений: 86
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как двинуть фазу на дискретной логике?
Сообщение от Alex9797
|
А не будет ли lexa1000 так любезен, дать подтверждение написанному в этой цитате? То есть, можно ли написанное в ней понимать буквально, вот так:
1. Есть меандр - это означает, что он приходит извне, от какого-то устройства, на которое мы повлиять не можем. И мы не можем подменить этот меандр своим, сформированным при помощи генератора, счетчика, и логических элементов.
2. 5кГц скважность 2 - именно эти значения частоты и скважности будут всегда, будут поддерживаться с достаточно высокой точностью, и регулировать эти величины не требуется.
3. надо его сдвинуть по фазе на 90 град - сдвиг по фазе нужен именно 90 градусов, и никакой другой.
4. сделать на дискретной логике - нужно сделать именно на логических элементах, без применения аналоговой схемотехники, и только на дискретной логике, не применяя ПЛМ.
Все верно?
|
все верно, так и есть.
|
|
|
|
04.02.2016, 09:27
|
|
Временная регистрация
Регистрация: 02.09.2006
Сообщений: 86
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как двинуть фазу на дискретной логике?
Сообщение от vlad3156
|
...можно сделать так...с регулировкой фазового сдвига...с виду сложновато
|
ну тут я точно не разберусь)
|
|
|
|
04.02.2016, 09:31
|
|
Временная регистрация
Регистрация: 02.09.2006
Сообщений: 86
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как двинуть фазу на дискретной логике?
Сообщение от Alex9797
|
Состав:
1. генератор с частотой - чем выше, тем точнее
2. 1-й счетчик, измеряющий период исходного меандра
3. регистр, для фиксации результата 1-го счетчика
4. два счетчика (2-й и 3-й) на вычитание, с предустановкой, и остановкой счета при достижении нуля, для формирования задержек фронтов
5. триггер RS
Положительным фронтом исходного меандра в регистр записывается состояние 1-го счетчика, деленное на 4 (без двух младших разрядов), и сразу же счетчик обнуляется, начиная подсчет длительности следующего периода.
Выходы регистра подсоединены к установочным входам 2-го и 3-го счетчиков.
Положительным фронтом исходного меандра записывается предустановка 2-го счетчика, и он начинает счет на уменьшение.
Отрицательным фронтом исходного меандра записывается предустановка 3-го счетчика.
Когда 2-й счетчик достигнет нуля, он устанавливает RS триггер в 1.
Когда 3-й счетчик достигнет нуля, он сбрасывает RS триггер в 0.
Таким образом, на выходе RS триггера получим меандр, сдвинутый на 90 градусов относительно исходного.
П.С. исправил ошибочку. Значение первого счетчика надо делить не на 2, а на 4. Ведь в счетчике у меня длительность всего периода, а задержка нужна на четверть.
Такой способ обеспечивает сдвиг ровно на 90 градусов даже при изменении частоты исходного меандра в довольно широких пределах.
Также в очень широких пределах может меняться и скважность.
Но, во-первых, эту форму сигнала уже нельзя будет называть меандром (по определению, меандр должен иметь равные длительности положительного и отрицательного импульсов, то есть скважность=2).
А во-вторых, некорректно будет выражать сдвиг в угловых единицах. Придется перейти на безразмерные единицы - доли периода. Например: четверть периода; 0,165 периода.
|
на выходе меандр получается и фаза точно на 90 двигается
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:00.
|
|