Цифровой осциллограф своими руками.
-
Chettuser
Re: Цифровой осциллограф своими руками.
Есть опыт ковыряния STM32L-Discovery, хотел присоединиться к теме, вопрос: STM32F4-Discovery пойдёт или именно STM32F3-discovery?
- Реклама
Re: Цифровой осциллограф своими руками.
UM1570 User manual STM32F3DISCOVERY
Hardware and layout UM1570 Page_12/36 Doc ID 023594 Rev 2
● Superior and innovative peripherals:
● Улучшенный и инновационных периферийных устройств:
– Analog: 4x 12-bit ADC 5 MSPS reaching 18 MSPS in interleaved mode,
– Аналоговый: 4x 12-разрядного АЦП 5 МГц достижении 18 МГц в режиме чередования
Всегда приветствуется, с одной стороны с другой стороны, зачем спрашивать. Направление желательно STM32F3-discovery. По анонсам сам STM32F303 можно разогнать до 110-140 МГц при питании 3.3В и при 3.6В до 180 МГц но с потерей в разрядности АЦП до 2битов и иметь вместо 12 только 10.
Hardware and layout UM1570 Page_12/36 Doc ID 023594 Rev 2
● Superior and innovative peripherals:
● Улучшенный и инновационных периферийных устройств:
– Analog: 4x 12-bit ADC 5 MSPS reaching 18 MSPS in interleaved mode,
– Аналоговый: 4x 12-разрядного АЦП 5 МГц достижении 18 МГц в режиме чередования
Chettuser писал(а): хотел присоединиться к теме, вопрос: STM32F4-Discovery пойдёт или именно STM32F3-discovery?
Всегда приветствуется, с одной стороны с другой стороны, зачем спрашивать. Направление желательно STM32F3-discovery. По анонсам сам STM32F303 можно разогнать до 110-140 МГц при питании 3.3В и при 3.6В до 180 МГц но с потерей в разрядности АЦП до 2битов и иметь вместо 12 только 10.
Re: Цифровой осциллограф своими руками.
Поскольку сразу 4 АЦП запустить нельзя сразу, то придется использовать таймер для их запуска со сдвигом на заданное количество тактов. Будет ли Использоваться USB? Если будет, то придется довольствоваться дробными веременами отсчетов, если же не будет, то можно будет контроллер тактировать 70 мегагерцами, а отсчеты сделать 0,2 микросекунды ровно при 12 битах. Либо немного оверклочить и на 80 мерагерцах получить 0,1 микросекунды ровно при 6 битах.
Если смотрите документацию - то раздел Alternate trigger mode о запуске.
Понятно также почему 18 мегагерц а не 20. 72мегагерца /4такта = 18. Вообще то должно было быть 14/4 = 3.5 тактов. Но наверное он не умеет начинать работать с полутакта.
Если смотрите документацию - то раздел Alternate trigger mode о запуске.
Понятно также почему 18 мегагерц а не 20. 72мегагерца /4такта = 18. Вообще то должно было быть 14/4 = 3.5 тактов. Но наверное он не умеет начинать работать с полутакта.
Последний раз редактировалось Galizin Вт окт 22, 2013 10:15:52, всего редактировалось 1 раз.
- balmer
- Это не хвост, это антенна
- Сообщения: 1433
- Зарегистрирован: Вс дек 02, 2012 03:13:48
- Откуда: Калининград
Re: Цифровой осциллограф своими руками.
Arpad писал(а):По анонсам сам STM32F303 можно разогнать до 110-140 МГц
Может ну его нафиг все эти оверклокинги?
Вот ВитГо дело пишет. Если хочется быстрой частоты дискретизации, то STM32F4 и AD9283.
Мыслю так. Ну получится считать быстро данные на STM32F303. А дальше что с ними делать? Там мощи хватит только для того, чтобы данные записать, а потом медленно-медленно выводить на экран или медленно-медленно передавать по USB.
А вот на STM32F4 и AD9283 при 20 Msps точно можно успеть и данные считать и обработать и передать их по USB 2.0 HiSpeed.
STM32F303 - тоже неплохой чип, но для своей области применения и для 10 Msps. И к тому же 4 ADC в STM32 - этож нехилая емкостная нагрузка, там надо будет уже всякие компенсирующие цепи вставлять на выходе ОУ, да и сам ОУ очень мощный по выходу должен быть, чтобы хотябы 8 бит получить точности.
Лично мне данные на экране не так важно видеть. С этим нормально и покупные осциллографы справляются. Важнее получить поток данных для последующей обработке на компьютере. Скажем сдвинута одна синусоида на 0.5 градуса относительно другой - фиг это увидишь на экране. Или есть та-же синусоида чутка промодулированная по частоте, это тоже незаметно. Да и маленькие нелинейные искажения не видны, а при обработке на компьютере все наглядно и с цифрами.
-
Chettuser
Re: Цифровой осциллограф своими руками.
Arpad писал(а): сам STM32F303 можно разогнать до 110-140 МГц
Да чего разгонять если в штатном режиме работает вроде как.
Этот в F4 стоит - с одной стороны, с другой - код то пишете под F3, а здесь уже с F407 в другом ключе можно остаться - набор периферии может оказаться разным (надо смотреть).STM32F407VGHigh-performance and DSP with FPU, ARM Cortex-M4 MCU with 1 Mbyte Flash, 168 MHz CPU,
- Реклама
Re: Цифровой осциллограф своими руками.
balmer писал(а):А дальше что с ними делать? Там мощи хватит только для того, чтобы данные записать, а потом медленно-медленно выводить на экран или медленно-медленно передавать по USB.
А Вы думаете что в 4xx будет как то иначе? Что нужно сделать с данными очень быстро?
Я предполагаю, что нужно принять только решение о синхронизации. Это делается аппаратно например компараторами. Как сформировался импульс синхронизации, так нужно накопить заданное количество данных, остановиться и медленно медленно все что Вы написали. Ну по крайней мере 168 мегагерц тут не спасет. Вот если только пару гирагерц
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Цифровой осциллограф своими руками.
Galizin писал(а):Что нужно сделать с данными очень быстро?
На всех развертках, кроме самой быстрой, с данными на лету нужно делать пиковое детектирование или усреднение, иначе никакой памяти не хватит. АЦП ведь всегда работает на максимальной частоте (иначе будут алиасы).
Galizin писал(а):Как сформировался импульс синхронизации, так нужно накопить заданное количество данных, остановиться
Накопление данных нужно производить не после события синхронизации, а и до (предыстория) и после (постистория). Да и само событие синхронизации это не просто фронт внешнего сигнала, а совпадение каких-то сложных условий (уровень сигнала, скорость нарастания, длительность импульса), которые должны проверяться на лету.
- balmer
- Это не хвост, это антенна
- Сообщения: 1433
- Зарегистрирован: Вс дек 02, 2012 03:13:48
- Откуда: Калининград
Re: Цифровой осциллограф своими руками.
Galizin писал(а):А Вы думаете что в 4xx будет как то иначе?
Да, в STM32F4 есть "USB on-the-go high-speed" 480Mbits/s
В STM32F3 только "USB full-speed" 12 Mbits/s
Galizin писал(а):Что нужно сделать с данными очень быстро?
Лично мне нужно быстро считать нелинейные искажения синусоидального сигнала.
Спектр сигнала.
Разницу фаз между сигналами.
Galizin писал(а):Вот если только пару гирагерц
Они есть у меня, на PC. Для 20 Msps хватит.
Re: Цифровой осциллограф своими руками.
balmer писал(а):ни есть у меня, на PC. Для 20 Msps хватит.
Это будет приставка-АЦП для большого брата. Нормальное решение. Это действительно 303 не потянет. Вам нужно брать что потолще.
Леонид Иванович писал(а): данными на лету нужно делать пиковое детектирование или усреднение, иначе никакой памяти не хватит. АЦП ведь всегда работает на максимальной частоте (иначе будут алиасы).
Здесь нужно думать. После усреднения боюсь алиасы остануться. Также боюсь, что 303 при работе на максимальной частоте не справится с детектированием и усреднением. Все таки на 16 тактов процессора 4 отсчета АЦП - это очень много. Можно только сохранить, еще можно определить аппаратно фронт или спад. Все остальное представляется проблематичным. Ну наверное поэтому и ставят ПЛИС в таких вещах.
Честно говоря об алиасах не задумывался. Как я понимаю пиковое детектирование - это и есть борьба с альясами. Тогда использовать по полной 18 мегагерц для выборки - это утопия. Правда можно сделать несколько режимов - на больших частотах памяти хватит что бы потом ее обработать. Можно обработать потом альясы.
А на малых нужно на лету все смотреть из-за недостатка памяти. Но там уже нужно будет понижать частоту выборок, что бы процессору время дать. От сложных условиях синхронизации - типа скорости нарастания вероятно придется отказаться при использовании 303 совсем. Правда синхронизацию по длине импульса возможно можно будет обработать, если немного дать процессору времени - уменьшить выборку допустим до 10 мегагерц. Если еще уменьшить частоту выборок, возможно и пиковое детектирование можно будет сделать.
Re: Цифровой осциллограф своими руками.
имел ввиду не тактирование, а триггер АЦП:а что это даст ?
Код: Выделить всё
The events generated by the general-purpose timers and the advanced-control timers
(TIM1 on all devices and TIM8 on STM32F303xB/STM32F303xC devices) can be internally
connected to the ADC start trigger and injection trigger, respectively, to allow the application
to synchronize A/D conversion and timers.Или 2 таймера для пуска ADC1,2 и 3,4 в interleave.
Последний раз редактировалось zöner Вт окт 22, 2013 14:13:43, всего редактировалось 1 раз.
Re: Цифровой осциллограф своими руками.
помоему это немного для других случаев (однократного преобразования или преобразования по событию)
нам же скорее всего нужно непрерывное преобразование - и здесь проще запустить со смещением чем мудрить еще таймер...
нам же скорее всего нужно непрерывное преобразование - и здесь проще запустить со смещением чем мудрить еще таймер...
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Цифровой осциллограф своими руками.
Galizin писал(а):После усреднения боюсь алиасы останутся.
Усреднение - это цифровой FIR-фильтр с прямоугольным окном. АЧХ не очень крутая, зато у фильтра простая реализация. Подавление алиасов будет вполне заметное, но не идеальное. Лучше, конечно, при снижении частоты развертки производить передискретизацию с помощью более качественного фильтра, но тогда растут затраты ресурсов. Можно для этих целей применить довольно экономичные по затратам CIC-фильтры.
Galizin писал(а):Также боюсь, что 303 при работе на максимальной частоте не справится с детектированием и усреднением.
Совершенно очевидно, что осциллограф нужно строить на ПЛИС. Сегодня как сами ПЛИС, так и средства разработки, доступны каждому радиолюбителю. А притягивать за уши STM32 и получить на выходе барахло, потратив уйму драгоценного времени - по меньшей мере неразумно. Тем более, что не получится догнать даже существующий проект - NeilScope. К чему тогда всё это?
Re: Цифровой осциллограф своими руками.
Леонид Иванович,
как показывает обсуждение улучшать есть что.. ту же аналоговую часть !!!
так что стоит просто смотреть на проблему в комплексе... и тогда полезно будет всем..
а то что на ПЛИС лучше всего - так об этом никто и не спорит
ПЛИС конечно интересно прикрутить, и даже есть интересные способы
но у меня пока все в стопоре из за аналога... вот закончу с ним - буду думать над обработкой при помощи ПЛИС и процессора..
ПОМОГИТЕ РАЗРАБОТАТЬ АНАЛОГ ! чтобы было просто и эффективно...
проблема в существующих аналогах (простых, типа нейлскопа) - предоставить оптимальный уровень сигнала на оцифровку - чтобы получить максимальное разрешение..
схемы подобные нейлскопу этого дать не смогут !!
кто не верит - посмотрите архив mosc.zip что я кидал выше - и сделайте по аналогии с нейлскопом коэффициенты - там разрешение далеко не оптимальное получается.. даже до 100 отсчетов на некоторых пределах не будет
при том что у АЦП 250 отсчетов !!!
по моим расчетам аналог должен последовательно усиливать сигнал, причем на столько сколько нужно... и смещать нужно сигнал в обе стороны... (а не только вверх)... - вот тогда еще можно рассчитывать на количество отсчетов около 150-170 для любой амплитуды сигнала...
в идеале (смотреть mosc.zip) можно получить 200 отсчетов для любого входного сигнала !!! вот это был бы аналог ! всем аналогам аналог !
как показывает обсуждение улучшать есть что.. ту же аналоговую часть !!!
так что стоит просто смотреть на проблему в комплексе... и тогда полезно будет всем..
а то что на ПЛИС лучше всего - так об этом никто и не спорит
ПЛИС конечно интересно прикрутить, и даже есть интересные способы
но у меня пока все в стопоре из за аналога... вот закончу с ним - буду думать над обработкой при помощи ПЛИС и процессора..
ПОМОГИТЕ РАЗРАБОТАТЬ АНАЛОГ ! чтобы было просто и эффективно...
проблема в существующих аналогах (простых, типа нейлскопа) - предоставить оптимальный уровень сигнала на оцифровку - чтобы получить максимальное разрешение..
схемы подобные нейлскопу этого дать не смогут !!
кто не верит - посмотрите архив mosc.zip что я кидал выше - и сделайте по аналогии с нейлскопом коэффициенты - там разрешение далеко не оптимальное получается.. даже до 100 отсчетов на некоторых пределах не будет
по моим расчетам аналог должен последовательно усиливать сигнал, причем на столько сколько нужно... и смещать нужно сигнал в обе стороны... (а не только вверх)... - вот тогда еще можно рассчитывать на количество отсчетов около 150-170 для любой амплитуды сигнала...
в идеале (смотреть mosc.zip) можно получить 200 отсчетов для любого входного сигнала !!! вот это был бы аналог ! всем аналогам аналог !
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Цифровой осциллограф своими руками.
ВитГо писал(а):улучшать есть что.. ту же аналоговую часть
Чтобы улучшить аналоговую часть NeilScope, нужно разбираться в аналоговой схемотехнике. А те бредни, которые публикуются в этой ветке, ничего не улучшат.
-
Chettuser
Re: Цифровой осциллограф своими руками.
Ушёл штудировать Хоровица и Хилла.
Re: Цифровой осциллограф своими руками.
Леонид Иванович писал(а):ВитГо писал(а):улучшать есть что.. ту же аналоговую часть
Чтобы улучшить аналоговую часть NeilScope, нужно разбираться в аналоговой схемотехнике. А те бредни, которые публикуются в этой ветке, ничего не улучшат.
вот и прошу помощи..
помогите разобраться !
Re: Цифровой осциллограф своими руками.
Леонид Иванович писал(а):Совершенно очевидно, что осциллограф нужно строить на ПЛИС. Сегодня как сами ПЛИС, так и средства разработки, доступны каждому радиолюбителю. А притягивать за уши STM32 и получить на выходе барахло, потратив уйму драгоценного времени - по меньшей мере неразумно. Тем более, что не получится догнать даже существующий проект - NeilScope.
Я не согласен с такой позицией. Например возьмем источник питания - есть источники на 10 ампер и 100 вольт, но это не значит, что не востребованы 1 амперные и 30 вольтовые. Или Лады и Мерседесы ...
Просто нужно всегда отдавать себе отчет какую цену платишь за то или иное решение. Например применение только 303 вместо ПЛИС, АЦП и памяти - это отказ от 3 цифровых корпусов из 4. Это большой + к такому решению. Плата в скудности синхронизации, борьба с альясингом, возможно даже неудачная, поочередное использование процессора для накопления и обработки - это минусы этого решения.
Я уже думаю над осциллограом на 303 несколько часов. Пока идея подсократить корпуса мне нравится.
Re: Цифровой осциллограф своими руками.
1 контроллер и лопата типа такой - вещи несравнимые по сложности и стоимости.
там одна ПЛИС в полтора раза дороже контроллера.
F303 есть в корпусах на 48 и 64 вывода - весь скоп в получается миниатюрный в виде пробника.
там одна ПЛИС в полтора раза дороже контроллера.
F303 есть в корпусах на 48 и 64 вывода - весь скоп в получается миниатюрный в виде пробника.
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Цифровой осциллограф своими руками.
Ничего страшного там нет, хороший прибор. Перед разработчиком NeilScope снимаю шляпу. Если в этой ветке речь идет о плохом, но простом приборе, который можно реализовать на голом STM32, тогда зачем так озадачиваться аналоговой частью? Скопировать один в один - и даже жирно будет.


