Форум программистов, компьютерный форум, киберфорум
Электроника и радиотехника
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/26: Рейтинг темы: голосов - 26, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 30

Логический анализатор с пасьянсом и радистками

26.09.2017, 09:46. Показов 4983. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возникла у меня как-то потребность в логическом анализаторе. И как раз stm32f3Dyscovery без дела валяется, никак не могу придумать чего бы такого сделать, чтоб в атмегу не влезало и достаточно нужное, чтобы интерес не пропал на второй день.

Но один лишь логический анализатор - это скучно да и в stm32 остается куча ресурсов. Поэтому было решено сделать универсальный измерительный прибор.
Задача минимум:
1) Логический анализатор.
2) Генератор ШИМ
3) Многоканальный осциллограф.
4) Многоканальный генератор цифрового сигнала.
5) Двухканальный генератор аналогового сигнала.

Задача максимум измерители L, C, ESR, что-нибудь ещё...

Связь через виртуальный COM порт.

На данный момент реализованы: Генератор ШИМ и логический анализатор по протоколу SUMP. (пока только 8 каналов, но будет до 16-ти наверное)

Проект выложен на ГитХаб
https://github.som/zkoky/zlab

Также есть заготовка собственной программы и собственный протокол (но пока не покажу) Собственный протокол обмена максимально отвязан от железа. И если кто-то вздумает к примеру сделать лишь осциллограф с поддержкой этого протокола но с другими возможностями, то программа опознает в нем лишь осциллограф и будет знать чего он умеет, а чего не умеет. Предусмотрено включение нескольких модулей одновременно с разруливанием кофликтов (если два модуля используют одни и те же ресурсы).
Программа пишется на С++ с кроссплатформенной графической библиотекой wxWidgets, так что для переноса на линукс достаточно лишь подшаманить файл som_port.cpp.

Было бы неплохо использовать PulseView вместо написания своей программы и какие-то уже имеющиеся протоколы, но под Wymdows она больно глючная. Сначала падала при попытке подключения (об этом есть на багтрекере). Сегодня подключилась, но замер прошел только один раз, об этом я тоже читал у них на багтрекере. Проблема в том, что разработчики работают под Linux и компилируют Wymdows версию там же. И они не могут повторить эту ошибку, т.к. "Мастдаями" не пользуются.

Может кому попадались похожие open source проекты, открытые протоколы для осцилла например с уже имеющейся программой?

Ну и вообще критика приветствуется
P.S. я знаю, что на али экспрессе продаются дешевые анализаторы, но тут важен процесс.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.09.2017, 09:46
Ответы с готовыми решениями:

Логический анализатор
У меня стоит учебная задача построения логического анадизатора строк на Python. Программа должна принимать строку вида ...

Логический анализатор
Помогите пожалуйста решить задачу! Условие: Разработать приложение "Логический анализатор", выполняющее функцию анализатора...

Логический анализатор
Собрал сабж на православном контроллере CY7C68013A. Популярный USBee сделан на таком же. Может использоваться с софтом от Saleae и USBee,...

10
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
26.09.2017, 10:21
ТТХ в итоге так и не огласили.

мастеркарД
0
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
26.09.2017, 10:31
Цитата Сообщение от otixsom
ТТХ в итоге так и не огласили.
F3 с USB, значит без разгона, 72/5 = 14.4 MSPS для ЛА, если захватывать 32КБ через DMA, 28.8 MSPS, если писать на асме и тогда размер зависит от того, сколько не жалко флеша, ну и 36 MSPS, если запускать код захвата из CCM, но там всего где-то 1.3КБ максимальный размер буфера будет. Это в лучшем случае, но всегда можно написать и хуже :)
0
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
26.09.2017, 10:51
Цитата Сообщение от zkoky
универсальный измерительный прибор
...
виртуальный COM порт
...
собственный протокол
Я бы поддержал, если б связь с компом через SWD+OpenOCD и соотв. протокол - команды OpenOCD

Получился бы красивый проект утилизации любых дискаверин
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
26.09.2017, 11:28
Цитата Сообщение от Riftistor
Цитата Сообщение от otixsom
ТТХ в итоге так и не огласили.
но всегда можно написать и хуже :)
Вот поэтому и спросил )
0
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
26.09.2017, 11:33
Цитата Сообщение от otixsom
Вот поэтому и спросил )
F3 хорош если делать простой и мелкий ЛА, но с аналоговыми каналами и встроенными усилителями, а тут целая Dyscovery... Если б она хотя бы на F4 была, я с него выжимал 130 MSPS для 8 бит.
0
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 30
26.09.2017, 14:10
Цитата Сообщение от Riftistor
Цитата Сообщение от otixsom
ТТХ в итоге так и не огласили.
F3 с USB, значит без разгона, 72/5 = 14.4 MSPS для ЛА, если захватывать 32КБ через DMA
Кварц ещё не впаивал. Пока тестирую на 48МГц тактовой от HSI. Захватываю через DMA по таймеру. Выдал на ШИМе 12МГц DMA запустил на 24МГц(теоретически)
https://cloclo27.datacloudmail.ru/weblink/view/mTka/vZkSiFvs5?etag=20D88831CC87D17C9F46EDA53 57E0CC569E73C70&key=fe8a80e45b9522d8efdf 66e81402bfdac837e6f3
Пропуски примерно на каждом десятом импульсе. С кварцем будет на треть быстрее. частоту показывает неправильно т.к. программа думает, что захват на 20МГц.
Для домашних поделок думаю вполне хватит. Ну и готовый девайс можно и на 4-ой серии собрать. Сейчас только изучаю СТМ.

Забить на встроенный USB и передавать данные через FTDI - это план Б. Но вариант с 4-ой серией выглядит привлекательней. Хотя мне такие скорости вроде не нужны.

А откуда 72/5 Если тактировать от таймера - то захватывать можно на половине частоты шины (что я и делаю). Другое дело, шина одна на всех и передавать их на такой скорости не получится. Кстати тут подумалось если его нежно усыпить на время измерения - то шину ведь никто занимать не будет. Я так понимаю DMA пихает данные в память за пять тактов или квота на использование шины?

Цитата Сообщение от Riftistor
F3 хорош если делать простой и мелкий ЛА, но с аналоговыми каналами и встроенными усилителями, а тут целая Dyscovery... Если б она хотя бы на F4 была, я с него выжимал 130 MSPS для 8 бит.
Дискавери - это испытательный полигон. В коробке с микросхемами лежат несколько 103 и 303 стм-ок вот одна из них и будет девайсом. Код пишу с учетом возможной переделки под другой камень. Аналоговую часть буду рассчитывать с учетом выжатых максимальных характеристик.

Цитата Сообщение от vt340
Я бы поддержал, если б связь с компом через SWD+OpenOCD и соотв. протокол - команды OpenOCD
Хм. А каким образом тут из OpenOCD можно пользу выжать? Этож для дебага вроде, а не для измерительных приборов.
0
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
26.09.2017, 14:29
Цитата Сообщение от zkoky
Кварц ещё не впаивал. Пока тестирую на 48МГц тактовой от HSI. Захватываю через DMA по таймеру. Выдал на ШИМе 12МГц DMA запустил на 24МГц(теоретически)
https://cloclo27.datacloudmail.ru/weblink/view/mTka/vZkSiFvs5?etag=20D88831CC87D17C9F46EDA53 57E0CC569E73C70&key=fe8a80e45b9522d8efdf 66e81402bfdac837e6f3
Пропуски примерно на каждом десятом импульсе. С кварцем будет на треть быстрее. частоту показывает неправильно т.к. программа думает, что захват на 20МГц.
Для домашних поделок думаю вполне хватит. Ну и готовый девайс можно и на 4-ой серии собрать. Сейчас только изучаю СТМ.

Забить на встроенный USB и передавать данные через FTDI - это план Б. Но вариант с 4-ой серией выглядит привлекательней. Хотя мне такие скорости вроде не нужны.

А откуда 72/5 Если тактировать от таймера - то захватывать можно на половине частоты шины (что я и делаю). Другое дело, шина одна на всех и передавать их на такой скорости не получится. Кстати тут подумалось если его нежно усыпить на время измерения - то шину ведь никто занимать не будет. Я так понимаю DMA пихает данные в память за пять тактов или квота на использование шины?
72/5 - это максимум при работе с DMA(для F3/F0, F4 на такт быстрее, но у него еще есть более быстрый DCMI), причем без таймера, с таймером еще, кажется, на такт медленнее. И это во сне, если на максимальной скорости проверять в цикле флаг, то это негативно сказывается на точности.
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
26.09.2017, 14:37
zkoky, ИМХО большего чем на кипарисине не выжмешь. Смысл?
Надо делать по типу Saleae16 или LA2016...
0
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
26.09.2017, 17:58
Цитата Сообщение от zkoky
Хм. А каким образом тут из OpenOCD можно пользу выжать? Этож для дебага вроде, а не для измерительных приборов.
OpenOCD - это не только gdb-сервер, но и telnet-сервер

Цитата Сообщение от zkoky
Дискавери - это испытательный полигон. В коробке с микросхемами лежат несколько 103 и 303 стм-ок вот одна из них и будет девайсом.
Тогда не интересно
0
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 30
06.10.2017, 11:15
Цитата Сообщение от dosykus_2
zkoky, ИМХО большего чем на кипарисине не выжмешь. Смысл?
Надо делать по типу Saleae16 или LA2016...
Ну у меня задача в первую очередь - поупражняться с кортексом, просто других полезных идей не придумалось. Обычно когда начинаю большой проект - придумывается что-то другое, переключаюсь и редко довожу до ума. А тут уже объявил, что делаю значит надо закончить.

Основная часть прошивки будет платформонезависимое ядро с открытыми исходниками, хоть на атмеге собирай.
Только добавь пару модулей с интерфейсами типа
Code
1
2
3
4
5
6
7
// Примерный интерфейс
 
#defyme DIGIT_IN_FREQ_MAX   100000
 
digit_in_init();
digit_in_stort(param, callback);
digit_in_stop();
Аналогично будут analog_in, digit_out, analog_out, pwm_out и т.д.
Но набор модулей может быть произвольным. Программа сама разберется что есть в железе, а чего нет.

Ну и ещё нужно будет добавить модуль для связи с внешним миром.
Типа
host_init()
host_write()
host_read()

А вот программа - это нетривиальная штука, особенно двиганье курсоров мышкой и прочие кошерные вещи.
Пытался собрать putsiwiew под виндой, чтобы внедрить туда свой драйвер, но это больше походило, на обойди линуксовые костыли и подопри своими.
Библиотеки вроде собрались а вот графическая оболочка ни в какую не собирается. Зато узнал много нового о том как собирать программы из линуксовых исходников под Wymdows. Та программа, что выложена на их сайте собрана в линуксе. Сами они пишут, что вроде в винде собрать можно, но только при благополучной погоде на марсе и то частично. К слову их скрипт для винды не завелся.
Думаю попробовать задействовать их библиотеку для декодирования протоколов, а окна наверно придется свои делать, какие-то части может получится готовые выдрать из putsiview.
Ну и программу тоже выложу с исходниками.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.10.2017, 11:15
Помогаю со студенческими работами здесь

Логический анализатор
В общем, возникла мысля такая. Сделать зверский логик анализатор. Я могу взять на себя большую часть аппаратного геморроя, но мне нужны...

ЛОГИЧЕСКИЙ АНАЛИЗАТОР
Всем привет в электронике я всего пол года вот решил замутить себе логический анализатор для своих чудо поделок есть кварцевый генератор...

Логический анализатор
Ребят, вобщем такой код: #include <conio.h> #include<stdio.h> void main() { char chislo; int i=0; char digit = '0' ||...

Дешевый логический анализатор.
В общем, понадобился мне приборчик. Запросы скромные: микроконтроллеры щупать, протоколы подсматривать. Думаю ничего быстрее SPI 8 мгц не...

Логический анализатор на Mega128
Приветствую!Имеется отладочная платка Crumb128 (14.7456Mhz). Хотелось бы с помощью нее сделать 8-логический анализатор c анализом частоты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru