STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: STM32 новичку в ARM что к чему

Сообщение md5sum »

urry писал(а):ну схему можно переделать вот так (продолжим практику рисования в паинте ) :)

Мощности резисторов еще надо указать, а то потом будут вопросы типа "откуда дым идет" :kill:
— Не говорите мне что делать и я не скажу куда Вам идти...
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: STM32 новичку в ARM что к чему

Сообщение menzoda »

Как-то нехорошо диалог состоялся. Автор сего устройства вроде ничего такого преступного не говорил, а вы сразу на него накинулись. Он давай на вас огрызаться, а вы и рады: взялись за него с удвоенной силой. Вы со стороны взгляните лучше: пришел новичок, сказал, что не знает алгоритмов и показал нехорошую схемотехнику.

Ну и что такого? Чего вы там ему начали кричать про пробелы в образовании в довольно грубой форме? Среди всех ресурсов, которые я посещаю, на этом, число орфографических ошибок просто зашкаливает. Такое ощущение, что пишут опустившиеся олигофрены с двумя классами образования, а ведь технический (!) форум. У меня глаза кровоточат, когда я это читаю. Еще есть особи, которые в двадцатый раз спрашивают, как обрабатывать кнопку. Чего вы на них всех не орете, а?

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

Re: STM32 новичку в ARM что к чему

Сообщение HHIMERA »

Патамушта вся эта хрень-ботва с STM32 ничего общего не имеет...
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
SergeBS
Вымогатель припоя
Сообщения: 683
Зарегистрирован: Пт апр 11, 2008 11:24:53
Откуда: Владимир

Re: STM32 новичку в ARM что к чему

Сообщение SergeBS »

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


Вот поэтому:
stemplar писал(а):Вот не стоит умничать, на работе не очень есть когда курить поисковик, а ждать до вечера любопытство заест.

Оригинально. Если вдуматься, что фактически написано.

stemplar писал(а):Не люблю оффтоп, но Вы все такие интересные..чего стыдиться?
У меня работа даже рядом не касается цифровой электроники, это обычное хобби, которое только вышло из конфетно-букетного, ну в смысле диодо-мигательного периода. Или все сразу с пеленок постигли феншуй?
Про время на работе не будем. Написать две строки на форуме - минута, не отвлекающая от основного процесса. Курить даташиты - это осознанно надо отвлекаться.

Тоже весьма интересное заявление.

И т.п.

Т.е. если коротко: "Это ХОББИ у меня такое - я нифига не знаю, знать не желаю, и нисколько этого не стыжусь. А кто за меня придумать не хочет как делать, к даташитам и в школу отсылает - те ТРОЛЛИ! Ненормальные!".
Кривой скан схемы - демонстрирует отношение к тем, от кого ожидается решение.
Человек - это звучит гордо, а обезьяна - объективно...
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32 новичку в ARM что к чему

Сообщение dosikus »

menzoda писал(а):Вы со стороны взгляните лучше: пришел новичок, сказал, что не знает алгоритмов и показал нехорошую схемотехнику.


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

И естественно результат сего "кулибинства" весьма предсказуем.

Что на это скажете , толерантный вы наш ?



Нарушение Правил форума п. 2.4
aen
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: STM32 новичку в ARM что к чему

Сообщение menzoda »

Да тут пол-форума таких! Если не больше. Конечно хочется написать тираду, какой он плохой, сякой, не учился, не знает. И я очень часто хочу такое же написать, когда вижу те же орфографические ошибки или еще что-то. Но я понимаю, что если начать каждому такое писать, то полезная информация на форуме просто потонет в волнах этого кала. Так что лучше или забить на свою гордость и помочь негодяю ( :)) ), или написать короткое емкое исконно русское пошел на хуй, или просто молчать, что я чаще всего и делаю.
Аватара пользователя
aen
Модератор
Сообщения: 11940
Зарегистрирован: Пт апр 28, 2006 15:26:07
Откуда: Россия.
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение aen »

Я конечно не спец в МК, но и мне видно, что вы тут развели, не лезет ни "в какие ворота"
Советую всем присутствующим в теме прочитать правила форума и особо обратить внимание на п. 2.4 и хотя выше написанное сообщение тоже подпадает под это, но я полностью с ним согласен.
Желающие отвечать по сути вопроса - отвечают.
Кто считает, что вопрос глупый или не желают отвечать, то проходят мимо.

Особо "смешно" наблюдать когда в некоторых темах разговаривают сами с собой заведя клоны своих учетных записей и под одним клоном пишут, а под другим "поддакивают" сами себе.
Поэтому в соответствии с правилами форума я сделаю предупреждения нарушителям п. 2.4 Правил форума.
Если правила почитать, то там написано:
п 2.4 - Предупреждение. В случае повторного нарушения - повторное предупреждение или бан на усмотрение модератора.
Держите по первому предупреждению, а желающие ждать продолжения - ждите, я на данную тему подписался, поэтому думаю, что особой задержки с моей стороны не возникнет.
stemplar
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вт ноя 27, 2012 17:50:35

Re: STM32 новичку в ARM что к чему

Сообщение stemplar »

Стоп стоп стоп.
Приятно что тема ожила конструктивно, но не читайте между строк.
Давайте по-порядку. Всех квотить не буду, просто по пунктам:

Мост питает схему в рабочем варианте. Потребитель - МК (Все VDD заведены с блокировочными 0.1 мкф на землю возле корпуса). Почему в рабочем, потому как в режиме отладки все кабеля отключены и питание от STLINK.

Я не просто попытался уйти от прерываний, я вообще без таймеров хотел реализовать. Вопрос сугубо в методике подхода - а чем плох мой вариант брать мгновенное значение из регистра АЦП, только добавить счет 64\128 выборок? Что-то вида

Код: Выделить всё

i=0;
while (i<65)
{
i++;
sum=sum+volt;
}
sum=sum\64;

Где volt - мгновенное значение из регистра АЦП, а sum соотв. итоговое среднее значение (ну или среднеквадратичное, с соответствующей модификацией формулы).
Я получу вроде-как то же самое среднее или среднеквадратичное значение, к тому же не придется лезть в DMA. Не хотелось бы микроскопом гвозди забивать.

Схема работоспособна до этапа измерения переменного напряжения. (постоянку меряет корректно, привет теоретикам с комментами"все пропало, тут ничего не работает"). Мост включен правильно, 20 мА там нет, индикация динамическая, потребление всей схемы ~10 мА +\- . И к подстроечнику не лезьте, схема рассчитана, делитель составляет резистор после диода и сам подстроечник. Рассчитано на 3В на выходе делителя при 260 входных. Да, хана схеме в случае обрыва подстроечника - осознанное пренебрежение по ТТХ резистора. И мощностя резисторов по питанию не трогайте. Там тоже все в ажуре. Ничего не дымит и не горит. Схема РАБОТАЕТ в режиме измерения постоянного напряжения, как я уже писал ранее - переменный резистор на опорное и замер абсолютно корректный. Проблема с сетевым.

Резюмируя - вопрос у меня все же по STM,а не по реализации в железе (с железом как-нибудь сам разберусь, но про потенциал относительно земли после диода спасибо):
В чем минус указанного выше расчета из мгновенных значений, не влезая в таймеры и прерывания?
Спасибо.
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: STM32 новичку в ARM что к чему

Сообщение menzoda »

С таймерами ты можешь четко контролировать периодичность выборки мгновенного значения. Скажем, четко 256 раз в секунду (то есть, каждую 1/256 секунду), не более и не менее. Если использовать цикл, как у тебя, то уже не получится гарантированно поддерживать это значение: тебе могут мешать другие прерывания. Но конкретно в твоей имеющейся ситуации это не важно, у тебя вроде других прерываний нету, устройство выполняет одну простую функцию, так что можешь оставить как есть. Разве что поиграться с количеством выборок, да поставить задержку между выборками (какой-нибудь пустой цикл считающий до N), для того чтобы захватить побольше периодов измеряемого сигнала.

Изображение

Чем больше интервал времени (больше захватишь периодов) - тем точнее результат, но тем медленнее измерения.

Это все самые простые способы на пальцах. Есть и другие.
stemplar
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вт ноя 27, 2012 17:50:35

Re: STM32 новичку в ARM что к чему

Сообщение stemplar »

menzoda писал(а):Чем больше интервал времени (больше захватишь периодов) - тем точнее результат, но тем медленнее измерения.


Ну т.е. с учетом того, что прецизионной точности мне ненужно даже близко, стоит попробовать считать через цикл.
Спасибо! Доходчиво и кратко. Как будет возможность, поиграюсь с количеством выборок. На скорость наврят сильно влиять будет, 100-200 отсчетов на 8МГц скорее всего не очень заметно будет.
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: STM32 новичку в ARM что к чему

Сообщение menzoda »

stemplar писал(а):Ну т.е. с учетом того, что прецизионной точности мне ненужно даже близко, стоит попробовать считать через цикл.

Я бы не был так уверен. В идеале, при использовании такого способа измерения расстояние между выборками должно стремиться к нулю (они делаются максимально часто), а интервал на котором эти выборки суммируются и усредняются должен стремиться к бесконечности. Если есть возможность следовать этим правилам, то им нужно следовать. Сейчас накидаю пару картинок для наглядности.
Аватара пользователя
SergeBS
Вымогатель припоя
Сообщения: 683
Зарегистрирован: Пт апр 11, 2008 11:24:53
Откуда: Владимир

Re: STM32 новичку в ARM что к чему

Сообщение SergeBS »

stemplar писал(а):И к подстроечнику не лезьте, схема рассчитана

Угу. Легким движением руки показания становятся 0 при любом входном напряжении. Ну, привет, "практик", рассчитывай дальше в том же духе. На 1-2 недели секса хватит. "Мышка пробежала, хвостиком вильнула...". Или по-другому: "не доходит через голову - дойдет через руки и ноги".
Так и быть, подсказка: нарисуй график напряжения после измерительного диода. Подумай. Потом подумай на тему "зачем ставят подстроечные резисторы". И попробуй все-таки РАССЧИТАТЬ. А потом возвращайся в тему STM32. Намек: у всяких дешевых тестеров DT83X период измерения - десятые доли секунды. Т.е. МК не нужен для проверки расчета.
А вообще - есть готовый прибор с 2-мя клеммами (втыкается в 220В розетку), выводящий на ЖК-индикатор сетевое напряжение. Цена вопроса - 200 р. Гугль в помощь :).
Человек - это звучит гордо, а обезьяна - объективно...
stemplar
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вт ноя 27, 2012 17:50:35

Re: STM32 новичку в ARM что к чему

Сообщение stemplar »

menzoda писал(а):Я бы не был так уверен. В идеале, при использовании такого способа измерения расстояние между выборками должно стремиться к нулю (они делаются максимально часто), а интервал на котором эти выборки суммируются и усредняются должен стремиться к бесконечности. Если есть возможность следовать этим правилам, то им нужно следовать. Сейчас накидаю пару картинок для наглядности.

Как я понимаю, если количество отсчетов попадет в несколько полных периодов, то погрешность будет минимальная, а вот если менее периода - тогда может быть что угодно.

Изображение
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: STM32 новичку в ARM что к чему

Сообщение menzoda »

Сначала про частоту выборки (ее еще называют частотой сэмплирования или дискретизации). Представим, что у нас есть вот такой сигнал:
Изображение

Возьмем большую частоту дискретизации. Как видно, мы получили практически точную копию (красная пунктирная линия) реального сигнала. Соответственно среднеквадратичное значение будет тоже практически совпадать с настоящим.
Изображение

А теперь возьмем маленькую частоту дискретизации. В результате мы получим среднеквадратичное значение не реального сигнала, а какого-то непонятного (синий пунктир).
Изображение

Поэтому частота дискретизации должна быть как можно выше. Согласно теореме Котельникова, частота дискретизации должна быть в два раза выше частоты самой высокой гармоники исходного сигнала. Получается для измерения сетевого напряжения, частота которого 50 Гц нам нужно делать выборки не реже, чем 100 раз в секунду. Но на самом деле "в два раза" - это теоретическое значение. Обычно, частоту дискретизации делают больше раз в десять, потому что при меньших значениях результат будет заметно хуже.

Большая частота выборки необходима еще и потому, что у нас в розетке все таки не чистый синус 50 Гц, есть разные всплески и искажения, которые добавляют более высокие гармоники. Чтобы правильно измерять значение напряжения нужно брать частоту дискретизации побольше.

Что в твоем случае может помешать сделать эту частоту большой? Во-первых, это АЦП. Он не может бесконечно быстро оцифровывать значения и имеет конечную частоту дискретизации. В даташите можно уточнить это значение, но на самом деле для измерения сетевого напряжения это не важно: обычно АЦП имеют частоты дискретизации от 1000 выборок в секунду и выше, что намного больше 50 Гц.

Второе ограничение вытекает из выбранного алгоритма усреднения. Ты же накапливаешь сумму выборок за некоторый интервал времени, так? Допустим, мы делаем десять выборок в секунду, а АЦП у нас 12-битный, то есть выдает максимальное значение, равное 4095. В итоге, сумма выборок за секунду будет равна 40950 (в худшем случае). А теперь увеличим частоту выборки до 100 раз в секунду, сумма станет равна 409500. Оппачки! Если для хранения суммы мы использовали 16-битное беззнаковое целое, то произойдет переполнение. Чтобы избежать этого нужно использовать 32-битное целое, но его тоже может не хватить в некоторых случаях, и за этим нужно следить.

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

Теперь про интервал усреднения. Если он будет слишком мал по сравнению с основной гармоникой (которая 50 Гц), то мы получим ерунду. Я это уже говорил, но повторюсь еще раз с красивой картинкой:
Изображение

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

Чтобы этого избежать необходимо "захватить" как можно большее количество полных периодов. Тогда эти "остатки" не будут оказывать сильного влияния на результат. Конкретное значение подбирается эмпирическим путем. Я бы взял как минимум периодов десять.

Вот так вот.
stemplar
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вт ноя 27, 2012 17:50:35

Re: STM32 новичку в ARM что к чему

Сообщение stemplar »

[quote="menzoda"][/quote]
Ага, ну с количеством полных периодов я был прав.
А вот про переполнение точно упустил бы момент.

з.ы. за такую детальную помощь я бы уже даже с удовольствием выставил пива\йогурта, а то и вместе с помощью в их потреблении :) Да боюсь проживаю совсем не рядом.
К слову, вот она отличительная черта любимого постсоветского пространства. Контингент предпочитает прежде всего обосрать ближнего, ибо моя хата с краю. К счастью, есть и исключения.
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: STM32 новичку в ARM что к чему

Сообщение menzoda »

Ах да, если вычислять среднеквадратичное, то там будет накапливаться сумма квадратов, то есть шанс переполнения больше. Ну и подытоживая, я бы взял частоту выборки минимум герц 500, а интервал усреднения - хотя бы 200 миллисекунд (10 периодов 50Гц-сигнала), а если спешить некуда, то и полсекунды можно.
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение urry »

у вас 12 битовый результат - пр 128 выборках переполнение наступит =х
я сожалею, что ответил в теме
(с) Хотел как лучше, получилось, как всегда...
Кстати

Код: Выделить всё

[quote]
Особо "смешно" наблюдать когда в некоторых темах разговаривают сами с собой заведя
 клоны своих учетных записей и под одним клоном пишут, а под другим "поддакивают" сами себе.[/quote]

это к психологу, ну смешно... неужели решительно не дают ?
stemplar
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вт ноя 27, 2012 17:50:35

Re: STM32 новичку в ARM что к чему

Сообщение stemplar »

Хм, начну до 128.
Не будет результа - начну курить таймеры по Вашему примеру
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: STM32 новичку в ARM что к чему

Сообщение menzoda »

urry писал(а):пр 128 выборках переполнение наступит

stemplar писал(а):Хм, начну до 128.

Это если суммировать квадраты? У меня получилось 256 выборок. Или вы там про другое? Если про это, то в любом случае мало. Таймер кстати не поможет. Может использовать uint64, или его там нет?
stemplar
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вт ноя 27, 2012 17:50:35

Re: STM32 новичку в ARM что к чему

Сообщение stemplar »

menzoda писал(а): Может использовать uint64, или его там нет?

Есть.
Блин..хреново без компилятора и платы под руками..
Ответить

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