Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
balmer
Это не хвост, это антенна
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение balmer »

DrLivsy писал(а): А насчет РЦЛ измерителя: http://radiokot.ru/circuit/digital/measure/113


Да, именно его взял за основу. Очень хороший проект.
Аватара пользователя
DrLivsy
Встал на лапы
Сообщения: 89
Зарегистрирован: Чт ноя 03, 2011 17:05:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение DrLivsy »

В недрах нашего местного "радиомаркета" нашел ОУ для входных цепей: LMH6643.
Это специально созданный быть буфером АЦП сдвоенный, малошумящий, высокочастотный 130МГц, высоколинейный до 40МГц, "правда"-однополярный ОУ с низким выходным сопротивлением 150 Ом и диапазоном питающего напряжения 2,7-12,8В. Причем на 3Вольтовом питании его параметры тоже протестены и прописаны в даташите.
Цена - как у десятка LM358.
Больше я ничего искать не хочу, потому как надоедает колупаться в списке радиоэлементов без описания, за каждым разом теребя Гугла "дай даташит".
Моя отладочно-оценочная STM32F3Discovery не сразу захотела работать с CoFlash. Ей почему-то надо сначала законектиться с родной СТ-линковской утилитой, а потом начинает нормально работать и CoFlash.
Виден свет в окне Кокоса.

ЗЫ Какой ресурс у флеша STM32F303VC? самостоятельно пока не нашел.
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Леонид Иванович »

DrLivsy писал(а):В недрах нашего местного "радиомаркета" нашел ОУ для входных цепей: LMH6643.


Этот ОУ не подойдет для входных цепей по причине высокого входного тока. На входе нужен JFET-ОУ, например, AD8065, AD8066, OPA656 и подобные.

DrLivsy писал(а):Какой ресурс у флеша STM32F303VC?


10 000. Находится в ds по ключевому слову "dura".
Аватара пользователя
DrLivsy
Встал на лапы
Сообщения: 89
Зарегистрирован: Чт ноя 03, 2011 17:05:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение DrLivsy »

Леонид Иванович писал(а):
DrLivsy писал(а):В недрах нашего местного "радиомаркета" нашел ОУ для входных цепей: LMH6643.


Этот ОУ не подойдет для входных цепей по причине высокого входного тока. На входе нужен JFET-ОУ, например, AD8065, AD8066, OPA656 и подобные.



Понял, с перламутровыми пуговицами у них нету, будем искать... :)
На первое время, до 1Мгц, мне хватит MCP6022 (у меня уже есть пара), а там что-нибудь найдется.
Аватара пользователя
balmer
Это не хвост, это антенна
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение balmer »

DrLivsy писал(а):В недрах нашего местного "радиомаркета" нашел ОУ для входных цепей: LMH6643.


"RIN Common Mode Input Resistance 3 MΩ"

А лично мне кажется, что вполне подойдет. Конечно "классических" сотен мегаом на низких частотах не получится, но!
Вот скажем есть частота 1 МГц и суммарная входная емкость прибора 20 pF.
20 pF на этой частоте обладают сопротивлением 8 КОм примерно.

Кстати по поводу Rail-to-Rail - лично у меня ОУ в таком режиме добавляют примерно 1% нелинейных искажений к сигналу. Причем не всегда, а при определенных амплитудах/частотах сигнала, выглядят как "ступенька" на синусоиде.
Аватара пользователя
DrLivsy
Встал на лапы
Сообщения: 89
Зарегистрирован: Чт ноя 03, 2011 17:05:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение DrLivsy »

Я тоже думаю над этим:
на наших максимальных 20Мгц сильно напрягаться нет смысла. На частотах выше большУю роль играет емкость/индуктивность, так как осцил становится сильно комплексной нагрузкой. А у нас еще работают простые резюки. Я чем глубже вникаю в теорию осциллографирования, тем больше понимаю, что это дело тонкое, чем выше лезем, тем тоньше оно становится.
Пока есть основания остановится на 20ти, а то и меньше Мгц. Дальше - бОльшую роль играет щуп, а не прибор. Хотя озаботится минимальной входной емкостью прибора очень надо - будет перспектива расширения с помощью связки софт+активный щуп (скорее всего покупной или переделанный из пассивного покупного).
У нас максимальная скорость АЦП в сдвоенном черезстрочной режиме - 14MSPS при 8ми битах точности. По Котельникову мы развернем 7Мгц. В стробоскопическом режиме точно пока не знаю, но, судя по картинке в статье о эквивалентных выборках, раз в 8 больше. :)
Это - 50МГц. (ого!) - значит запас по дискретизации у нас есть.

Есть смысл подумать о диапазоне частот, который "пролазит" через обычные банановые щупы от тестера. Расширение возможностей прибора делать в сторону многоканальности/многофункциональности, с широкими возможностями логического пробника, например. Вот например, есть у меня старая Омния, дисплюк у нее 400х240 с тачем, а даташита нету :(
А на осцилле он бы очень хорошо себя показал, особенно в сочетании с тачем. Что бы его реверсировать нужен логический анализатор.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение oleg110592 »

нужен логический анализатор

тогда может с него и начать:
http://habrahabr.ru/post/165853/
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Леонид Иванович »

balmer писал(а):"RIN Common Mode Input Resistance 3 MΩ" А лично мне кажется, что вполне подойдет. Конечно "классических" сотен мегаом на низких частотах не получится, но!


Не тот параметр смотрите. Нужно смотреть входной ток. А он у этого ОУ 1.5 мкА. Входное сопротивление КВИ осциллографа должно быть 1 МОм (а не на сотни МОм, как Вы написали). На таком сопротивлении из-за входного тока получим смещение 1.5 В, что ни в какие ворота не лезет.
Аватара пользователя
balmer
Это не хвост, это антенна
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение balmer »

Леонид Иванович писал(а):А он у этого ОУ 1.5 мкА.


Ну это как раз примерно 3 МОм есть при размахе входного сигнала 5 Вольт.

Леонид Иванович писал(а):Входное сопротивление КВИ осциллографа должно быть 1 МОм (а не на сотни МОм, как Вы написали). На таком сопротивлении из-за входного тока получим смещение 1.5 В, что ни в какие ворота не лезет.


Ну классический осциллограф он такой, сложный. Я бы вообще для упрощения конструкции поставил на входе разделительный RC фильтр со срезом эдак в 10 герц, чтобы постоянную составляющую сигнала отрезать. И никаких резисторов сопротивлением 1 МОм на вход не ставил бы :)))
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Леонид Иванович »

balmer писал(а):Ну это как раз примерно 3 МОм


Входное сопротивление для синфазного сигнала и входной ток - совершенно не связанные между собой параметры. Перевод одного в другое лишен всякого физического смысла. Происхождение входного тока ОУ можно представить наличием внутренних генераторов тока, подключенных ко входным пинам. Независимо от значения тока, внутреннее сопротивление идеальных генераторов тока бесконечно, они не вносят никакого вклада во входное сопротивление. В реальности генераторы тока не являются идеальными, но степень их неидеальности никак не связана с величиной тока.

balmer писал(а):Ну классический осциллограф он такой, сложный.


Не вижу никакого усложнения. При правильном выборе элементной базы получится стандартный вход 1 МОм || 20 пФ, который позволит пользоваться стандартным щупом с компенсированным делителем. При этом количество элементов во входной части осциллографа не увеличится. Усложнения начинаются лишь когда хочется достичь широкой полосы, малых шумов, малого дрейфа и т.д.
Аватара пользователя
DrLivsy
Встал на лапы
Сообщения: 89
Зарегистрирован: Чт ноя 03, 2011 17:05:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение DrLivsy »

Спасибо за поддержку.
Внимательно все обдумав и взвесив соотношения цена/время/качество предлагаю таки использовать LMH6643. Его выходное сопротивление 150 Ом очень хорошо удовлетворяет вход АЦП СТМ32Ф303 (150 Ом на макс скорости 8ми битного семплирования, да, оказалось все очень сурово, см. даташит стр.105). Неудовлетворительное входное сопротивление предлагаю приFETить с помощью дешевого и качественного двухзатворного полевика типа BF998.
Типа так:
Изображение
У этой схемы есть проблемы, в диапазоне до 1ГГц :)
Такие:
"В повторителе с рисунка 7-10 остаётся несколько проблем. Во-первых, затвор не имеет защиты ни от перенапряжения, ни от электростатических разрядов. Во-вторых, напряжение затвор-исток существенно меняется от температуры, сильно ухудшая стабильность на постоянном напряжении. В-третьих, оставлен без внимания шум вида 1/f. Неравномерность характеристики на самом деле очень плохая. И, наконец, повторитель со следящей связью не допускает больших постоянных смещений на входе. "
Шерстю схемы активных щупов в поисках решения.
О! Продолжил читать туже статью из "The Art and Science of Analog Circuit Design. Steve Roach " (http://embedders.org/sites/default/files/chapter_07_1002.zip) и увидел решение:
Изображение
постоянная составляющая выделяется и усиливается отдельно.
У нас АЦП с кучей входов, спокойно делим вход мурзика по постоянке на скоко хотим (а хотим наверное на 10) и потом LM358 (или просто кт315) приводит его к нужному для АЦП значению. Кроме того, ослабленное на 10% усиление в полосе до 1кГц можно компенсировать программно или просто не заметить.
Переменная составляющая пойдет на BF998, типа так, токо при 3В питания и 270пФ на входе:
Изображение
а потом на LMH6643. :)
Вот оригинал статьи:
http://elektrotanya.com/files/forum/2009/10/e04a036.pdf
Проблемы - незащищенный от статики и перенапряжения затвор BF998. использование супрессора и диодов на шины питания должно помочь.

ЗЫ. Вместо LM358 можно поставить MCP602 - высокоомно, недорого и уже есть :)
Кроме того, чтобы не дергать АЦП со входа на вход, постоянку можно сложить с переменкой на входе LMH6643.
Аватара пользователя
morokot
Вымогатель припоя
Сообщения: 587
Зарегистрирован: Вт сен 13, 2011 13:29:09
Откуда: Крым, Симферополь

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение morokot »

Вот http://hobby-research.at.ua/publ/razrabotki/izmerenija/neil_scope_3/4-1-0-42 законченный проект осциллографа на интересующей Вас элементной базе, работающий очень неплохо, проверено лично...
Аватара пользователя
DrLivsy
Встал на лапы
Сообщения: 89
Зарегистрирован: Чт ноя 03, 2011 17:05:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение DrLivsy »

Вот нашел интересную статью на тему эквивалентного квантования: расширение входа 10МГцового осцилла до 1ГГц! (в аттаче)
Особо дорогих/высокочастотных микрух не наблюдаю. Самая замороченная деталь - линия задержки 40нс сделанная из 8метрового куска кабеля. :)
И еще:
Изображение
Изображение
Изображение
Вложения
Circuits_1GHz-samplig-Oscilloscope-Front-End.pdf
(1.48 МБ) 1125 скачиваний
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Kavka »

Это, конечно, хорошо, но "This ... module can significantly increase the display bandwidth ... for repetitive signals." (Первое предложение в статье.)
Т.е. это только для периодических сигналов. Одиночные импульсы или данные по SPI на большой частоте такой штукой не посмотришь.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
DrLivsy
Встал на лапы
Сообщения: 89
Зарегистрирован: Чт ноя 03, 2011 17:05:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение DrLivsy »

Именно так.
Для народного (читайте дешевого) осциллографа вполне подходяще. Наш МК позволяет сэмплировать в реальном времени на скорости 14МСПС при 8ми битной точности. Это - 7Мгц по Котельникову. Если удастся сделать счетверенный черезстрочный режим, то все это удвоится. 14Мгц неплохой показатель для самоделки с ценой деталей до 30 баксов.
Простой переход на 6ти битный режим сделает МСПС<=36 (4 АЦП). Это - <=18 МГц. Такой точности более чем достаточно для обзора большинства широко используемых цифровых интерфейсов, которые обычно осматриваются логическими анализаторами с 2х битной точностью.
Расширение полосы даже не в 100, как в статье, а хотя бы в 5-10 раз (т.е. возможность рассматривать строго периодические сигналы с частотой 70-140Мгц при 8битах точности) даст очень большой плюс прибору. Причем реализация видится чисто программная, при правильном построении входа.
Даже если он развернет периодические 50МГц, это - супер!
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение dosikus »

DrLivsy писал(а): для обзора большинства широко используемых цифровых интерфейсов.


Для обзора интерфейсов нужен ЛА с анализатором протоколов , осцилл здесь мало требуется .
Из бюджетных есть Open Logic Sniffer, 200МГц- 16(32) каналов.
Аватара пользователя
DrLivsy
Встал на лапы
Сообщения: 89
Зарегистрирован: Чт ноя 03, 2011 17:05:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение DrLivsy »

Вот логика расчета для программной реализации:
дано:
У нас нет аппаратной синхронизации между входным сигналом и АЦП.
Изображение
В итоге на выходе АЦП мы получаем последовательность значений, из которой можно собрать исходный сигнал. Для этого нужно просто расставить эти значения в правильном порядке. Нужно вычислить позицию каждого значения по отношению к входному сигналу. Для этого нужно программно выбрать точку отсчета, вычислить время между отсчетами и их положение по отношению к точке отсчета. Потом соотнести точку отсчета со входным сигналом и вычислить коэффициент наложения по времени между входным сигналом и значениями на выходе АЦП.
Изображение
Необходимо знать:
1. Длительность периода исследуемого сигнала.
2. Длительность захвата (Sampling time, время зарядки конденсатора на входе) и длительность преобразования АЦП.
3. Нужна точка отсчета, т.е. триггер синхронизации.
По пункту 1. - это значение мы можем получить от частотомера. (Привет от таймеров СТМ32).
Значение для 2го пункта рассчитываем по данным из даташита/текущих настроек АЦП.
За точку отсчета можно взять одно из первых значений в последовательности, ближайшее к нулю. Это - программная синхронизация. :)
Но есть один нюанс:
Если частота сигнала равна или кратна частоте преобразования, то мы всегда будем захватывать один и тот же кусок периода входного сигнала.
Поэтому, получив значение Частота от частотомера необходимо проверить это условие на совпадение и, при необходимости, сменить частоту дискретизации АЦП.
pcb
Опытный кот
Сообщения: 833
Зарегистрирован: Пт авг 12, 2011 09:14:27
Откуда: Млечный путь/Земля/РФ/Екатеринбург

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение pcb »

Кроме АЦПирования нужно отображать результат, производить какие либо вычисления, на 14 МГц семплирования стм только и будет делать, что семплировать.
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
Аватара пользователя
DrLivsy
Встал на лапы
Сообщения: 89
Зарегистрирован: Чт ноя 03, 2011 17:05:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение DrLivsy »

pcb писал(а):Кроме АЦПирования нужно отображать результат, производить какие либо вычисления, на 14 МГц семплирования стм только и будет делать, что семплировать.

Вообще на экране осциллографа можно увидеть где-то 100 отсчетов. Дабы не быть жадными, сделаем буфер на 1000 отсчетов, и отсчитаем в него те самые 1000 отсчетов на частоте 14Мгц. повторим это ну пусть даже 20 раз в секунду.
Сколько это займет времени?
(1/14000000*1000/20)=0,001429 секунды.
У СТМ32 есть еще целых 0,998571 сек. на всякие глупости типа обработки DSP командами, вывода на экран/USB и тд.
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Леонид Иванович »

morokot писал(а):Вот http://hobby-research.at.ua/publ/razrabotki/izmerenija/neil_scope_3/4-1-0-42 законченный проект осциллографа на интересующей Вас элементной базе, работающий очень неплохо, проверено лично...


+1. Neilscope - очень неплохой проект. Каждому осциллографостроителю просто необходимо прочитать всю ветку того форума, которая сопровождала разработку с самого начала.
Ответить

Вернуться в «ARM»