Страница 1 из 4 123 ... Последняя
Показано с 1 по 20 из 76

Тема: Измеритель уровня с цифровой обработкой

  1. #1
    Завсегдатай
    Автор темы
    Аватар для Leoniv
    Регистрация
    20.04.2016
    Адрес
    Minsk
    Возраст
    21
    Сообщений
    5,588

    По умолчанию Измеритель уровня с цифровой обработкой

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

    Измеритель построен на базе микроконтроллера STM32F100. Вся обработка сигнала производится в цифровом виде. Входные сигналы левого и правого каналов поступают на входные дифференциальные усилители, которые служат для организации балансного входа и сдвига уровня на половину шкалы АЦП. Дальше звуковой сигнал преобразуется в цифровой вид с чстотой дискретизации 96 кГц. Такая высокая частота позволяет обойтись без фильтра на входе АЦП, сам аналоговый тракт является таким фильтром. С помощью цифровых фильтров формируется время интеграции, время срабатывания, время обратного хода, время удержания и т.д. Вычисление результатов измерений производится с частотой 375 Гц. Подробное описание примененных алгоритмов можно найти на моем сайте.

    Нажмите на изображение для увеличения. 

Название:	Block.gif 
Просмотров:	418 
Размер:	84.5 Кб 
ID:	391065

    Все постоянные времени можно задавать произвольно с помощью сервисной программы на компьютере. Параметры сохраняются в EEPROM. Всего сохраняется 4 набора параметров (пресетов), между которыми можно переключаться с помощью джамперов. Измеренные значения среднего и пикового уровней преобразуются в позиционный код с помощью таблицы, которая тоже задается из сервисной программы. Можно строить любые шкалы, назначая индивидуально каждому сегменту любой уровень в dB.

    Нажмите на изображение для увеличения. 

Название:	meter_soft.gif 
Просмотров:	467 
Размер:	102.8 Кб 
ID:	391072

    Позиционный код выводится на светодиодные шкалы, состоящие из 50 сегментов каждая. Светодиоды управляются статически, для этого использована цепочка регистров 74HC595. Это позволяет устранить помехи, которые свойственны динамической индикации, а также полностью избавиться от неприятного мерцания.

    Нажмите на изображение для увеличения. 

Название:	pcb1_top.jpg 
Просмотров:	502 
Размер:	91.6 Кб 
ID:	391066 Нажмите на изображение для увеличения. 

Название:	pcb1_bot.jpg 
Просмотров:	491 
Размер:	107.9 Кб 
ID:	391067 Нажмите на изображение для увеличения. 

Название:	pcb2_top.jpg 
Просмотров:	524 
Размер:	80.9 Кб 
ID:	391068 Нажмите на изображение для увеличения. 

Название:	pcb2_bot.jpg 
Просмотров:	416 
Размер:	52.3 Кб 
ID:	391069

    Конструктивно измеритель выполнен на двух печатных платах. На одной расположены линейки и регистры, на другой - микроконтроллер и входной услитель. Сверху на плату индикации надевается рассеиватель, на котором размещена шкала. Она снизу подсвечивается светодиодами. Шкала изготовлена фотовыводом, но можно использовать лазерную гравировку двухслойной пленки. Размеры и форма делались с прицелом на установку измерителя в "Электроника-004", но нет особых проблем развести платы по-другому.

    Нажмите на изображение для увеличения. 

Название:	meter_view.jpg 
Просмотров:	640 
Размер:	86.5 Кб 
ID:	391073

    Видео работы индикатора можно посмотреть тут. На видео показана работа с заданным для столбика временем интеграции 5 мс, временем срабатывания 100 мс, временем обратного хода 1700 мс. Для точки время интеграции равно нулю (true peak), время срабатывания 100 мс, время удержания 1000 мс, время обратного хода 600 мс. Эти параметры можно менять на свое усмотрение. По умолчанию заданы такие пресеты:

    Пресет 1: столбики - квазипик 5 мс/1700 мс, точка - true peak
    Пресет 2: столбики - квазипик 5 мс/1700 мс, точка - удержание максимумов
    Пресет 3: штатный измеритель "Электроника-004"
    Пресет 4: Dorrough 40-A2

    На плате предусмотрены выходы ЦАП, что в теории позволяет использовать плату процессора для управления стрелочными приборами. Для них тоже будет работать задание шкалы, удержание пиков и т.д. Наверное, можно добавить и какие-то алгоритмы коррекции баллистики.

    Скачать прошивку, сервисную программу, разводку плат (в том числе Gerber-файлы) можно на моем сайте.
    Вложения Вложения
    Последний раз редактировалось Leoniv; 05.03.2021 в 22:15.

  2. #2
    Завсегдатай Аватар для фЕДОР ЧАЛЫЙ
    Регистрация
    30.07.2005
    Адрес
    Беларусь
    Возраст
    59
    Сообщений
    1,060

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Леонид, если не ограничить скачивание материалов для всех подряд, через месяц эта красота будет продаваться на Али.

  3. #3
    Завсегдатай
    Автор темы
    Аватар для Leoniv
    Регистрация
    20.04.2016
    Адрес
    Minsk
    Возраст
    21
    Сообщений
    5,588

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от фЕДОР ЧАЛЫЙ Посмотреть сообщение
    будет продаваться на Али.
    Не будет. Это слишком сложно и дорого, чтобы быть коммерчески успешным.

  4. #4
    iN GOD We TRUSt Аватар для EDDiE
    Регистрация
    13.02.2006
    Сообщений
    13,139

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от Leoniv Посмотреть сообщение
    можно на моем сайте.
    Спасибо, большое, Леонид Иванович, почитал с удовольствием.
    Как всегда, у Вас оформление статей само совершенство.

  5. #5
    Завсегдатай Аватар для mellowman
    Регистрация
    14.04.2009
    Адрес
    рядом с Москвой
    Сообщений
    4,447

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Красиво

  6. #6
    Новичок Аватар для lamerec
    Регистрация
    23.01.2020
    Сообщений
    15

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Леонид, доброго дня. У меня экран сервисной программы ниже 40-го led не влезает в окно монитора (1280х800).

  7. #7
    Зарегистрировался Аватар для zverev
    Регистрация
    01.01.2021
    Сообщений
    4

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Леонид, так есть возможность, желание сделать несколько "больших" индикаторов для Электроники 004 на заказ? мне кажется штук 10 точно разойдутся. Я даже почти уверен что за такой красотой и функциональностью пользователи Электроники и за ценой не постоят! Какова примерно цена получается, если сделать заказ штук 10-20? Я бы взял точно, и думаю таких желающих будет не мало! Для начала можно ж просто опрос провести, желающих.

  8. #8
    Завсегдатай
    Автор темы
    Аватар для Leoniv
    Регистрация
    20.04.2016
    Адрес
    Minsk
    Возраст
    21
    Сообщений
    5,588

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от lamerec Посмотреть сообщение
    1280х800
    Слишком маленькое разрешение экрана. Тут сложно что-то сделать, в оформлении программы используются картинки, которые автоматически не сжимаются. Я думал, что уже ни у кого нет мониторов меньше 1280 х 1024

    Цитата Сообщение от zverev Посмотреть сообщение
    Леонид, так есть возможность, желание сделать несколько "больших" индикаторов для Электроники 004 на заказ? мне кажется штук 10 точно разойдутся. Я даже почти уверен что за такой красотой и функциональностью пользователи Электроники и за ценой не постоят! Какова примерно цена получается, если сделать заказ штук 10-20? Я бы взял точно, и думаю таких желающих будет не мало! Для начала можно ж просто опрос провести, желающих.
    Нет проблем, можете этим заняться. Не только для "Электроника-004", но и как самостоятельное изделие. Все файлы для повторения выложены. Цену я не считал, собирал постепенно, учет деталей не вел. Перечни деталей (BOM) есть в архиве meter_pcad.zip.

  9. #9
    Новичок Аватар для lamerec
    Регистрация
    23.01.2020
    Сообщений
    15

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от Leoniv Посмотреть сообщение
    Слишком маленькое разрешение экрана
    А скролл приделать?

  10. #10
    Завсегдатай
    Автор темы
    Аватар для Leoniv
    Регистрация
    20.04.2016
    Адрес
    Minsk
    Возраст
    21
    Сообщений
    5,588

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от lamerec Посмотреть сообщение
    А скролл приделать?
    Что-то не получается...

  11. #11
    Новичок Аватар для lamerec
    Регистрация
    23.01.2020
    Сообщений
    15

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от Leoniv Посмотреть сообщение
    Что-то не получается...
    Хорошо, Леонид, не заморачивайтесь. У меня ноутбук. Прицепил сейчас внешний монитор, программка отлично вписалась в него.

  12. #12
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,208

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Leoniv, классная штучка получилось!
    Жаль я магнитофонами давно не занимаюсь, но аж ностальгия пробила...

    Есть только несколко моментов:
    1) 595-е регистры это конечно удобно, и стоят руб/ведро, сам их много применяю для светодиодов/матриц, но - микросхемы типа STP16DP05, STP16CPC26 и им подобные практичнее - во 1-х одна заменяет две 595-й (16 бит), во вторых - не нужны 16 резисторов, то выставляеться ОДНИМ.
    В третьих - яркость легко регулируется, в том числе и программно, и можно без ШИМа.
    Индикация с ним также полностью статическая.

    2) Я не очень понял:
    АЦП STM32 имеет множество режимов работы. Например, есть «регулярные» и «инжектированные» каналы. Смысл в том, что тут можно формировать группы каналов, когда логический автомат будет по очереди делать преобразования в нескольких каналах и сохранять результат. Отличие «регулярных» и «инжектированных» каналов состоит в том, что в первом случае результаты сохраняются в одном регистре, а во втором случае – в отдельных регистрах для каждого канала. Второй вариант удобней, зато у него количество каналов ограничено, их всего 4. Но здесь надо всего 2, поэтому данное ограничение несущественно и можно использовать «инжектированные» каналы.
    У STM32 его АЦП может преобразовывать много каналов по очереди, и складывать по ДМА в массив (буфер). Без всяких инжектированных.
    Удобнее всего это делать с двойным буфером, и прерыванием от половины и конца. Тогда пока АЦП пишет в один буфер, моно спокойно читать из другого, зная что там ничего не поменяется (если конечно, успевать).

    В F100 это есть.
    Вот если бы был выбран более мелкий и более дешевый F030 (TSSOP20 или LQFP32), то там этой "фичи" насколько я помню нет.

    3)
    Цитата Сообщение от Leoniv Посмотреть сообщение
    Светодиоды управляются статически, для этого использована цепочка регистров 74HC595. Это позволяет устранить помехи, которые свойственны динамической индикации, а также полностью избавиться от неприятного мерцания. Частота обновления показаний составляет 375 Гц.
    Если обновление индикации 375Гц, то какая же она "статическая"? С точки зрения помех, 375 и ее гармоники - как раз в звуковом диапазоне.
    Тут может килогерц 20 бы сделать, чтобы подальше было (но чтобы с ГСП не било).

    P.S. но все равно конструкция классная и красивая!
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  13. #13
    Завсегдатай
    Автор темы
    Аватар для Leoniv
    Регистрация
    20.04.2016
    Адрес
    Minsk
    Возраст
    21
    Сообщений
    5,588

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от lamerec Посмотреть сообщение
    Хорошо, Леонид, не заморачивайтесь. У меня ноутбук. Прицепил сейчас внешний монитор, программка отлично вписалась в него.
    Переделал, перезалил (meter_soft.zip). Поскольку поля ввода на блок-схеме дублируют поля на графике (только с некоторыми коэффициентами), решил при уменьшении окна задвигать картинку с блок-схемой вверх. А для таблицы добавил скроллер. Сейчас вот так выгдлядит окно программы в макс. и мин. виде:

    Нажмите на изображение для увеличения. 

Название:	meter_soft_max.gif 
Просмотров:	159 
Размер:	102.0 Кб 
ID:	391144 Нажмите на изображение для увеличения. 

Название:	meter_soft_min.gif 
Просмотров:	155 
Размер:	65.6 Кб 
ID:	391145

    Цитата Сообщение от Alex Посмотреть сообщение
    Leoniv, классная штучка получилось!
    Спасибо!

    Цитата Сообщение от Alex Посмотреть сообщение
    1) 595-е регистры это конечно удобно, и стоят руб/ведро, сам их много применяю для светодиодов/матриц, но - микросхемы типа STP16DP05, STP16CPC26 и им подобные практичнее
    Да, я знаю про такие микросхемы. Но они значительно менее распространенные. Еще один момент - с резисторами есть возможность выровнять яркость сегментов. Матрицы тут разных цветов, причем количество сегментов одного цвета не кратно ни 8-ми, ни 16-ти. Для каждого цвета паяются свои резисторы - и всё.

    Цитата Сообщение от Alex Посмотреть сообщение
    В третьих - яркость легко регулируется, в том числе и программно, и можно без ШИМа.
    У меня для регулировки яркости используются линейные стабилизаторы LM1117. Ими управляют или подстроечники, или ЦАП, или сглаженный фильтром ШИМ. На светодиоды, естественно, ШИМ не поступает. И то заметны помехи. Когда отображаются пиковые уровни сигнала порядка -40 дБ от полной шкалы АЦП, то хорошо заметны любые помехи. Например, четко видно, что при тактировании контроллера от HSE помех на выходе АЦП больше, чем при тактировании от HSI.

    Цитата Сообщение от Alex Посмотреть сообщение
    У STM32 его АЦП может преобразовывать много каналов по очереди, и складывать по ДМА в массив (буфер). Без всяких инжектированных.
    Любую задачу можно решить многими способами. Если использовать группу регулярных каналов, то плохо, что данные валятся в один регистр. DMA сможет их переложить в общий массив. А мне было удобнее логически разделить каналы. Для каждого канала я создаю свой объект АЦП, этому же объекту принадлежит и буфер. Поэтому использую инжектированные каналы, которые имеют отдельные регистры данных АЦП. Передачу делаю отдельными каналами DMA, которые запускает не АЦП, а таймер (к АЦП привязан только один канал DMA). Прерывания по заполнению половины буфера и по концу передачи, естественно, использую.

    Цитата Сообщение от Alex Посмотреть сообщение
    Если обновление индикации 375Гц, то какая же она "статическая"? С точки зрения помех, 375 и ее гармоники - как раз в звуковом диапазоне.
    А что тогда назвать статической? Любая индикация должна обновляться, иначе это будет постоянно горящая лампочка

  14. #14
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,208

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от Leoniv Посмотреть сообщение
    Да, я знаю про такие микросхемы. Но они значительно менее распространенные. Еще один момент - с резисторами есть возможность выровнять яркость сегментов. Матрицы тут разных цветов, причем количество сегментов одного цвета не кратно ни 8-ми, ни 16-ти.
    Если не кратно, тогда да.


    Цитата Сообщение от Leoniv Посмотреть сообщение
    Любую задачу можно решить многими способами. Если использовать группу регулярных каналов, то плохо, что данные валятся в один регистр. DMA сможет их переложить в общий массив. А мне было удобнее логически разделить каналы. Для каждого канала я создаю свой объект АЦП, этому же объекту принадлежит и буфер. Поэтому использую инжектированные каналы, которые имеют отдельные регистры данных АЦП.
    Все равно не понимю зачем.
    У меня подобное на работе в куче устройств используется, более того, поскольку обработка все равно идет блоками, то прерывание идет по блоку а не по группе:
    - таймер дергает АЦП с частотой Fsr.
    - АЦП по каждому дерганью таймером, ацэпирует несколько регулярных каналов и сладывает результаты в массив.
    - после N групповых преобразований, получаем прерывание и обрабатываем блок.
    Т.е. прерывание получаем с частото Fsr/N.

    В данном случае тоже можно было бы так сделать, поскольку обрабатывать и выдавать результат быстрее чем обновление индикации смысла нет.

    А инжектируемые каналы не для этого придуманы.
    Это когда при работе описанной выше секвенции, #внезапнопонадобилось проацепировать какой другой вход.

    Цитата Сообщение от Leoniv Посмотреть сообщение
    А что тогда назвать статической? Любая индикация должна обновляться, иначе это будет постоянно горящая лампочка
    Это понятно

    Да, она не "динамическая" в том смысле что нет развертки и светодиоды не работаю групапами, но все равно она не полностью статическая.

    "Полностью статической" я называю ту, в которой при отсутствии обновления ничего не "шевелится". Ну а там, "раз в" обновилось. К примеру - индикация громкости при ее регулировке. А если идет постоянное обновление с частотой 375Гц, то это как бы не совсем "статическая".
    И если бы не надобность в разных резистрах на разные светодиоды,/сегменты, то при такой частоте обновления можно было бы и о динамической подумать (но я бы частоту развертки все-же повыше выбрал, по многим причинам).


    P.S. Кому я все это объясняю?!
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  15. #15
    Завсегдатай
    Автор темы
    Аватар для Leoniv
    Регистрация
    20.04.2016
    Адрес
    Minsk
    Возраст
    21
    Сообщений
    5,588

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от Alex Посмотреть сообщение
    Все равно не понимю зачем.
    Здесь речь идет исключительно об архитектуре программы. Можно все замечательно сделать и на регулярных каналах, полностью согласен. Но там будет один общий буфер, который надо потом разбирать и делить между каналами. Мне показалось более красивым, если данные (буфер) будут инкапсулированы внутри того класса, который их использует. Про другой канал он вообще ничего знать не обязан.

    Цитата Сообщение от Alex Посмотреть сообщение
    А инжектируемые каналы не для этого придуманы.
    Никто не запрещает их использовать в какой угодно роли. У них есть плюс - раздельные регистры, и минус - таких каналов мало. Но если хватает - почему нет?

    Цитата Сообщение от Alex Посмотреть сообщение
    "Полностью статической" я называю ту, в которой при отсутствии обновления ничего не "шевелится".
    Ну так и у меня ничего не шевелится, в смысле светодиоды. Или Вы про транзакции в регистры сдвига? Да, я шлю туда информацию с частотой 375 Гц, но если она одна и та же, то на выходах ничего не меняется. Гипотетически помехи от шины SPI, конечно, быть могут. Можно сделать дополнительную проверку - если данные не поменялись, отказываться от цикла обмена с регистрами вообще. Но тогда надо еще одну копию регистров хранить.

  16. #16
    Завсегдатай Аватар для mellowman
    Регистрация
    14.04.2009
    Адрес
    рядом с Москвой
    Сообщений
    4,447

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от Leoniv Посмотреть сообщение
    И то заметны помехи. Когда отображаются пиковые уровни сигнала порядка -40 дБ от полной шкалы АЦП, то хорошо заметны любые помехи. Например, четко видно, что при тактировании контроллера от HSE помех на выходе АЦП больше, чем при тактировании от HSI.
    А от кварца в данной конструкции вообще какая-нибудь польза есть?

  17. #17
    Завсегдатай
    Автор темы
    Аватар для Leoniv
    Регистрация
    20.04.2016
    Адрес
    Minsk
    Возраст
    21
    Сообщений
    5,588

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от mellowman Посмотреть сообщение
    А от кварца в данной конструкции вообще какая-нибудь польза есть?
    Кварц ставил только ради получения точной скорости обмена. Но и точности внутреннего RC для этого хватает, поэтому кварц сейчас не используется.

  18. #18
    Завсегдатай Аватар для 25602
    Регистрация
    07.07.2006
    Адрес
    Украина, Балта
    Возраст
    39
    Сообщений
    2,047

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Leoniv, снизу там идет индикация режима работы магнитофона, можно ли переделать пленку что бы там отображались входа, например "Вход 1" "Вход 2" и т.д. - отображать состояния селектора входов?

  19. #19
    Завсегдатай
    Автор темы
    Аватар для Leoniv
    Регистрация
    20.04.2016
    Адрес
    Minsk
    Возраст
    21
    Сообщений
    5,588

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Цитата Сообщение от 25602 Посмотреть сообщение
    можно ли переделать пленку что бы там отображались входа, например "Вход 1" "Вход 2" и т.д. - отображать состояния селектора входов?
    Да, конечно. Трафареты можно сделать любыми. Пленку вообще можно разделить на две части - шкала отдельно, трафареты отдельно. Пленку можно напечатать на струйнике или на лазернике, но лучше сделать фотовыводов. Можно еще использовать лазерную графировку двухслойных пленок.

    Нажмите на изображение для увеличения. 

Название:	IMG_7035.jpg 
Просмотров:	261 
Размер:	101.1 Кб 
ID:	391180 Нажмите на изображение для увеличения. 

Название:	DSC_1736k.jpg 
Просмотров:	255 
Размер:	169.7 Кб 
ID:	391181

  20. #20
    Новичок Аватар для Fifan
    Регистрация
    05.05.2019
    Сообщений
    72

    По умолчанию Re: Измеритель уровня с цифровой обработкой

    Китайцы уже клонировали данное устройство и продают - https://aliexpress.ru/item/328516006...id=65197563363

    https://www.youtube.com/embed/f1UKDQDSaes

Страница 1 из 4 123 ... Последняя

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

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