Измерительное оборудование Осциллографы, мультиметры, анализаторы и другая измерительная техника необходимая каждому разработчику. |
01.10.2012, 21:10
|
#451
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,725
Сказал спасибо: 2,424
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: Портативные осцилографы - своими руками
А про изображение я имел не это ввиду. Просто каждая строка имеет свой номер от начала кадра и, по ее номеру, выбирается нужное место изображения. И развертка стартует с нужной строки.
Последний раз редактировалось baiderin; 01.10.2012 в 21:12.
Причина: добавление
|
|
|
|
01.10.2012, 21:14
|
#452
|
Прописка
Регистрация: 19.12.2009
Сообщений: 120
Сказал спасибо: 22
Сказали Спасибо 35 раз(а) в 22 сообщении(ях)
|
Re: Портативные осцилографы - своими руками
я понял..
просто нашел вот такой список, и хотелось бы понять что из него действительно нужно, а что лишь теоретические идеи
Цитата:
|
Современные цифровые осциллографы, например LeCroy, помимо традиционного для аналогового осциллографа, запуска по положительному или отрицательному фронту имеют следующие режимы схемы синхронизации или другое название - условия запуска развертки:
• Запуск по параметрам окна . Окно – это зона с верхней и нижней границами, между которыми находится значение уровня запуска. Схема запуска срабатывает, когда уровень сигнала пересекает границу в направлении выхода из зоны. Следующий запуск возможен после возврата сигнала в зону окна.
• Рантовая синхронизация . Рант – это импульс положительной или отрицательной полярности имеющий меньший уровень, чем все остальные импульсы в регулярной последовательности. Запуск развертки осуществляют только те импульсы, амплитуды которых попадают в заданный пользователем диапазон согласно условий когда импульс пересечет 1-й заданный порог уровня, но не пересечет 2-й заданный порог уровня и повторно пересечет 1-й порог. Это вид синхронизации позволяет производить запуск развертки по сигналу, отличающемуся только по уровню в последовательности периодического сигнала, когда частота и длительность для всего сигнала одинакова. В этом режиме можно так же задавать диапазон длительностей ранта и напряжений, в этом случае запуск развертки будет происходить в случае нахождения длительности и амплитуды ранта внутри либо за пределами заданного диапазона.
• Запуск по скорости нарастания (спада) сигнала . Скорость нарастания (спада) сигнала - это время, в течение которого происходит изменение (нарастание или спад) сигнала от заданного уровня 1 к заданному уровню 2. Запуск развертки осуществляют только те сигналы, у которых скорость нарастания попадает в заданные пределы. Скорость нарастания (спада) сигнала не следует трактовать только как время нарастания или спада сигнала, это более широкое понятие, включающее в себя общее времени измерения сигнала от уровня 1 до уровня 2, в течение которого сигнал может многократно изменять вектор, лишь бы он находился в пределах зоны образованной уровнями 1 и 2.
• Запуск по условиям длительности сигнала . Запуск происходит по положительным или отрицательным импульсам заданной длительности, имеющим амплитуду выше или ниже заданного уровня. Также задаются условия контроля длительности – больше, меньше, в пределах или за пределами заданных значений. Запуск будет происходить в случае выполнения заданных условий запуска.
• Запуск по глитчу; Запуск по ширине глитча – частный случай режима запуска по длительности. Запуск происходит по импульсам, имеющим заданную длительность или входящим в заданный диапазон длительностей. Напряжения и диапазоны напряжений в расчет не берутся.
• Запуск по интервалу . В отличие от режима синхронизации по глитчу, в режиме синхронизации по интервалу значение имеет не длительность импульса, а длительность интервала, разделяющего два последовательно идущих фронта одной и той же полярности — положительной или отрицательной. Этот режим синхронизации можно использовать для регистрации интервалов, длящихся меньше или больше заданного времени. Можно также определить диапазон длительностей, в котором или вне которого должен находиться интервал между двумя фронтами, чтобы вызвать запуск развертки.
• Логический запуск. Этот вид синхронизации позволяет организовать запуск по логической схеме, входами которой являются каналы осциллографа (канал1, 2,3 и 4 и вход внешней синхронизации). Для формирования логической функции имеется 4 логических оператора (И, НЕ-И, ИЛИ, НЕ-ИЛИ). По каждому из входов можно независимо установить высокий (уровень логической единицы) или низкий (уровень логического нуля) уровень.
• Отложенный запуск . Используется главным образом при регистрации однократных событий, и обычно с предпусковой задержкой. С его помощью можно фиксировать моменты пропадания сигнала. Запуск происходит по истечении времени ожидания, исчисляемого от последнего прохождения уровня запуска.
• По качеству. При этой синхронизации необходимо задействовать два канала осциллографа. Это режим синхронизации, при котором положительный или отрицательный фронт одного сигнала (канала) служит разрешением на запуск от другого сигнала (канала). В этом режиме задается интервал времени или количество событий после прихода разрешающего фронта, по истечении которого должен произойти запуск.
• По состоянию . При этой синхронизации необходимо задействовать два канала осциллографа. Запуск по квазистабильному уровню одного канала, согласно которому сигнал, определяющий условие запуска на втором канале, должен быть выше или ниже заданного уровня. Отличие от запуска по качеству состоит в том, что сигнал первого канала должен именно оставаться ниже или выше заданного уровня, а не временно переходить в области выше или ниже этого уровня.
• ТВ синхронизация. Обеспечивает устойчивый запуск от стандартного (или специального) композитного видеосигнала с возможностью выделения строк. Возможно исследование сигнала в системах PAL, SECAM, NTSC, HDTV и пр.
|
|
|
|
|
01.10.2012, 21:18
|
#453
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Портативные осцилографы - своими руками
Цитата:
|
Немного поменял вызов Scope() из main (.....skip....)
иначе при большом буффере захвата и низкой скорости развертки все зависало, а энкодер нужно обрабатывать
|
Правильное решение!!! (с)
Я тоже заметил этот недостаток. ИМХО самый правильный вариант - делать обработку клавиатуры в прерывании, блокируя их на время работы с экраном. Или делать нормальную многозадачную систему с отдельными потоками для клавиш, экрана и захвата. Но это пока только концептуальный план.
P.S. может перенести эти сообщения в основную ветку? Думаю многим будет интересно.
__________________
misterdi<@>i.ua
Последний раз редактировалось MisterDi; 01.10.2012 в 21:26.
|
|
|
|
01.10.2012, 21:23
|
#454
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,725
Сказал спасибо: 2,424
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: Портативные осцилографы - своими руками
Я, в основном, пользуюсь "традиционным способом запуска". Все остальное применяется в редких, специальных случаях. И понадобится то, что и не предусмотрели. Одним словом-экзотика. Телевизионный запуск применяется для узких спецов-разработчиков ТВ оборудования.
|
|
|
|
01.10.2012, 23:50
|
#455
|
Частый гость
Регистрация: 04.10.2009
Сообщений: 11
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Портативные осцилографы - своими руками
Да, конечно.
|
|
|
|
02.10.2012, 12:43
|
#456
|
Частый гость
Регистрация: 04.10.2009
Сообщений: 11
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Портативные осцилографы - своими руками
Разбираюсь с режимами осциллографа. Не понял чем программно отличаются режим Авто и Нормал? Триггер в режиме Normal взводится на ожидание события и захват какой коммандой?
Посмотрел в Квартусе - возможно этот режим еще не готов в прошивке железа? Потому как в режиме нормал блокируется бит Sample, я правильно понял?
|
|
|
|
02.10.2012, 19:44
|
#457
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Портативные осцилографы - своими руками
В режиме Авто не выполняется ожидание синхроимпульса а просто показываются захваченные данные. В режиме Нормал отображение не начинается, пока не пройдет импульс синхронизации. В этом режиме появляется возможность переключения одиночный - непрерывный захват.
__________________
misterdi<@>i.ua
|
|
|
|
02.10.2012, 19:54
|
#458
|
Частый гость
Регистрация: 04.10.2009
Сообщений: 11
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Портативные осцилографы - своими руками
Т.е. в "Авто" бит trig_done не проверяется, а ожидаем только mem_done? mem_done ведь означает что буфер заполнился на заданную глубину и данные готовы для отображения? (при этом trig_done может быть =1 или =0 в зависимости от того наступило ли событие trigger при наполнении буфера или нет)?
Как у меня тогда получается остановить картинку с тестового генератора в режиме auto? А в режиме Normal захват вообще не происходит (но это возможно я чегото намудрил).
Буду еще копаться с режимами попозже, может проясниться дело.
Последний раз редактировалось executer01; 02.10.2012 в 20:00.
|
|
|
|
03.10.2012, 17:43
|
#459
|
Вид на жительство
Регистрация: 11.04.2007
Сообщений: 309
Сказал спасибо: 5
Сказали Спасибо 56 раз(а) в 44 сообщении(ях)
|
Re: Портативные осцилографы - своими руками
Сообщение от MisterDi
|
В режиме Авто не выполняется ожидание синхроимпульса а просто показываются захваченные данные.
|
это режим свободной развертки.
А "Авто" (поэтому он так и называется) - это комбинация свободной и ждущей. То есть, вначале некоторое время происходит ожидание условия синхронизации (как при ждущем запуске), а затем, если условие не выполнилось - развертка всё равно запускается.
|
|
|
|
04.10.2012, 20:09
|
#460
|
Частый гость
Регистрация: 04.10.2009
Сообщений: 11
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Портативные осцилографы - своими руками
Я схожу сума. Как так получается
#define LCD 300;
int temp;
temp=(int)A-(int)B+LCD+10;
при A=250; B=500; temp в дебаге выдает 310????? Должно же быть 60.
а шо, конструкция x›y?x:y - это не директива компилятору а прямо таки инструкция языка си??
На самом деле проблема в том была, что у меня не совсем 300 в LCD было, a
#define LCD 250›300?250:300; - я то думал это дает константу 300 и все. А оно решило по формуле все пересчитать. вобщем значение LCD нужно в скобки при определении засунуть.
Последний раз редактировалось executer01; 04.10.2012 в 20:36.
|
|
|
Сказали "Спасибо" executer01
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:34.
|
|