Создание собственной системы стабилизации

oleg70

Подскажите, кто знает, зачем у STM несколько питающих (VDD) и “земляных” ног, c каждой стороны ?
На AVR-e делал запитку с любых удобных, но не уверен что прав… Не могу нигде найти инфу по этому поводу.
(плату почти развел, а тут затык…)

SergDoc

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

Razek
oleg70:

STM несколько питающих (VDD) и “земляных” ног, c каждой стороны

Да и на каждую пару желательно вешать кондеи

mahowik
rual:

Вию ещё долго на АВРе телепаться.

так и будет… хотя если учесть, сколько клонов вокруг (в том числе и на стм32), то вий уже давно переехал 😃
кстати, ради ознакомления, (опять 😃) советую посмотреть на проект от ziss_dm (от вия там давно ничего не осталось, еали кого пугает сам вий 😃)… там HAL реализован для AfroFlight32, STM32f3Discovery и ардуинки

rual:

Чем лучше СТМ:

читал пару обзорных статей по стм32… тут споров нет…

rual:

Мне 3 платы Ф3 обошлись с доставкой

тоже самое по сути… что то более 20 енотов за штуку вышло…

rual:

У меня времени на работе больше, чем дома

иногда так же, но начальник за спиной сидит и каждый раз когда открываю Notepad++, пописать че нить, то на стреме постоянно ))

rual:

1-летает

кстати, ты давно видео не выкладывал на ф3… если не пропустил, то было только видео первого подлета на ф3 и тогда коптер по горизонту вроде как гулял… сейчас стабильно все?

Razek:

Вообще это ты поделись тайными знаниями где ты время находишь на релизы собственных бранчей вия =)

вот на них пока все время и уходит, как “урванное” рабочее, так и свободное домашнее + еще дебильный саппорт дофига времени тянет… а по сути от “монетизации” хобби одни убытки получились, как моральные, так и материальные… писал в RC1 ветке как-то…

mahowik
DVE:

отладка и заливка одним кликом, IDE удобная, все гораздо приятнее получается

чет я уже потерялся во всех этих IDE… 😃
У кого работает/настроен полноценный дебаггер под stm32f3discovery/stm32f4discovery? т.е. под какую IDE и какой бубен для этого надо? 😃

rual
mahowik:

кстати, ты давно видео не выкладывал на ф3… если не пропустил, то было только видео первого подлета на ф3 и тогда коптер по горизонту вроде как гулял… сейчас стабильно все?

Да показать особо нечего, переделал корректор ИНС как у Тома Пикке, code.google.com/p/…/ahrs_simple_quaternion.c
неплохой алгоритм, вся математика алгебраически оптимизирована, можешь на АВР попробовать. Нужно подбирать коэффициенты. Счас горизонт лучше, но из-за наличия интегральной составляющей присутствует медленная раскачка.
Видио с отскоком от стен не делал, на работе в узком коридоре (когда все датчики “держаться” за стены) пролетел нормально, но снять было некому, пульт отпустить боялся:) а дома коридор широкий, после “отскока” от одной стены успевает разогнаться и не успевает затормозить у другой, поцарапал стены, поругался с женой:) Сделал вывод что нужен датчик скорости для граничения оной в межстенном пространстве. Гдето видел OpticFlow за 50 баксов и не могу вспонить где:( Вобщем кризис, пока голова не работает, работаю руками -собрал леталку для улицы, теперь у меня две штуки на Ф3. Буду ГПС прикручивать, нашел математику нужно проверять.

Geniok
mahowik:

серьезно, вопрос всем, где вы берете время? есть возможность прямо на работе ковыряться? (хехе… сейчас загадим Сергею темку! 😈)

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

DVE
mahowik:

У кого работает/настроен полноценный дебаггер под stm32f3discovery/stm32f4discovery? т.е. под какую IDE и какой бубен для этого надо? 😃

Coocox работает с f4 из коробки, ничего допиливать не надо. С f3 не пробовал.

Geniok
oleg70:

Подскажите, кто знает, зачем у STM несколько питающих (VDD) и “земляных” ног, c каждой стороны ?
На AVR-e делал запитку с любых удобных, но не уверен что прав… Не могу нигде найти инфу по этому поводу.
(плату почти развел, а тут затык…)

Есть небольшая статья по этому поводу вот тут: easyelectronics.ru/podklyuchenie-mikrokontrollera-…

Там правда АВР, но сути особо не меняет.

mahowik:

чет я уже потерялся во всех этих IDE… 😃
У кого работает/настроен полноценный дебаггер под stm32f3discovery/stm32f4discovery? т.е. под какую IDE и какой бубен для этого надо? 😃

Нравится IAR в этом плане. Как писалка кода не очень, в основном использую или Notepad++ или VisualStudio+VisualAssist. Зато как отладчик полностью устраивает.

Все работает из коробки, новый проект создается за 2-3 минуты.

Просьба будт ко всем, может у кого завалялась библиотека для мат вычислений на АРМ? Что-то типа arm_math.h , arm_math.c
Желательно для камня Ф4, но если для других есть, отказываться не буду…

Заранее спасибо!

SergDoc
Geniok:

Что-то типа arm_math.h , arm_math.c
Желательно для камня Ф4, но если для других есть, отказываться не буду…

у меня только wirish_math из maple выдрано…
в библиотеках CMSIS точно есть arm_math.h если что тоже есть…

Народ мне тут на ухо нашептали, грамотные программеры меня поправя если что не так, по прерываниям, первое что надо сделать в прерывании - это запретить все прерывания, какие бы там они не были по иерархии - пускай ждут, второе прерывания должны быть только на те действия, которые не требуют отлагательств, ну типа мы падаем- пошли все нафиг со своими командами с радио, а прерывания типа пришли данные с акселя и срочно выполнять - то думаю ненадо - это и в “глобальном” модуле отследить один бит можно, чем тратить кучу тактов на выполнение прерывания, а потом ещё кучу тактов на возвращение?

arm_math.rar

mahowik
Geniok:

Просьба будт ко всем, может у кого завалялась библиотека для мат вычислений на АРМ? Что-то типа arm_math.h , arm_math.c
Желательно для камня Ф4, но если для других есть, отказываться не буду…

в этом архивчике с экзамплами www.st.com/web/en/catalog/tools/PF257904

или вот code.google.com/p/mwc-ng/source/…/arm_math.h

RaJa
mahowik:

чет я уже потерялся во всех этих IDE… 😃
У кого работает/настроен полноценный дебаггер под stm32f3discovery/stm32f4discovery? т.е. под какую IDE и какой бубен для этого надо? 😃

У меня вроде все работает по CooCox. Дебаггеров парочка - встроенный ST-LinkV2 и CooLinkEx

mahowik
RaJa:

У меня вроде все работает по CooCox

stm32f3discovery или stm32f4discovery?
CooCox поддерживает f4 из коробки (уже подтвердили выше)… если у вас получилось с stm32f3discovery, то расскажите плз. как… у меня не пашет…

Geniok
SergDoc:

у меня только wirish_math из maple выдрано…
в библиотеках CMSIS точно есть arm_math.h если что тоже есть…

Народ мне тут на ухо нашептали, грамотные программеры меня поправя если что не так, по прерываниям, первое что надо сделать в прерывании - это запретить все прерывания, какие бы там они не были по иерархии - пускай ждут, второе прерывания должны быть только на те действия, которые не требуют отлагательств, ну типа мы падаем- пошли все нафиг со своими командами с радио, а прерывания типа пришли данные с акселя и срочно выполнять - то думаю ненадо - это и в “глобальном” модуле отследить один бит можно, чем тратить кучу тактов на выполнение прерывания, а потом ещё кучу тактов на возвращение?

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

SergDoc
Geniok:

в прерывании просто ставим флаг, что новые данные пришли.

войти в прерывание (потратить такты) изменить бит, выйти из прерывания (потратить такты)?

Geniok:

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

это я утрировано сказал…

Мне китайцы, что-то выслали на замену утеряных ИК датчиков, сегодня пойду забирать - посмотрю что…

Geniok
SergDoc:

войти в прерывание (потратить такты) изменить бит, выйти из прерывания (потратить такты)?

это я утрировано сказал…

Мне китайцы, что-то выслали на замену утеряных ИК датчиков, сегодня пойду забирать - посмотрю что…

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

Razek
rual:

нашел математику нужно проверять.

А поделитесь ссылкой на математику?

SergDoc

вот возмём простейший - ну да КУК - сидим курим в нопах, пока прерывания с радио не пришло, пришло - запустили основной цикл, а там и чтение гир и перерасчёт выходных шимов, вот чем нравятся аналоговые датчики - они всегда готовы…

если какое-либо прерывание выполняется, то надо обязательно запрещать остальные, придёт прерывание в прерывании, куда вернётся программа после? ей бабушка нашепчет? да билеберда получится, хорошо если в основной цикл, а скорей в прерывании и зациклится - шахид-коптер получится, камикадзе многороторный - только банзай кричать научить надо 😃

Geniok
SergDoc:

вот возмём простейший - ну да КУК - сидим курим в нопах, пока прерывания с радио не пришло, пришло - запустили основной цикл, а там и чтение гир и перерасчёт выходных шимов, вот чем нравятся аналоговые датчики - они всегда готовы…

если какое-либо прерывание выполняется, то надо обязательно запрещать остальные, придёт прерывание в прерывании, куда вернётся программа после? ей бабушка нашепчет? да билеберда получится, хорошо если в основной цикл, а скорей в прерывании и зациклится - шахид-коптер получится, камикадзе многороторный - только банзай кричать научить надо 😃

пока видишь в нопах, твой проц никакой полезной работы не делает. это не есть хорошо.
сидишь в прерывании, пришло другое?! если у пришедшего больший приоритет, ушел в него, вернулся после в старое. если меньший, будет стоять очереди, пока не закончится текущее.

SergDoc
Geniok:

вернулся после в старое

а там каша (как это? - срыв стека) и по кругу из прерывания в прерывание, неважно какой приоритет, если мы сидим в прерывании - никаких прерываний - пускай ждут, а вот ежели пришли два одновременно тогда да - пропускаем старшее - младшее подождёт!
на вас никогда аппарат не бросался? на меня несколько раз уже покушался 😦

Geniok
SergDoc:

а там каша (как это? - срыв стека) и по кругу из прерывания в прерывание, неважно какой приоритет, если мы сидим в прерывании - никаких прерываний - пускай ждут, а вот ежели пришли два одновременно тогда да - пропускаем старшее - младшее подождёт!
на вас никогда аппарат не бросался? на меня несколько раз уже покушался 😦

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