Выбор контроллера для обработки периодического сигнала
- Сообщения: 6
- Зарегистрирован: Вт май 14, 2013 15:33:36
Доброго времени суток, Уважаемые Коты! Помогите, пожалуйста, в следующем вопросе. Необходимо выполнить обработку периодического сигнала, быстрое преобразование Фурье, для вычисления периода. Сигнал снимается с датчика давления воздуха. Текущее значение должно передаваться на микроконтроллер, который в свою очередь реализует БПФ и передает данные на сторонне устройство. Требование по обработке сигнала : АЦП микроконтроллера должен выполнять минимум 15000 измерений\секунду, микроконтроллер должен хранить в памяти 15000 измерений, с точностью 12-bit. Подскажите, пожалуйста, какой микроконтроллер соответствует данным требованиям? Сам лично занимался программированием AVR-микроконтроллеров, познания небольшие. Считаю что Atmega32 справиться с данной задачей, однако хочу услышать мнение опытных пользователей.
- Реклама
8битные АВРки 15КилоВыборокВСекунду на АЦП потянут, вот, только, АЦП там 10ти битный.
Или берите внешний АЦП, или смотрите МК по характеристикам АЦП. (А потом уже по архитектуре МК выбирайте.
)
А вот про скорость - зависит от алгоритма и ваших потребностей.
ДОБАВИЛ: Перечитал. И не понял, преобразование Фурье по 15000 точкам? Что-то, думается, тогда МК с ARM начинкой...
Или берите внешний АЦП, или смотрите МК по характеристикам АЦП. (А потом уже по архитектуре МК выбирайте.
А вот про скорость - зависит от алгоритма и ваших потребностей.
ДОБАВИЛ: Перечитал. И не понял, преобразование Фурье по 15000 точкам? Что-то, думается, тогда МК с ARM начинкой...
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- Сообщения: 6
- Зарегистрирован: Вт май 14, 2013 15:33:36
Kavka, спасибо большое за ответ. Да, преобразование Фурье на 15000 точек. Из ARM, я смотрел STM32F051. Может быть подскажите еще варианты ?
Есть предположение, переходящее в уверенность, что ТС пока сам не знает - что ему надо сделать.

- Что должно передаваться на стороннее устройство? Частота МК в МГц байтом?
- С точностью 12-bit? Пример датчика, пжалста, с такой точностью.
Про диапазон измерения и т.п. даже не спрашиваю...
Вывод - очередной дипломник с очередной попыткой "проскочить на халяву". Тему диплома (не название!) озвучил.
- Что должно передаваться с датчика давления воздуха? Фотография стрелки маномера?Сигнал снимается с датчика давления воздуха. Текущее значение должно передаваться на микроконтроллер, который в свою очередь реализует БПФ и передает данные на сторонне устройство. Требование по обработке сигнала : АЦП микроконтроллера должен выполнять минимум 15000 измерений\секунду, микроконтроллер должен хранить в памяти 15000 измерений, с точностью 12-bit.
- Что должно передаваться на стороннее устройство? Частота МК в МГц байтом?
- С точностью 12-bit? Пример датчика, пжалста, с такой точностью.
Про диапазон измерения и т.п. даже не спрашиваю...
Вывод - очередной дипломник с очередной попыткой "проскочить на халяву". Тему диплома (не название!) озвучил.
Человек - это звучит гордо, а обезьяна - объективно...
- Сообщения: 6
- Зарегистрирован: Вт май 14, 2013 15:33:36
SergeBS, и не дипломник, и не халявщик. Молодой специалист, с большими взглядами на будущее. Из-за большой ответственности темы решил узнать на форуме, послушать опытных людей. Поэтому Вас по прошу попросту не портить тему, если нет желания написать что-то стоящее. А про стрелку, это вы хорошо загнали))) я оценил. Передаваться на стороннее устройство будет период колебаний, но опять же это не главное, и зачем диапазон указывать?? Датчик аналоговый от 0 до 5 V. Может кто-то просто занимался подобной реализацией, желаю получить совет. Вот и всё.
- Реклама
Затем, что вначале идет вопрос - ЗАЧЕМ мерять? А уже потом - что и как. Доходчивый пример: сетевое напряжение можно мерять вольтметром с диапазоном 0...300 В и точностью 1%, а можно - с диапазоном 200...250 В и точностью 2%. Где результирующая точность получится выше? И во сколько раз?и зачем диапазон указывать??
Ответь СЕБЕ для начала, теперь уже на 2 вопроса:
Ответь СЕБЕ на наводящие, так сказать, вопросы. И многое станет ясным. А кое-что - нафиг ненужным.- Что должно передаваться на стороннее устройство? Частота МК в МГц байтом?
- С точностью 12-bit? Пример датчика, пжалста, с такой точностью.
Например желание мерять с точностью 12 бит, которое кроме как идиотизмом назвать трудно... Поскольку вполне может оказаться, что АЦП вообще не нужен и достаточно компаратора. Например. Если поставить RC-фильтр на входе.
А там и до необходимой точности измерения и чем она определяется, периода вычисления и т.п. доберемся.
Сам додумаешься - так и дальше проще задачки решать будет. Хотя бы вопросы правильные задавать научишься.
Человек - это звучит гордо, а обезьяна - объективно...
GERAMOZG писал(а):с большими взглядами на будущее.
Реализацией сферического коня в вакууме. Иначе описание задачки не назовешь.GERAMOZG писал(а):Может кто-то просто занимался подобной реализацией, желаю получить совет.
Человек - это звучит гордо, а обезьяна - объективно...
Так какой же период колебаний будет на выходе у аналогового датчика давления? Или датчик всё-таки генераторный, типа ДДГ, ДВБЧ-У (для прецизионнных измерений) и им подобных импортных? Тогда вообще зачем АЦП?GERAMOZG писал(а): Передаваться на стороннее устройство будет период колебаний ..... Датчик аналоговый от 0 до 5 V. ... Вот и всё.
- Сообщения: 535
- Зарегистрирован: Вт авг 28, 2012 22:21:33
Тебе там правильно на верху говорят про то, что ты что-то загнул с алгоритмом. Так что озвучь ПОДРОБНО, ЧТО тебе надо измерить, КАКОЙ сигнал на входе, и так далее.
Но тем не менее. Ты говоришь про "хранить 15000 точек". Эти 15000 точек займут 30Кб памяти, я открываю страничку с описанием ATmega32, а там - 2Кб. Потом открываю страничку с STMF0, а там 8Кб. Чуешь разницу? Так что тебе грозит STMF3 или STMF4, ну или что-нибудь помладше, но с внешней памятью.
PS. Охереть! Посмотрел в промэлектронике цену на ATmega32 - 270 руб, а потом цену на STM32F373C8T6, который уделает эту щенячью мегу во все щели - 127 руб. Какого черта весь форум дрочит на эти никчемные атмелы?!
Но тем не менее. Ты говоришь про "хранить 15000 точек". Эти 15000 точек займут 30Кб памяти, я открываю страничку с описанием ATmega32, а там - 2Кб. Потом открываю страничку с STMF0, а там 8Кб. Чуешь разницу? Так что тебе грозит STMF3 или STMF4, ну или что-нибудь помладше, но с внешней памятью.
PS. Охереть! Посмотрел в промэлектронике цену на ATmega32 - 270 руб, а потом цену на STM32F373C8T6, который уделает эту щенячью мегу во все щели - 127 руб. Какого черта весь форум дрочит на эти никчемные атмелы?!
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Присоединяюсь к уже отметившимся комментаторам - если озвучиваются явно невероятные требования (преобразование Фурье на 15000 точек на AVR
), значит, где-то системная ошибка в рассуждениях.
Ну, например, отлавливать компаратором переход через ноль и по таймеру определять.
Как минимум, период входного сигнала можно вычислить гораздо проще.быстрое преобразование Фурье, для вычисления периода.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Это на первый взгляд. Не берусь рассуждать об туманно озвученной ТС данной задаче, но мерить таким макаром , к примеру, период тока в сети, в которой бездна нелинейных нагрузок и переходных процессов -- можно получить цену на пеньку в Тамбове.YS писал(а):Как минимум, период входного сигнала можно вычислить гораздо проще.Ну, например, отлавливать компаратором переход через ноль и по таймеру определять.
Что касаемо данной задачи, то чтоб получать только период, здесь 12-битка нужна как зайцу велосипед. И 15000 отсчетов в реалтайме -- разве что спектрограмму шума корабля для определения "свой-чужой" и затем его торпедой в автоматическом режиме. Не буду продолжать -- а вдруг я прмо в точку ?
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Э-э-э... Неужто там такие суровые помехи, что может появиться еще один переход через ноль? Ну ОК, компаратор можно включить как триггер Шмитта с некоторым гистерезисом (вывести сигнал с него наружу программно).мерить таким макаром , к примеру, период тока в сети, в которой бездна нелинейных нагрузок и переходных процессов -- можно получить цену на пеньку в Тамбове.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Фи. Зачем так грубо? Есть люди, до сих пор Спектрумы пользующие - ностальгия, однако. И наработок на AVR - до черта на любую тему. Вот 2 весомых причины. Да и попроще они - 3-я...menzoda писал(а):Какого черта весь форум дрочит на эти никчемные атмелы?!
А есть еще STM32F100C4T6, за $1.2, уделывающая напрочь ATmega8, кроме 1 пункта - нет DIP, только LQFP48 с шагом ног 0.5 мм (т.е. фоторезист или очень хорошо обкатанный ЛУТ). Ну и питание 3.6 максимум (хотя это в наше время уже не недостаток).
Посмотри, сколько STM32F103XXXX стоят - тоже веселенький ситчик, с флешем до 1 Гб... STMщики ломят со страшной силой
Человек - это звучит гордо, а обезьяна - объективно...
- Сообщения: 535
- Зарегистрирован: Вт авг 28, 2012 22:21:33
Про две весомых причины согласен, а вот насчет сложности - нет. Просто у людей засело в голове, что раз АРМ - значит сложно, куда мне до него. В действительности же они во многом более логичные и простые.
Уже пару месяцев по вечерам про STM32 читаю. Штука отличная. Но реально значительно более сложная чем AVR. Там базовой документации раз в 10 больше, чем про AVR. Естественно и возможностей сильно больше. Как начнешь про чтонить читать, так и теряешься.menzoda писал(а):Про две весомых причины согласен, а вот насчет сложности - нет. Просто у людей засело в голове, что раз АРМ - значит сложно, куда мне до него. В действительности же они во многом более логичные и простые.
А про пайку ARM - можно ведь купить и STM32F102CBT6, который в корпусе LQFP-48 как Atmega8, но дешевле(!) и лучше практически по всем параметрам.
Вот я довольно начинающий радиолюбитель. Но мне быстрее и проще запаять LQFP-48, чем один DIP о 16-ти ножках. С SMD компонентами вообще сильно меньше мороки, чем с DIP при пайке.SergeBS писал(а):
А есть еще STM32F100C4T6, за $1.2, уделывающая напрочь ATmega8, кроме 1 пункта - нет DIP, только LQFP48 с шагом ног 0.5 мм (т.е. фоторезист или очень хорошо обкатанный ЛУТ).
Вот последняя схемка, правда все еще для Atmega8, потому как больно простотой понравилась конструкция
Как раз основная причина - ужасная сложность. Я сейчас как раз их осваиваю, делаю свою первую конструкцию на STM32F100C4. Один вид проекта наводит ужас - куча каких-то левых подключенных файлов, не то что с AVR, подключили iom8.h - и всё. Чтобы задействовать таймер или еще что-то, нужно 2 дня читать, а потом писать страницу кода инициализации. Профессиональным программистам, может быть, это привычно, но для радиолюбителей на грани возможного. Уже полмозга сломал, живу на второй половине.menzoda писал(а):Про две весомых причины согласен, а вот насчет сложности - нет.
На то и документация - чтобы ее читать. У каждого по-разному, кому 2 часа, кому 2 дня. ИМХО это переходный процесс, когда к стилю изложения информации в документации привыкаешь. На первых порах при переходе с 8 бит на 32 бита - забываешь, что регистр 32-битный, что настроек в 4 раза больше... поначалу это вызывает чувство отторжения)))
ну и для быстрого старта есть стандартные библиотеки периферии (правда в них тоже без поллитры не разберешься, если до этого с такими библиотеками не работал)
ну и для быстрого старта есть стандартные библиотеки периферии (правда в них тоже без поллитры не разберешься, если до этого с такими библиотеками не работал)
Ставим плюсы: )
- Сообщения: 310
- Зарегистрирован: Пт дек 17, 2010 14:41:25
Леонид Иванович, есть неплохая программка MicroXplorer от того же ST. Она умеет генерировать код инициализации по конфигурации портов. Хорошая штуковина для начала изучения.
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
... совсем не обязательно, если "забить" на Standard Peripherals Library.Леонид Иванович писал(а):Один вид проекта наводит ужас - куча каких-то левых подключенных файлов,
Код: Выделить всё
#define STM32F10X_MD_VL
#include <stm32f10x.h>


