Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
24.04.2007, 11:15
|
|
Частый гость
Регистрация: 07.07.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Формирователь импульсов нс диапазона
Никогда не вставала такая цель, но тут потребовалось постороить программируемый формирователь импульсов с запуском от микроконтроллера.
Работу такого устройства понимаю следующим образом: Микроконтроллер выставляет длительность импульса и по запускающему управляющему импульсу от микроконтроллера формирователь импульсов формирует на своем выходе одиночный импульс заданной длительности. Требуется получить длительности 5нс, 10нс, 20нс, 50нс, 100нс, 500нс, 1мкс.
Кто-нибудь подскажите конкретные схемные решения или хоть общий подход, птому как нашел нечто похожее только на ждущих мультивибраторах. Но если делать на ждущих мультивибраторах, то там вроде нельзя сделать импульс на выходе длительностью меньше 20нс.
|
|
|
|
24.04.2007, 11:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Какие требования к получаемым импульсам?(точность,форма).
|
|
|
|
24.04.2007, 11:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Какие требования к получаемым импульсам?(точность,форма).
|
|
|
|
24.04.2007, 11:57
|
|
Прописка
Регистрация: 26.08.2005
Сообщений: 160
Сказал спасибо: 1
Сказали Спасибо 43 раз(а) в 38 сообщении(ях)
|
5 нс можно реализовать на ПЛИС Cyclone II.
На вход подаем опорную частоту, умножаем её с помощью
PLL до 200 МГц, ставим счетчик, два компаратора и триггер. Когда t=t1 триггер переключается в 1, а когда t=t2 в 0.
Кусок кода на AHDL:
out_ff = lpm_ff_component0.q[0] ;
lpm_ff_component0.clock = clk ;
lpm_ff_component0.data[0] = data_ff ;
cmp[0] = lpm_compare_component0.AeB ;
lpm_compare_component0.dataa[] = time[] ;
lpm_compare_component0.datab[] = altsyncram_component.q_b[WIDTH_BUS-1..0] ;
lpm_ff_component0.sclr = lpm_compare_component1.AeB ;
lpm_compare_component1.dataa[] = time[] ;
lpm_compare_component1.datab[] = altsyncram_component.q_b[2*WIDTH_BUS-1..WIDTH_BUS] ;
cmp[1] = enable ;
CASE cmp[] IS
WHEN B"0x" =› data_ff = GND ;
WHEN B"10" =› data_ff = out_ff ;
WHEN B"11" =› data_ff = VCC ;
END CASE ;
|
|
|
|
24.04.2007, 12:20
|
|
Частый гость
Регистрация: 07.07.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
требования: мощность не высокая до 150 миливатт, импульс очень желательно, чтобы был приближен к идеальному прямоугольному. Это вообще необходимо, чтобы по волокну запускать лазерный ипульс определенной длительности.
|
|
|
|
24.04.2007, 13:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Задачка не из простых, я бы, на Вашем месте, использовал готовый генератор наносекундных импульсов с внешней синхронизацией. Если все таки есть желание делать самому, то есть на данный момент,перспективная элементная база в виде СВЧ S-диодов (напр.3А530) для работы в лавинном режиме. Программное получение 5нс импульсов вряд ли реализуемо. Да и для наблюдения таких импульсов понадобится осциллограф как минимум с гигагерцовой полосой.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:43.
|
|