Pull to refresh

Comments 21

Вот буквально позавчера сел за проектирование на своей STM-ке лог.анализатора, ибо под рукой нету, а очень надо!

Вощем — пасибо за экономию времени!
Обязательно воспользуюсь!
А почему так с частотами? почему не получается выше 20МГц?
Потому что следующая частота в ряду, который поддерживает клиент — 50МГц. Думаю проц ее потянет, однако, тогда придется выставить базовую частоту 100 или 150МГц, что бы делением получить ровно 50. А из этой частоты уже не получится сделать 48МГц, которые нужны для USB-контроллера, просто нет подходящего делителя на выходе PLL.
Сейчас базовая частота процессора — 120МГц.
Т.е. если подвесить трехбаксовый USB-UART на аппаратный UART дискавери, то взлетит на 50?
Вот Вам и фичреквестик:)
Думаю — взлетит :) Попробую, главное что бы пропускной способности шины хватило.
Мням… Из этого вытекает еще одна интересная фича… Если задействовать UART удлинитель, например мой любимый bluetooth hc-06, то система превращается в беспроводную, электрически отвязанную от компа. Что-то в этом есть весьма привлекательное!

Надо бы еще замутить шильд с диодами и резисторами защиты, питанием и разъемами на щупы.
Есть еще старая мыслишка — сделать клиентскую программу на Андройд. С Bluetooth эта тема выглядит еще привлекательнее, он везде есть, а usb-host далеко не на всех аппаратах присутствует.
Вот только объем работ там поболее будет, да и опыт написания софта под андройд у меня минимальный.
я в сети видел исходники простого осцилографа для подключения через BT к андроиду.
найдется (только по-английски ищите)
Фиксированные делители в PLL USB вообще очень огорчают, я STM32F103xx, у которой частота в 72 МГц, заводил на 120, даже не вспотела. А вот если нужен USB — все, STM работает, а USB при разгоне отваливается(
UFO just landed and posted this here
Защиты входов нет. С этой микросхемой памяти тулзы плохо заводятся. А так да.
Вот бы ещё кто-нибудь на Stm32F4Discovery с HS USB анализатор сделал…
Делал и с HS-USB, там в проекте только дефайны надо поменять и пересобрать. Вот только не то у меня какой-то косяк, не то в ST-шном драйвере бага затесалась… Вобщем, при считывании результатов USB наглухо повисало, причем процессор продолжал мигать диодами. Иногда удавалось несколько раз считать полную пачку, иногда висло сразу, так я и не разобрался с этим — отложил до лучших времен.
очень интересно! F4 используется только из-за большей по сравнению с F1 частоты?
Не только, см выше мой ответ про частоты. У F2/F4 можно гораздо гибче настроить рабочую частоту при сохранении работоспособности USB. Если у F1 для получения 48МГц для USB есть только два делителя — 1 и 1.5, то у F2/4 можно выбирать из полутора десятков.
Если отбросить USB и выдавать данные по UART, то можно и на F1 сделать, но прошивку придется всю перелопатить — другие контроллеры USB, DMA
Ну т.е. так или иначе, дело в частоте. То есть нет препятствий сделать на той же кодовой базе анализатор на F1, но с максимальной частотой например 2 МГц? Для SPI/I2C/UART должно такго хватить, как мне кажется
Вполне, причем как раз 2МГц это максимум, при котором можно сохранить работоспособный USB на F1.
А в чём проект делали?
Хочу пересобрать под stm32f429-Discovery.
Заранее спасибо!

Добрый день! Да, старая статья, но, может, ответите.
Захотел сделать логический анализатор на STM32, начал искать различные варианты. Ваш пока самый "навороченный" из тех, которые я нашел.


Скажите, а у Вас поддерживается continuous режим, т.е. отправка данных на компьютер в реальном времени? Еще не дошли руки посмотреть Ваш код, и не до конца разобрался с SUMP протоколом, не знаю, позволяет ли он такое в принципе.


Не будет ли Isochronus трансфер более быстрым по сравнению с CDC? Правда, в таком случае потребуется написать поддержку протокола, с помощью libusb, я думаю.

Приветствую! Давненько это было) В свое время был приобретен осциллограф с логическим анализатором и проект благополучно зарос бурьяном. Поэтому отвечать буду по памяти.

На ваши вопросы в основном отвечает протокол SUMP (который, кстати, был выбран по причине наличия адекватных клиентов на то время)
1. Насколько я помню, SUMP не поддерживает непрерывную передачу.
2. SUMP-клиенту на ПК нужно указать COM-порт для подключения, поэтому CDC без вариантов.

Изохронная передача не гарантирует доставку, а выпадание сэмплов для данной задачи недопустимо.
И, да, если нужно добиться более высокой производительности, стоит сделать свой буферизующий (и передающий данные большими массивами) протокол, на базе libusb. Но придется добавлять поддержку в существующие sump-клиенты или найти что-то другое.

Я хочу сделать поддержку sigrok, который, как мне кажется, самый навороченный open source софт для логических анализаторов, осцилографов. Поддерживает большое количество оборудования с различными протоколами (и sump, и проприентарные, например saleae). Да и добавить поддержку своего в libsigrok не очень сложно.

Sign up to leave a comment.

Articles