Страница 1 из 1

Зависает STM32F103C8

Добавлено: Вс ноя 27, 2016 21:20:59
Klepko
Всем доброго вчера. В общем хочу сделать что то на подобие такой штуковины https://www.youtube.com/watch?v=f8gHmxvx-yo. Использую плату на STM32F103C8 (фото во вложении), управляю шимом двигателем из китайских игрушек через полевик, кнопками меняю заполнение от 0 до 99%. Питание двигателей и STM32 общее 5 вольт. Во время старта или на максимальных оборотах (заполнение 70% и выше) STM32 зависает, не реагирует на кнопки, иногда даже шим отрубается и двигатель вырубается, помогает либо ресет либо передергивание питания. (при работе в холостую без двигателя все работает нормально) Соответственно вопрос почему зависает STM32 и как с этим бороться?

Re: Зависает STM32F103C8

Добавлено: Вс ноя 27, 2016 22:56:21
Мурик
Может помехи по питанию?

Re: Зависает STM32F103C8

Добавлено: Пн ноя 28, 2016 10:15:16
Мурато Мяуконни
Обычное явление - индуктивные выбросы. Лечится конденсаторами и раздельными ветвями питания. Приведите подробнее схему подключения

Re: Зависает STM32F103C8

Добавлено: Вс дек 04, 2016 06:33:13
AlanDrakes
Я бы так же рекомендовал снизить питание STM32 до уровня 3.3~3.6V. Эти контроллеры не очень любят питаться слишком высоким напряжением - тоже могут зависать или сгорать при этом.
Иногда с очень интересным поведением.

Ну и разделение линий питания - хороший совет.

Re: Зависает STM32F103C8

Добавлено: Вт дек 13, 2016 11:46:45
KT315B
И развязку поставить в виде дросселей и конденсаторов 100нФ. И по 100нФ на каждой ноге питания должен быть, максимально к выводу МК.

Re: Зависает STM32F103C8

Добавлено: Вт дек 13, 2016 16:49:28
afz
AlanDrakes писал(а):Я бы так же рекомендовал снизить питание STM32 до уровня 3.3~3.6V. Эти контроллеры не очень любят питаться слишком высоким напряжением - тоже могут зависать или сгорать при этом.
Там на плате встроенный стабилизатор 3.3В - какой-то 1117.
Klepko писал(а):Соответственно вопрос почему зависает STM32 и как с этим бороться?
Явные помехи по питанию. И скорее всего - из-за падения напряжения на проводах. Попробуй прицепить электролит несколько тыс. мкф, по кратчайшему пути, без проводов, одним концом на исток полевика, вторым (плюсом) на то место, где подключены двигатель (или провод к двигателю), провод от +5В и катод диода. То есть параллельно источнику +5В, но после проводов от источника до твоей схемы. С этого же электролита, отдельными проводами, подай питание на плату с МК - землю напрямую, +5 - через какой-нибудь дросселёк в сотню-другую мкГн, или через резистор 10 Ом. И убедись, что твои 5В не проседают, а то мелкие источники типа зарядников от сотки под нагрузкой просядут на счет "раз"!..

Re: Зависает STM32F103C8

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

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