Схема логорифмирования на МК STM32
Схема логорифмирования на МК STM32
Добрый день. Задача такая - есть входной аналоговый сигнал, от 0..10 вольт
Нужно на выходе получить ток, равный экспоненте от входного напряжения, т е для целочисленного примера:
1В - 10мкА
2В - 20мкА
3В - 40мкА
4В - 80мкА
5В - 160мкА
и так далее...
Входной аналоговый сигнал частотой - 0.1 - 10 кГц так же может изменяться в очень малых пределах - 0.001 В, поэтому нужен качественный АЦП, 16 бит в теории хватило бы.
Выбор пал на микропроцессор STM32F373VCT6 http://www.compel.ru/infosheet/ST/STM32F373VCT6/
Ибо имеет встроенный АЦП с 65535 выборками, то бишь 16 бит.
Выход токовый, думаю, можно попробовать реализовать с помощью ШИМ, к которому можно на выход подвесить источник тока, управляемый напряжением, где далее и получится токовый выход, диапазон достаточно мало толчен - 1мкА ~ 1мА
Ах да, забыл, встроенный АЦП stm32 имеет малый диапазон входных напряжений, по крайней мере не выше напряжения питания, само собой, которое, если я не ошибаюсь, у STM32 - 3.6 вольт. Посему на входе устройства будет масштабирующий усилитель, который обязан 10 вольт впихнуть в диапазон амплитуд работы АЦП
Самое главное - это получение экспоненты, она должна быть качественная, чтобы на слух не возможно было отличить от точно такого же экспоненциирующего устройства, только аналогового. Тут либо аппроксимировать, либо каждой выборке задавать значение, не знаю..
Именно поэтому пишу сюда, может найдутся специалисты, которые подскажут что они об этом думают и может как это получше реализовать. А так же не слишком ли мощный STM32 для такой задачи.
Нужно на выходе получить ток, равный экспоненте от входного напряжения, т е для целочисленного примера:
1В - 10мкА
2В - 20мкА
3В - 40мкА
4В - 80мкА
5В - 160мкА
и так далее...
Входной аналоговый сигнал частотой - 0.1 - 10 кГц так же может изменяться в очень малых пределах - 0.001 В, поэтому нужен качественный АЦП, 16 бит в теории хватило бы.
Выбор пал на микропроцессор STM32F373VCT6 http://www.compel.ru/infosheet/ST/STM32F373VCT6/
Ибо имеет встроенный АЦП с 65535 выборками, то бишь 16 бит.
Выход токовый, думаю, можно попробовать реализовать с помощью ШИМ, к которому можно на выход подвесить источник тока, управляемый напряжением, где далее и получится токовый выход, диапазон достаточно мало толчен - 1мкА ~ 1мА
Ах да, забыл, встроенный АЦП stm32 имеет малый диапазон входных напряжений, по крайней мере не выше напряжения питания, само собой, которое, если я не ошибаюсь, у STM32 - 3.6 вольт. Посему на входе устройства будет масштабирующий усилитель, который обязан 10 вольт впихнуть в диапазон амплитуд работы АЦП
Самое главное - это получение экспоненты, она должна быть качественная, чтобы на слух не возможно было отличить от точно такого же экспоненциирующего устройства, только аналогового. Тут либо аппроксимировать, либо каждой выборке задавать значение, не знаю..
Именно поэтому пишу сюда, может найдутся специалисты, которые подскажут что они об этом думают и может как это получше реализовать. А так же не слишком ли мощный STM32 для такой задачи.
Последний раз редактировалось Эрих Пн дек 29, 2014 11:38:58, всего редактировалось 1 раз.
Re: Схема логорифмирования на МК STM32
Я вот сейчас ковыряюсь с этим камнем, так вот, 10 кГц полоса - это впритык. Максимальная частота опроса 50 кГц (но это только непрерывный режим) и при этом полоса сильно меньше, чем 25 кГц.
Re: Схема логорифмирования на МК STM32
AlexGTS писал(а):Я вот сейчас ковыряюсь с этим камнем, так вот, 10 кГц полоса - это впритык. Максимальная частота опроса 50 кГц (но это только непрерывный режим) и при этом полоса сильно меньше, чем 25 кГц.
Мне с головой хватит и в 2 раза меньше - 5 кГц
Только как бы это всё реализовать, в МК слабо шарю, а сделать надо..
- White_Pit
- Потрогал лапой паяльник
- Сообщения: 310
- Зарегистрирован: Чт дек 25, 2014 13:49:58
- Откуда: Юкон
Re: Схема логорифмирования на МК STM32
Если начать с того, что масштабирующий усилитель будет логарифмирующим, задача облегчится. И, цап в микроконтроллерах разве не с токовым выходом?
Re: Схема логорифмирования на МК STM32
White_Pit писал(а):Если начать с того, что масштабирующий усилитель будет логарифмирующим, задача облегчится. И, цап в микроконтроллерах разве не с токовым выходом?
Нет, обычный линейный, антилогарифм или экспоненту - надо на МК получить, логарифмирующие усилители достаточно дорогие и качество в них не блещет, да и вообще аналоговое логарифмирование для высокоточных задач - вещи не совместимые
Про токовый выход ЦАП - не знаю, надо даташиты курить...
- White_Pit
- Потрогал лапой паяльник
- Сообщения: 310
- Зарегистрирован: Чт дек 25, 2014 13:49:58
- Откуда: Юкон
Re: Схема логорифмирования на МК STM32
Вот и я подумал, у самостоятельных цап частенько выход токовый и там применяют операционный усилитель для преобразования изменения тока в изменение напряжения. Скорее всего, цап микроконтроллера аналогичен однокристальному цап.
Re: Схема логорифмирования на МК STM32
Для меня это мелочи реализации, гораздо важнее код обработки входного сигнала и выдачи на ЦАП или ШИМ
- balmer
- Это не хвост, это антенна
- Сообщения: 1433
- Зарегистрирован: Вс дек 02, 2012 03:13:48
- Откуда: Калининград
Re: Схема логорифмирования на МК STM32
Эрих писал(а):Выбор пал на микропроцессор STM32F373VCT6 ....
Ибо имеет встроенный ЦАП с 65535 выборками, то бишь 16 бит.
Если не ошибаюсь, в F373 нет 16-ти битного DAC. Есть только 16-ти битный ADC.
Задача не очень понятно поставленна. Но если речь идет о боле-менее качестывенной обработки звука, то лучше не пользоваться встроенными ADC/DAC в STM32.
Для обработки звука предложил бы - CS4272 + STM32F405 (как в радиоприемниках прямого преобразования любят ставить). Но тут уже вопрос - единичный экземпляр делается, или серийный. Если единичный - однозначно лучше потратить лишних 10$ и сэкономить на разработке за счет более качественных деталей.
Re: Схема логорифмирования на МК STM32
balmer писал(а):Эрих писал(а):Выбор пал на микропроцессор STM32F373VCT6 ....
Ибо имеет встроенный ЦАП с 65535 выборками, то бишь 16 бит.
Если не ошибаюсь, в F373 нет 16-ти битного DAC. Есть только 16-ти битный ADC.
Задача не очень понятно поставленна. Но если речь идет о боле-менее качестывенной обработки звука, то лучше не пользоваться встроенными ADC/DAC в STM32.
Для обработки звука предложил бы - CS4272 + STM32F405 (как в радиоприемниках прямого преобразования любят ставить). Но тут уже вопрос - единичный экземпляр делается, или серийный. Если единичный - однозначно лучше потратить лишних 10$ и сэкономить на разработке за счет более качественных деталей.
Ошибся, АЦП имел ввиду. Разработка серийная, там звуковой генератор, полосой до самый максимум - 10 кГц, на деле где-то до 5-6 кГц
Качества встроенных АЦП мне хватило бы с головой, нужно только чтобы кто-то помог сделать, написать алгоритм
Re: Схема логорифмирования на МК STM32
Разработка серийная
нужно только чтобы кто-то помог сделать
"Очередь желающих сразу разбежалась!"(С)
В раздел "работа"...
"Я не даю готовых решений, я заставляю думать!"(С)
- balmer
- Это не хвост, это антенна
- Сообщения: 1433
- Зарегистрирован: Вс дек 02, 2012 03:13:48
- Откуда: Калининград
Re: Схема логорифмирования на МК STM32
А вот все равно не доконца понимаю, почему нужен качественный ADC на 16 бит, но при этом в качестве DAC подойдет 12 бит выход (или даже PWM что еще хуже).
Выходной ток должен по возможности быстро следовать за входным? Или будет усреднение за какойто интервал времени? Какие коэффициэнты при экспоненте Iout = A*exp(B*Vin)?
Выходной ток должен по возможности быстро следовать за входным? Или будет усреднение за какойто интервал времени? Какие коэффициэнты при экспоненте Iout = A*exp(B*Vin)?
Re: Схема логорифмирования на МК STM32
HHIMERA писал(а):Разработка серийнаянужно только чтобы кто-то помог сделать
"Очередь желающих сразу разбежалась!"(С)
В раздел "работа"...
Серийная, значит надо для себя и может пару для друзей штук по 5 сделать, барыжить никто ничем не собирается
Re: Схема логорифмирования на МК STM32
balmer писал(а):А вот все равно не доконца понимаю, почему нужен качественный ADC на 16 бит, но при этом в качестве DAC подойдет 12 бит выход (или даже PWM что еще хуже).
Выходной ток должен по возможности быстро следовать за входным? Или будет усреднение за какойто интервал времени? Какие коэффициэнты при экспоненте Iout = A*exp(B*Vin)?
Да вот беда, тогда надо искать STM32 с ЦАП 16 бит или цеплять ЦАП уже внешний. Если ШИМ в такой системе плохую точность даёт - запомню
Система будет реального времени, проще говоря строится экспоненциальный генератор в диапазоне звуковых частот, полосой - 0.1 - 10 кГц
Коэффициенты - надо подумать посчитать, но точно знаю что ток мал, это около 10мкА - 1-2мА
Т.е. к примеру:
0В - 10мкА
1В - 20мкА
2В - 40мкА
3В - 80мкА
4В - 160мкА
5В - 320мкА
и т.д....
И т.к. это всё может модулироваться очень малыми напряжениями - порядка 0.001 вольт, соответственно и ток будет экспоненциально модулироваться в таком случае на единицы микроампер, нужны высоко разрядные АЦП и ЦАП с токовым выходом, 16 бит считал - вроде хватает.
Если кто может помочь - точнее подскажу, знаю что для программиста МК, тем более STM32 - это всё очень просто
- balmer
- Это не хвост, это антенна
- Сообщения: 1433
- Зарегистрирован: Вс дек 02, 2012 03:13:48
- Откуда: Калининград
Re: Схема логорифмирования на МК STM32
Эрих писал(а):нужны высоко разрядные АЦП и ЦАП с токовым выходом, 16 бит считал - вроде хватает.
Ага, понятнее стало.
ADC 16 бит хватает только если шумов нет. А шумы будут от процессора. Причем, так как выбирать данные требуется на максимальной скорости, то видимо 4 бита будут зашумленны (или даже больше). Так что советую таки внешний ADC
Re: Схема логорифмирования на МК STM32
balmer писал(а):Эрих писал(а):нужны высоко разрядные АЦП и ЦАП с токовым выходом, 16 бит считал - вроде хватает.
Ага, понятнее стало.
ADC 16 бит хватает только если шумов нет. А шумы будут от процессора. Причем, так как выбирать данные требуется на максимальной скорости, то видимо 4 бита будут зашумленны (или даже больше). Так что советую таки внешний ADC
тогда вообще пропадает весь смысл использовать STM32, мне кажется это слишком мощный инструмент для такого дела. Достаточно взять аттиньку или атмегу 8 и прикрутить к ней внешний ЦАП АЦП получается
- balmer
- Это не хвост, это антенна
- Сообщения: 1433
- Зарегистрирован: Вс дек 02, 2012 03:13:48
- Откуда: Калининград
Re: Схема логорифмирования на МК STM32
Это уже кому, что нравится. При той-же цене у STM32 и памяти побольше и процессорная мощь повыше. Из тех же STM32F030 можно выбрать...
Re: Схема логорифмирования на МК STM32
Наверное так и сделаю и похоже, придётся всё делать самому. Может кто посоветовать хороший DIY программатор под STM32?
Есть доступ к двухсторонним металлизированным печатным платам.
Есть доступ к двухсторонним металлизированным печатным платам.
- balmer
- Это не хвост, это антенна
- Сообщения: 1433
- Зарегистрирован: Вс дек 02, 2012 03:13:48
- Откуда: Калининград
Re: Схема логорифмирования на МК STM32
Не знаю что такое DIY. Но программатор для STM32 лучше купить, геммороя меньше. Еще вариант - купить STM32 Discovery или STM32 Nucleo отладочную плату - там будет программатор, который можно будет использовать для программирования и дебага внешних чипов. Кстати плюс STM32 по сравнению с Atmega8 - возможность дебага
Ну и программатор подключается четырьмя проводами, мелочь, а все лучше, чем 6 проводов у ATmega.
Re: Схема логорифмирования на МК STM32
DIY - смысле сам сделать, дешевле думаю спаять чем готовый купить, у нас тут цены на всё космические, но программатор попробую поискать на рынке не дорогой
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25