Зависает STM32F103C8

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Аватара пользователя
Klepko
Открыл глаза
Сообщения: 54
Зарегистрирован: Пт апр 25, 2008 03:44:41
Откуда: Воронеж

Зависает STM32F103C8

Сообщение Klepko »

Всем доброго вчера. В общем хочу сделать что то на подобие такой штуковины https://www.youtube.com/watch?v=f8gHmxvx-yo. Использую плату на STM32F103C8 (фото во вложении), управляю шимом двигателем из китайских игрушек через полевик, кнопками меняю заполнение от 0 до 99%. Питание двигателей и STM32 общее 5 вольт. Во время старта или на максимальных оборотах (заполнение 70% и выше) STM32 зависает, не реагирует на кнопки, иногда даже шим отрубается и двигатель вырубается, помогает либо ресет либо передергивание питания. (при работе в холостую без двигателя все работает нормально) Соответственно вопрос почему зависает STM32 и как с этим бороться?
Вложения
arduino11-3.png
Управление двигателем
(18.97 КБ) 788 скачиваний
5147902849.jpg
Отладочная плата
(116.6 КБ) 680 скачиваний
Всех убить! Всё отобрать!
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Зависает STM32F103C8

Сообщение Мурик »

Может помехи по питанию?
Мурато Мяуконни
Прорезались зубы
Сообщения: 203
Зарегистрирован: Сб ноя 19, 2016 21:05:48

Re: Зависает STM32F103C8

Сообщение Мурато Мяуконни »

Обычное явление - индуктивные выбросы. Лечится конденсаторами и раздельными ветвями питания. Приведите подробнее схему подключения
Подпись убрал вместе с автором. aen
Аватара пользователя
AlanDrakes
Прорезались зубы
Сообщения: 236
Зарегистрирован: Пн июл 04, 2016 16:51:22
Откуда: Россия, Омск

Re: Зависает STM32F103C8

Сообщение AlanDrakes »

Я бы так же рекомендовал снизить питание STM32 до уровня 3.3~3.6V. Эти контроллеры не очень любят питаться слишком высоким напряжением - тоже могут зависать или сгорать при этом.
Иногда с очень интересным поведением.

Ну и разделение линий питания - хороший совет.
Аватара пользователя
KT315B
Сверлит текстолит когтями
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения
Контактная информация:

Re: Зависает STM32F103C8

Сообщение KT315B »

И развязку поставить в виде дросселей и конденсаторов 100нФ. И по 100нФ на каждой ноге питания должен быть, максимально к выводу МК.
R2AIV 73!
Аватара пользователя
afz
Опытный кот
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Re: Зависает STM32F103C8

Сообщение afz »

AlanDrakes писал(а):Я бы так же рекомендовал снизить питание STM32 до уровня 3.3~3.6V. Эти контроллеры не очень любят питаться слишком высоким напряжением - тоже могут зависать или сгорать при этом.
Там на плате встроенный стабилизатор 3.3В - какой-то 1117.
Klepko писал(а):Соответственно вопрос почему зависает STM32 и как с этим бороться?
Явные помехи по питанию. И скорее всего - из-за падения напряжения на проводах. Попробуй прицепить электролит несколько тыс. мкф, по кратчайшему пути, без проводов, одним концом на исток полевика, вторым (плюсом) на то место, где подключены двигатель (или провод к двигателю), провод от +5В и катод диода. То есть параллельно источнику +5В, но после проводов от источника до твоей схемы. С этого же электролита, отдельными проводами, подай питание на плату с МК - землю напрямую, +5 - через какой-нибудь дросселёк в сотню-другую мкГн, или через резистор 10 Ом. И убедись, что твои 5В не проседают, а то мелкие источники типа зарядников от сотки под нагрузкой просядут на счет "раз"!..
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Аватара пользователя
Andry_67
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пн дек 15, 2014 19:04:08
Откуда: г. Пермь

Re: Зависает STM32F103C8

Сообщение Andry_67 »

Совсем недавно словил висяк очень банальный способом. Сделал в программе цикл
for(x=0;x<=319;x++)
{
History[x]=0;
}
Никак не мог понять почему в этом месте виснет. Потом оказалось что переменная x объявлена как uint8.

Советую также в программу добавить банальный Blink, который работает от таймера внутри прерывания этого таймера. Так будет сразу видно повис процессор или остановка в программе.
Ответить

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