Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Алгоритм простого осцилографа

Непрочитано 04.08.2017, 16:25  
Jane9226
Прописка
 
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Jane9226 на пути к лучшему
По умолчанию Алгоритм простого осцилографа

Здравствуйте народ. Тема такая. Нужно отобразить на дисплее две синусоиды, точнее их фазировку по отношению друг к другу. Их частота и амплитуда постоянные 400Гц и около одного вольта, меняется только фаза, причем ее численное значение в виде градусов вычислять не нужно.
То есть мне видится простой двух-канальный осцилограф, с постоянными настройками. Тема для меня новая, в связи с этим пара вопросов к профессионалам форума. Плата будет использоватся STM32F769Disco, просто потому что есть в наличии. Правильно ли я вообще понимаю сам алгоритм? Жду когда DMA заполнит два массива скажем из 1000 измерений каждый, далее в цикле нахожу в одном из них индекс элемента, значение которого превышает какой то уровень и начиная с этого идекса оставшиеся элементы с обох массивов вывожу на дисплей. Или всеже необходимо собирать триггер (компаратор) на входе? Прикручивать библиотеку emWin или можно обойтить BSP функциями? "Идиотские" вопросы задаются из соображения попытки сэкономить время и сделать как можно проще. Неплохо было бы нарыть в интернете какой нибудь простой проект и взять его за основу, но под Keil ничего путного не нашла. Буду рада выслушать Ваше мнение . Спасибо
Реклама:
Jane9226 вне форума  
Непрочитано 04.08.2017, 18:02  
MisterDi
Почётный гражданин KAZUS.RUN
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Алгоритм простого осцилографа

Если у Вас индикатор 320*240 точек то 1000 отсчетов даже много.
Для синхронизации можно использовать Ваш алгоритм, но ИМХО отображение нужно начинать за 10-20 отсчетов _ДО_ события синхронизации. Желательно при выводе учесть, что т.к. АЦП один, переключение каналов даст дополнительную погрешность в измерении фазы. Если точность фазы сигналов критична, нужно брать максимальную частоту дискретизации которую может дать АЦП. В идеале - использовать внешний двухканальный АЦП.
Тут простой проект на STM32F042: http://tomeko.net/miniscope_v2e/index.php?lang=en
__________________
misterdi<@>i.ua

Последний раз редактировалось MisterDi; 04.08.2017 в 18:07.
MisterDi вне форума  
Сказали "Спасибо" MisterDi
Jane9226 (04.08.2017)
Непрочитано 04.08.2017, 18:23  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Алгоритм простого осцилографа

Там индикатор, извините, 800*480 точек
АЦП-шка там не одна физически, да и они очень даже скоростные.
emWin прикручивать - только если какие красивости рисовать, кнопочки-окошечки няшненькие.

Я так понял, что точное значение фазы высчитывать не нужно, надо только показать смещение одного сигнала относительно другого, графически?

Последний раз редактировалось NewWriter; 04.08.2017 в 18:25.
NewWriter вне форума  
Сказали "Спасибо" NewWriter
Jane9226 (04.08.2017)
Непрочитано 04.08.2017, 20:28  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,272
Сказал спасибо: 11,856
Сказали Спасибо 4,157 раз(а) в 3,175 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Алгоритм простого осцилографа

Jane9226, а взять некоторый DSO таки не быстрее будет?
А так там (проекты открытые) можно и на алгоритмы обработки посмотреть в исходниках. Они от среды разработки не сильно зависят (C - он и в Африке (Keil) таки C).
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 04.08.2017, 21:17  
DanilinSA
Почётный гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,800
Сказал спасибо: 133
Сказали Спасибо 1,152 раз(а) в 549 сообщении(ях)
DanilinSA на пути к лучшему
По умолчанию Re: Алгоритм простого осцилографа

В твоем случае проще работать с буфером.
1) Оцифровка серии
2) Поиск триггер - условия
3) Если условия нет - идем на 1
4) Выводим кусок графика на экран

Обрати внимание, при проверке обрати внимание на то, что-бы не сработал триггер в самом конце серии.

Твой способ простой, но есть достаточно высокие шансы пропустить редкое событие. А синус отобразить - самое то.
DanilinSA вне форума  
Непрочитано 04.08.2017, 21:48  
Jane9226
Прописка
 
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Jane9226 на пути к лучшему
По умолчанию Re: Алгоритм простого осцилографа

Сообщение от MisterDi Посмотреть сообщение
Тут простой проект на STM32F042: http://tomeko.net/miniscope_v2e/index.php?lang=en
Человеческое Вам спасибо, буду разбираться после выходных
Сообщение от NewWriter Посмотреть сообщение
Я так понял, что точное значение фазы высчитывать не нужно, надо только показать смещение одного сигнала относительно другого, графически?
Совершенно верно, это по сути будущий индикатор положения LVDT
Цитата:
Jane9226, а взять некоторый DSO таки не быстрее будет?
конечно быстрее, и рыбу в магазине быстрее купить, вместо того чтоб на рыбалку ехать Интересен сам процесс и понимания самой сути.
Цитата:
emWin прикручивать - только если какие красивости рисовать, кнопочки-окошечки няшненькие.
То есть если я правильно поняла то:
1) можно обойтись функцией BSP_LCD_DrawPixel в цикле отрисовывая сигнал, без всяких лишних библиотек.
2) нужно использовать два разных ADC. (их там три)
3) Программный триггер имеет право на жизнь.
Jane9226 вне форума  
Непрочитано 04.08.2017, 23:03  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Алгоритм простого осцилографа

Надо еще учесть вот что. Реальный сигнал будет всяко иметь неидеальную синусоиду с некоторым количеством шума. Так вот, определяя программный триггер, надо его малость как-то усреднить или отфильтровать, чтобы не было дрожания по горизонтали отрисовываемой синусоиды
NewWriter вне форума  
Сказали "Спасибо" NewWriter
Jane9226 (09.08.2017)
Непрочитано 05.08.2017, 21:22  
AR_Favorit
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Алгоритм простого осцилографа

Сообщение от Jane9226 Посмотреть сообщение
Здравствуйте народ. Тема такая. Нужно отобразить на дисплее две синусоиды, точнее их фазировку по отношению друг к другу. Их частота и амплитуда постоянные 400Гц и около одного вольта, меняется только фаза, причем ее численное значение в виде градусов вычислять не нужно.
При такой постановке задачи я бы взял картинку синусоиды, и дважды выводил бы ее: вверху всегда в одном положении, внизу - со смещением, соответствующим фазовому сдвигу, который вычислял бы, сравнивая текущие значения с двух каналов АЦП или как-то еще по-простому.

Зачем делать полноценное осциллоскопирование, когда сигнал заранее известен и неизменен?
AR_Favorit вне форума  
Сказали "Спасибо" AR_Favorit
GarryZZ (06.08.2017)
Непрочитано 06.08.2017, 06:45  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,272
Сказал спасибо: 11,856
Сказали Спасибо 4,157 раз(а) в 3,175 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Алгоритм простого осцилографа

Jane9226, там таки что-то про LVDT вроде изначально было?
Если так - то лучше делать измеритель на 3 входа, поскольку реальная форма сигнала на средней катушке сильно поможет работать с сигналом на двух других.
А уже вывод результата на экран - сначала как получится/проще/привычнее/известно, а потом уже можно найти/написать/адаптировать подходящую библиотеку.
А отрисовку лучше делать таки сразу всех, а не по одной. Так выше шанс красивую картинку получить.
Триггеры использовать только для отметок на картинке.
С буфером данных - таки иметь его в 2-3 раза длинне, чем выборка с ADC.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 06.08.2017 в 06:48.
mike-y-k вне форума  
Непрочитано 08.08.2017, 10:31  
Akkord
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2008
Сообщений: 708
Сказал спасибо: 302
Сказали Спасибо 408 раз(а) в 263 сообщении(ях)
Akkord на пути к лучшему
По умолчанию Re: Алгоритм простого осцилографа

Сообщение от Jane9226 Посмотреть сообщение
Нужно отобразить на дисплее две синусоиды, точнее их фазировку по отношению друг к другу. Их частота и амплитуда постоянные 400Гц и около одного вольта, меняется только фаза, причем ее численное значение в виде градусов вычислять не нужно.
Все что Вам нужно для этого - фигуры Лиссажу...
А дальше Ваша фантазия как программиста....
Обработка без "осциллографирования"
На втором рисунке показано работа сразу на двух частотах....
На третьем рисунке - "чистые" Лиссажу.... Сдвиг от центра оси есть результат работы третьей катушки....

Можно пробовать и трехмерное отображение...
Миниатюры:
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 0
Размер:	76.0 Кб
ID:	117350   Нажмите на изображение для увеличения
Название: 4.png
Просмотров: 0
Размер:	57.1 Кб
ID:	117351   Нажмите на изображение для увеличения
Название: 5.png
Просмотров: 0
Размер:	32.2 Кб
ID:	117352  

Akkord вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
алгоритм опережения зажигания artyomugr Микроконтроллеры, АЦП, память и т.д 18 02.03.2012 11:40
алгоритм преобразования CVSD (ADM) в PCM csm7 Цифровые сигнальные процессоры 0 04.02.2012 15:17
Алгоритм частотомера artyomugr Микроконтроллеры, АЦП, память и т.д 26 11.05.2011 15:42
Видеовход компа для осцилографа z3 Измерительное оборудование 1 24.02.2010 21:45
Алгоритм билдер для ПИК контроллеров. Gladkih Микроконтроллеры, АЦП, память и т.д 9 24.02.2007 18:41


Часовой пояс GMT +4, время: 16:30.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.