Помогите реализовать регулятор громкости...

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Сообщение shads »

Всем привет.

Прошу помощи в создании небольшой программки для STM32F100C8 (т.к. именно их 10 штучек валяются без дела...)
Заодно будет для меня первый опыт в STM_ках... ато как то кроме мигания светиком пока не было времени продвинуться ))) http://radiokot.ru/forum/viewtopic.php? ... 2#p2142502
Если я не в тему в этой ветке со своей просьбой, то ткните носом, куда лучше обратится...

В обчем задача такая...
Нужно соЙстряпать на СТМ-ке 2-х канальный регулятор громкости для слабослышащих...
Делать на переменниках как то не современно, да и переменники быстро сдыхают... а тут на одном кристалле и 2-х кнопочках сразу 2 регулятора для 2-х слабослышащих...
Ставится это будет в общественном месте, там где места для слабослышащих...
Между 2-мя креслами - одна коробочка с 2-мя разъемами для наушников... и с 2-мя кнопочками для каждого слушателя... каждой кнопочкой можно по кругу переключать ступени громкости, думаю 4 уровня хватит (средне, выше среднего, громко, максимально громко)... ну и 2 светика которые будут как то отображать текущий уровень...

Я так понимаю что надо подать входной сигнал на ADC, и в цикле результаты замеров, поделенные на значение уровня для каждого канала - выдавать на 2 канала DAC...
Думаю STM должен потянуть частоту дискредизации в 20кГц... хотя наверное для слабослышащих и 10кГц сойдет... все равно в основном речь будет транслироваться...

Есть кто нибудь кто может накидать кода ???
Если что, у меня KEIL 454
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Сообщение menzoda »

Мне кажется это как горло лечить через задницу. АЦП и ЦАП в обычных МК совершенно не подходят для аудио применений, нет конечно можно попробовать, но что получится на выходе? Тем более речь идет о слабослышащих, они и так плохо слышат, а тут им еще звук через такую ерунду пропустили. Тем более это слишком сложно для такой задачи, ну не нравится механический переменник - можно взять цифровой, какие проблемы? Полностью аналоговая цепь с цифровым потенциометром, управляемая любым копеечным пиком с восемью ногами, по моему идеальный вариант.

Если цель сделать не хорошо, а чтобы STM и ЦАП, то чего уж, делай. Читай из АЦП да пиши в ЦАП, скорости должно и для 20 кГц хватить, вот только разрядность у АЦП и ЦАП 12 бит, а эффективная наверное всего 10 бит.
Реклама
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Сообщение shads »

menzoda писал(а):Мне кажется это как горло лечить через задницу.
Сказано конечно сильно... но вот от практики очень далеко )))
menzoda писал(а):АЦП и ЦАП в обычных МК совершенно не подходят для аудио применений, нет конечно можно попробовать, но что получится на выходе?
А что получится на выходе... помоему очень качественный звук...
почитал интернеты, хвалят там STM-ный ADC\DAC... на 12 разрядах только младший бит вроде шумит чуть... а так красота...
menzoda писал(а):Тем более это слишком сложно для такой задачи
А факты какие о слишком сложности???
menzoda писал(а):Полностью аналоговая цепь с цифровым потенциометром, управляемая любым копеечным пиком с восемью ногами, по моему идеальный вариант.
Ну это действительно для каких нибудь HiFi направлений... а у меня всего то задача СЧ обрабатывать... да и по цене наверное цифровые потенциометры не самые дешевые... но не в этом дело, просто к меня есть STM_ки и есть конкретная задачка...
menzoda писал(а):Если цель сделать не хорошо, а чтобы STM и ЦАП, то чего уж, делай.
Вот уже и делаю...
Скачал кубика, сижу морокую...

Изображение
Вложения
stm.png
(67.93 КБ) 1378 скачиваний
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Убрал.
Нарушение Правил форума п. 2.4
aen
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Аватара пользователя
Сообщения: 202
Зарегистрирован: Сб янв 09, 2016 15:51:17

Сообщение AVI-crak »

shads писал(а): Нужно соЙстряпать на СТМ-ке 2-х канальный регулятор громкости для слабослышащих...
Если вход - то на весь динамический диапазон ацп, а это всего 12 разрядов. Смысла особого усиливать эти 12 разрядов не наблюдается. Ведь в случае усиления скажем в 1000 - на выходе получаем двухбитный цап, да ещё и с шумом. В случае уменьшения громкости в 1000 раз - тоже двухбитный цап...
Контактная информация:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Сообщение shads »

AVI-crak писал(а):Если вход - то на весь динамический диапазон ацп, а это всего 12 разрядов.
Верно... но для оцифровки речи это выше крыши...
Другое дело если бы мы оцифровывали высококач музыку, но таких требований нет...
AVI-crak писал(а):Смысла особого усиливать эти 12 разрядов не наблюдается. Ведь в случае усиления скажем в 1000 - на выходе получаем двухбитный цап, да ещё и с шумом. В случае уменьшения громкости в 1000 раз - тоже двухбитный цап...
Чет вас как то шарахает из стороны в сторону )))))
Зачем усиливать в 1000 раз?
У нас нормальный линейный сигнал, который сразу можно подавать на ADC... и на выходе DAC нужен такой же уровень... т.е. ничего усиливать вообще не надо...
Зачем уменьшать в 1000 раз?
Достаточно нескольких градаций громкости, например 100%, 85%, 70%, 55%... т.е. уменьшаем всего в 2 раза... (11 разрядов)
Реклама
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Чт ноя 29, 2012 08:27:22

Сообщение pixar »

аналоговый ключ 2 х (4:1) с фиксированными аттенюаторами.
управлять всё равно от чего , хоть от стмки , раз уж "она есть" .
про ацп цап забыть.
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Чт ноя 29, 2012 08:27:22

Сообщение pixar »

50 % это не регулировка для слабослышащих .
нужен диапазон как раз 40-60 дБ , на что 12 разядов не хватит .
в телекоме принято 8 разрядов с компрессором - экспандером, в линейной шкале это 10 разрядов .
10 бит ты как раз с ацп и получишь . ЦАП 12 бит - на громкость остается 2 разряда, это 12 дБ регулировки из требуемых 40-ка.
Если подключить телекомовский альфа-кодек - можно диапазон расширить, но тоже недостаточно. При этом экспандер будет частично аналоговый - тоже гемор. Ищи G.711 codec , реализаций полно. Alpha -law ( A-Law) работает быстрее.

можно поробовать ЦАПу добавить разрядности через oversampling , но это точно не для тебя задача.

Pешай в аналоге - там всё элементарно.
Последний раз редактировалось pixar Вт янв 19, 2016 11:47:54, всего редактировалось 8 раз.
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

100% !!! Чувствительность уха то логарифмическая... А для со слабым слухом... вообще может быть непонятно что... :music:
"Я не даю готовых решений, я заставляю думать!"(С)
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Чт ноя 29, 2012 08:27:22

Сообщение pixar »

можно выдавать через 4 канала ШИМа , с фиксированными аттенюаторами.
включать только один канал , ненужные отключать.
вылезет проблемка с выходным фильтром , но тоже решаемо.
как ни кинь - аналоговый MUX проще всего .
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Есть ещё вариант на ШИМ... озвучивать не буду... им ещё на ПИКах пользовались...
"Я не даю готовых решений, я заставляю думать!"(С)
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Сообщение shads »

pixar писал(а):аналоговый ключ 2 х (4:1) с фиксированными аттенюаторами. управлять всё равно от чего , хоть от стмки , раз уж "она есть" .
про ацп цап забыть.
Можно конечно и забы(и)ть, но раз они у нас есть, грех ими не воспользоваться...
Хотя спасибо за вариант, в принципе буду иметь ввиду...
pixar писал(а):50 % это не регулировка для слабослышащих. нужен диапазон как раз 40-60 дБ ...........
в телекоме принято 8 разрядов с компрессором - экспандером........... Если подключить телекомовский альфа-кодек.............
можно поробовать ЦАПу добавить разрядности через oversampling ..........
Ну вы ваще куда то в дебри высшей математики ушли )))))
Сейчас человек слушает трансляцию в наушниках на максимальной громкости с выхода микшера и счастлив как никто... а вы про "50 % это не регулировка"
pixar писал(а):можно выдавать через 4 канала ШИМа, с фиксированными аттенюаторами. включать только один канал
Тоже идея... Но получается что на 2 независимых канала - нужно будет 8 ШИМ выходов... есть ли столько в моем проце???
Попробую пока так как я изначально задумал, а если уже не получится, буду остальные варианты рассматривать...
Грызет канифоль
Сообщения: 291
Зарегистрирован: Чт ноя 06, 2014 13:09:06

Сообщение viiv »

shads писал(а): Сейчас человек слушает трансляцию в наушниках на максимальной громкости с выхода микшера и счастлив как никто... а вы про "50 % это не регулировка"
Человеческое ухо не линейно (грубо - логарифмическая зависимость). Ради эксперемента, возмите аудиофайл pcm-формата, поделите все значения на два и послушайте исходный файл и модифицированный (естественно на одном и том же уровне громкости).

А у слабослышащих все еще хуже может быть - они вообще могут не различить изменение громкости в приведенном выше примере.
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Сообщение shads »

viiv писал(а):Человеческое ухо не линейно (грубо - логарифмическая зависимость). Ради эксперемента, возмите аудиофайл pcm-формата, поделите все значения на два и послушайте исходный файл и модифицированный (естественно на одном и том же уровне громкости).
Ну и что я услышу... что поделенный файл стал звучать громче чем не поделенный ?????
Что вы прицепились к нелинейности... ясный пень что чувствительность уха не линейна... цифры которые я привел выше - привел как пример... реальные границы диапазонов громкости можно будет подобрать на слух...
viiv писал(а):А у слабослышащих все еще хуже может быть - они вообще могут не различить изменение громкости в приведенном выше примере.
И что страшного произойдет если они не различат изменения громкости ???
Задача состоит не в том, чтобы слабо слышащий балдел от того что он различает изменения громкости при переключении уровней...
А задача состоит в том, чтобы для совсем глухого человека дать возможность наушникам работать на максимальной мощности...
А для нормально слышащего человека иметь возможность уменьшить мощность до приемлемого комфортного уровня...
В итоге под любой деффект слуха можно будет примерно отрегулировать уровень в наушниках... либо выдав максимум на наушники либо уменьшив громкость до приемлемого комфортного уровня...
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

shads писал(а): А задача состоит в том, чтобы для совсем глухого человека дать возможность наушникам работать на максимальной мощности...
А для нормально слышащего человека иметь возможность уменьшить мощность до приемлемого комфортного уровня...
Ты себя к кому относишь??? Ты вообще слышишь... что тебе другие говорят... или просто тупо пишешь своё???
"Я не даю готовых решений, я заставляю думать!"(С)
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

HHIMERA, однозначно, как местное большинство - абыкакработало :)))
Грызет канифоль
Сообщения: 291
Зарегистрирован: Чт ноя 06, 2014 13:09:06

Сообщение viiv »

shads писал(а): Что вы прицепились к нелинейности... ясный пень что чувствительность уха не линейна... цифры которые я привел выше - привел как пример... реальные границы диапазонов громкости можно будет подобрать на слух...
Выделяют 4 степени тугоухости и глухоту:
§ I степень – 26-40 дБ;
§ II степень – 41-55 дБ;
§ III степень – 56-70 дБ;
§ IV степень – 71-90 дБ;
§ Глухота – более 90 дБ.
Для какой категории Вы собираетесь "подобрать на слух"? Или в указанное "общественное место" ходят люди с одинаковой степенью тугоухости? Тогда другое дело, но в этом случае регулятор громкости не нужен.

Диапазон для слабослышащих 64dB!!! Понимаете, что такое 64dB?
Вот на эту цифру и надо ориентироваться. ЦАП Вашего микроконтроллера без внешних регуляторов не позволяет решить задачу (ну или Вы задачу не точно описали). А если есть внешний регулятор, то и АЦП-ЦАП Вашего микроконтроллера не нужен (опять же, исходя из данной Вами задачи).
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Чт ноя 29, 2012 08:27:22

Сообщение pixar »

HHIMERA писал(а):Ты себя к кому относишь??? Ты вообще слышишь... что тебе другие говорят... или просто тупо пишешь своё???
есть такие люди , которые что-то спросят и ловят вполне бесплатный ответ .
есть такие люди , с которых проще запросить ТЗ под роспись и озвучить цену работы .
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Сообщение shads »

viiv писал(а):Выделяют 4 степени тугоухости и глухоту:
§ I степень – 26-40 дБ;
§ II степень – 41-55 дБ;
§ III степень – 56-70 дБ;
§ IV степень – 71-90 дБ;
§ Глухота – более 90 дБ.
Спасибо за раскладочку...
viiv писал(а):или Вы задачу не точно описали
Именно... я изначально чуть не правильно озвучил свои хотелки...
Конечно же я не собираюсь делать озвучку для всех вариантов... обычно это пожилые люди, пользующиес слуховым аппаратом... думаю это III степень максимум...
Да и то, если кому то будет не хватать громкости - это не мои проблемы... тут никаких жестких требований нет...

IV и V степени - это конечно крайности...
Думаю если кому то надеть на уши 90 дБ, то просто башка начнет трещать от тряски))) или все таки существуют звуковые системы для таких степеней?
Последний раз редактировалось shads Ср янв 20, 2016 17:58:23, всего редактировалось 3 раза.
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Сообщение shads »

pixar писал(а): есть такие люди , с которых проще запросить ТЗ под роспись и озвучить цену работы .
А я честно говоря не понимаю тех которые клянчат работу на форуме...
(Хотя не буду отрицать, что возможно ктото на этом и живет...)

Во первых на обычных бытовых "контрактах" (если они и существуют) вряд ли заработаешь на жизнь...
Честно говоря мне смешно, когда какой нибудь студентик просит чтото наваять, а к нему выстраивается очередь из (наверное безработных) программеров... мечтающих сорвать с него, как будто студент завтра на этом проекте заработает сумасшедшие деньги...

Во вторых, серьезные заказчики (на ком действительно можно что то заработать) не станут искать на форуме программистов...

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

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