Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
 
dr_tyvsiy
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 231
#1

Чувствительность к внешним воздействиям. - ARM, Cortex, STM32 микроконтроллер

02.07.2012, 01:37. Просмотров 15893. Ответов 26
Метки нет (Все метки)

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

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

Вторая, кажется, получилась чуть более удачной. Прикосновения ей не страшны, а вот изменение состояний GPIO ножек с небольшой вероятностью рушат USB обмен. Сам микроконтроллер не виснет. После перезапуска программы на компьютере USB продолжает работать нормально.

Прикладываю видео эффекта. На нём плата с подключенным джойстиком. 4 ножки GPIO подтянуты 33кОм к земле. При замыкании джойстика на них подаётся питание. На свякий случай всё это не напрямую к GPIO, а через резистор в 1.5кОм, чтобы, если ножки сконфигурированы на выход, ничего не сжечь. На свякий случай в месте отвода от платы питания и земли и в месте прихода оных на джойстик повесил по 10мкФ конденсаторы. Кажется, это немного улучшает, но всё равно не помогает совсем.

http://youtu.be/MUgMbuNCZNw
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2012, 01:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Чувствительность к внешним воздействиям. (ARM, Cortex, STM32 микроконтроллер):

Емкостной сенсор касания чувствительность.
Заделал тут платку с stm32f0 по рекомендациям и даташитам ST для определения...

Atmega48. Не получается работать с внешним прерыванием
Не получается работать с внешним прерыванием по спаду на int1. Разбираясь по...

Подключение контроллера с USB и внешним питанием
Добрый день! Вопрос касается STM32F10x, но тема скорее "железячная", поэтому...

Разобратся с внешним прирыванием Int0 в микроконтролере MCS-51
Добрый день, проблема такая, пытаюсь розобратся с прерываниями, но что-то...

Требования по устойчивости к внешним воздействиям для RGB контроллера светодиодной ленты
Не могу никак найти требования по устойчивости к внешним воздействиям и...

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

26
dikor
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 918
03.07.2012, 17:19 #21
Цитата Сообщение от dr_tyvsiy
У Вас явно есть опыт разработки USB под STM32.
Увы, тольк VCP. Я немного допилил польскую библиотеку. Стандартная, которая идёт в примерах, мне не очень нравится.
До abstract ctoss у меня никак не дойдут руки, а HID, как по мне, лишен смысла почти полностью.
0
dr_tyvsiy
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 231
03.07.2012, 18:10 #22
Цитата Сообщение от Yomyshor
пункты не противоречат друг другу,

в LC фильтрах ёмкость емкость конденсатора несколько больше чем 0,3 uF, десятки микрофарад там нужны.

И вот ещё, каким именно образом вы узнаете, что все кроме SWD и USB продолжает работать, если SWD отваливается? Мне кажется происходит следующее, при касании тестером в железе проходят пока что непонятные процессы, что приводит к сбою генератора, охранная цепь оперативно это замечает и включает внутренний генератор. Вот и весь механизм.
1) Смотрите: в пункте 2: "рекомендуется земляной полигон под корпусом МК соединённый в одной точке с остальной схемой", - а в пункте 4: "фильтрующие конденсаторы (DeCaps) для цепей питания должны располагаться на пути силовых токов". Плюс картинка с правильным и неправильным. По-моему, правильная картинка из пункта 4 исключает соединение земляного полигона в одной точке, разве нет? Еднственное, что мне приходит в голову - это делать отводы от внутрненнего полигона через углы микроконтроллреа и там соединять с конденсатором, а от него уже снаружи к ножкам. Надо так делать, изнутри не соединять? И, судя по картинке из пункта 4, соединение идёт откуда-то снаружи.

2) Я думал, что для LC фильтра, наверное, нужное значение C зависит от внутреннего сопротивления L? А именно C > 4*L/R^2?

3) Ну я это узнаю так. В случае SWD gdb перестаёт ходить по строчкам программы, но программа в микроконтроллере продолжает работать нормально: входы/выходы показывают, LCD график рисует. Т.е. всё как всегда и с той же скоростью, но без SWD. Поэтому мне кажется, что дело не в генераторе.

Если это касается USB, то пропадает, видимо, один пакет и только в сторону компьютера. Выглядит это так, что я в ответ на посылку ожидаю 2 байта, а они не приходят. Если спросить ещё раз, то всё ОК. Т.е. соединение не теряется. Но, как я уже писал, после модификаций c USB проблема (на всех компьютерах) исчезла почему-то.
0
Yomyshor
0 / 0 / 0
Регистрация: 10.06.2012
Сообщений: 71
03.07.2012, 19:15 #23
Четвёртая снизу картинка поясняет, как можно выполнить оба пункта. Насчёт конденсатора на в LC фильтре вы полностью правы, однако подводить питание тонким проводом нельзя. Кроме того что он тонкий у вас ещё и не звезда получилась, а последовательная разводка.
0
dr_tyvsiy
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 231
03.07.2012, 23:39 #24
Цитата Сообщение от Yomyshor
Четвёртая снизу картинка поясняет, как можно выполнить оба пункта. Насчёт конденсатора на в LC фильтре вы полностью правы, однако подводить питание тонким проводом нельзя. Кроме того что он тонкий у вас ещё и не звезда получилась, а последовательная разводка.
Спасибо за пояснение! Я понял - нужно подвести землю через угол, где нет ножек, правильно? А оттуда подводить к ножкам.

А по картинке я вот что пока не понимаю:


<Изображение удалено>


<Изображение удалено>

Я обвёл зелёным. На верхней картинке конденсаторы "на пути" подвода энергии. Т.е. ток сначала встречает конденсатор, а потом ножки микроконтроллера. Я так понимаю, это имеется в виду в пункте 4. Но, с другой стороны, как показано на нижней картинке, земля выходит из внутреннего полигона и через ножку идёт к фильтрующему конденсатору. Т.е. наоборот: сначала к ножке, а потом к конденсатору. Я вот это имел в виду, когда говорил, что по-моему, пункты 2 и 4 не согласуются друг с другом.

Так как должно быть, как на верхней (пункт 2 статьи) или как на нижней (пункт 4 статьи)? Я вообще думал, что если они совсем близко, то это не должно иметь большого значения. Или нет?
0
dr_tyvsiy
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 231
03.07.2012, 23:48 #25
Цитата Сообщение от dikor
Я немного допилил польскую библиотеку. Стандартная, которая идёт в примерах, мне не очень нравится.
Не могли бы Вы поделиться ссылкой? Сам никак не могу найти, все ссылки только на st.som вылезают. Очень хотелось бы на альтернативный вариант посмотреть.
0
Yomyshor
0 / 0 / 0
Регистрация: 10.06.2012
Сообщений: 71
03.07.2012, 23:50 #26
Цитата Сообщение от dr_tyvsiy
Спасибо за пояснение! Я понял - нужно подвести землю через угол, где нет ножек, правильно? А оттуда подводить к ножкам.
Именно, причём чем толще проводник тем лучше. Насчёт расположения конденсаторов, я имел ввиду не этот пример, я имел ввиду вот это


<Изображение удалено>
0
dr_tyvsiy
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 231
04.07.2012, 18:17 #27
Цитата Сообщение от Yomyshor
Насчёт расположения конденсаторов, я имел ввиду не этот пример, я имел ввиду вот это
Ну для переходных отверстий под микроконтроллером ЛУТ-ом......в общем, я бы даже пытаться не стал :) Но смысл понял.
0
04.07.2012, 18:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2012, 18:17
Привет! Вот еще темы с решениями:

Чувствительность акселерометра
Всем доброго дня, возможно кто то сталкивался с такой проблемой как...

Чувствительность мышки
Пользовался мышкой около года и решил установить программу через которую можно...

Чувствительность мультиметров
Имеется необходимость, чтобы мультиметр смог показать значение постоянного тока...

Чувствительность к регистру
if (vaza == &quot;ваза&quot;) { } Как сделать, что бы слово в &quot;&quot; было не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru