|
STM32F405 напряжение VBAT, обязательна ли подача или нет? |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 24)
|
Dec 8 2016, 11:57
|

Частый гость
 
Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050

|
Цитата(ViKo @ Dec 8 2016, 12:38)  AN4488 Прочитайте, и нам доложите. Читаю... Попутно увидел, что на RESET уже подтяжка есть. Тогда зачем на плате STM32F4discovery напаяна подтяжка в 100 кОм? Хоть в даташите стоит "not fitted", глянул - реально напаян!
--------------------
SPY vs. SPY Хорошо там, где нет ничего...
|
|
|
|
|
Dec 8 2016, 12:44
|

Частый гость
 
Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050

|
Разъясните пожалуйста назначение R38 и C38 в схеме что на картинке. Полагаю, что это - отчаянная попытка уменьшить дребезг контактов пользовательской кнопки. Можно ли как-нибудь упростить подключение кнопки так чтоб порт не накрылся? До этого работал с AVR-ками, в них я кнопку сажал с порта на землю и включал подтяжку.
--------------------
SPY vs. SPY Хорошо там, где нет ничего...
|
|
|
|
|
Dec 8 2016, 13:30
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Mister_DSP @ Dec 8 2016, 15:44)  Можно ли как-нибудь упростить подключение кнопки Все выкинуть, кнопку с порта на землю, подтяжку с кнопки к питанию (чтобы обеспечить через кнопку ток самоочищения контактов). QUOTE (Mister_DSP @ Dec 8 2016, 15:44)  так чтоб порт не накрылся? Смотря чем вы будете в кнопку тыкать. Если электрошокером - то чтобы порт не накрылся схему придется усложнить. Если пальцем - то достаточно сделать так, как я написал выше.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Dec 8 2016, 13:46
|

Частый гость
 
Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050

|
Цитата(Сергей Борщ @ Dec 8 2016, 14:30)  Все выкинуть, кнопку с порта на землю, подтяжку с кнопки к питанию (чтобы обеспечить через кнопку ток самоочищения контактов). Допустимо ли в этом случае резистор к питанию не ставить, если будет задействован подтягивающий резистор в контроллере? Анализ нажатия этой кнопки будет не раньше чем инициализация портов. Что такое ток самоочищения контактов? На кнопку буду жать пальцем через резиновую прокладку толщиной 1 мм (вытащил с пульта-брелка).
--------------------
SPY vs. SPY Хорошо там, где нет ничего...
|
|
|
|
|
Dec 8 2016, 14:08
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Mister_DSP @ Dec 8 2016, 16:46)  Допустимо ли в этом случае резистор к питанию не ставить, если будет задействован подтягивающий резистор в контроллере? Если вашей кнопке достаточно этого тока для пробоя оксидной пленки и возможные помехи будут недостаточно сильными, чтобы перетянуть встроенную подтяжку - да, можно. QUOTE (Mister_DSP @ Dec 8 2016, 16:46)  Что такое ток самоочищения контактов? Минимально допустимый коммутируемый ток, еще способный разрушить оксидную пленту на контактах. Примерно так. Тыц и тыц
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Dec 9 2016, 06:50
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(Сергей Борщ @ Dec 8 2016, 16:30)  Все выкинуть, кнопку с порта на землю, подтяжку с кнопки к питанию (чтобы обеспечить через кнопку ток самоочищения контактов). Если сделать как вы советуете, то управляться будет не высоким уровнем, а низким. Да и на STM32F4DISCOVERY кнопка стоит самая простая пластиковая, питание 3 вольта, там контакты не загрязняются. Какое там очищение контактов током? Вообще, где вы прочитали про этот эффект для маленьких тактовых кнопок? Можно ссылку? Я тоже хочу почитать.
Сообщение отредактировал Pridnya - Dec 9 2016, 06:51
|
|
|
|
|
Dec 9 2016, 07:01
|

Частый гость
 
Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050

|
Не совсем понял про подмазывающий ток для кнопки! Точнее вообще, сбит с толку. Кнопки планирую использовать такие (новые, такие стоят в пультах-брелках автосигналок сбоку):  Есть возможность использовать такие (б/у снятые с сотовых телефонов):
О каких токах через кнопку идёт речь, когда кнопка разлмкнута - ток не течет, а когда замкнута, то микротоки с затвора полевого транзистора входного порта идут на землю? Вот схема типичного подключения кнопки к микроконтроллеру:  В этой схеме разруливается смазывание контактов или нет? Правильна ли она? Не будет заедать кнопка после сто-пиццот нажатий? Тема реально заинтересовала, потому что на опыте убедился, что некоторые кнопки переставали работать (выборочно, думал что брак...) - а тут все сложнее. ViKo, кнопка нужна, порт любой, не обязательно WakeUp, это для нажатия в режим "передача" (PTT в рации)
--------------------
SPY vs. SPY Хорошо там, где нет ничего...
|
|
|
|
|
Dec 9 2016, 07:36
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Pridnya @ Dec 9 2016, 09:50)  Если сделать как вы советуете, то управляться будет не высоким уровнем, а низким. И что, это великая катастрофа для программиста? Или "библиотеки" не позволяют проверять наличие нуля вместо наличия единицы на входе? QUOTE (Pridnya @ Dec 9 2016, 09:50)  Да и на STM32F4DISCOVERY кнопка стоит самая простая пластиковая, питание 3 вольта, там контакты не загрязняются. Какое там очищение контактов током? Любые негермитичные контакты окисляются. Если вы с этим не сталкивались - значит либо через ваши кнопки течет достаточно большой ток, либо ваша кнопка работает недостаточно долго. Я сталкивался. QUOTE (Pridnya @ Dec 9 2016, 09:50)  Вообще, где вы прочитали про этот эффект для маленьких тактовых кнопок? Вы никогда не слышали про деление реле на "силовые" и "сигнальные"? Для последних нормируется минимальный коммутируемый ток. "Совпадение? Не думаю!". С кнопками то же самое, только ток не нормируется, считается, что 5 мА достаточно. Ссылок быстро не нашел, к сожалению. QUOTE (Mister_DSP @ Dec 9 2016, 10:01)  О каких токах через кнопку идёт речь, когда кнопка разлмкнута - ток не течет, а когда замкнута, то микротоки с затвора полевого транзистора входного порта идут на землю? Вот именно из-за "микротоков" и нужна внешняя подтяжка. QUOTE (Mister_DSP @ Dec 9 2016, 10:01)  Вот схема типичного подключения кнопки к микроконтроллеру:  В этой схеме разруливается смазывание контактов или нет? Правильна ли она? Не будет заедать кнопка после сто-пиццот нажатий? Да, схема правильная. Если сопротивление Rpullup обеспечит ток через кнопку порядка 5 мА или более - кнопка заедать не будет. Дребезг, разумеется, надо обрабатывать программно (открою еще один секрет - для этого достаточно опрашивать кнопку раз в 50 мС).
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Dec 9 2016, 08:13
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(Сергей Борщ @ Dec 9 2016, 10:36)  И что, это великая катастрофа для программиста? Или "библиотеки" не позволяют проверять наличие нуля вместо наличия единицы на входе? В моей практике было несколько случаев, когда управлять нулем не очень удачное решение. И использовать только внутренние подтягивающие резисторы портов и т.п. с момента включения до инициализации выводы микроконтроллеров могут быть в неоперделенном состоянии несколько десятков миллисекунд. Страшно как-то нулем управлять. Цитата(Сергей Борщ @ Dec 9 2016, 10:36)  Любые негермитичные контакты окисляются. Если вы с этим не сталкивались - значит либо через ваши кнопки течет достаточно большой ток, либо ваша кнопка работает недостаточно долго. Я сталкивался. Я просто несколько раз разбирал компьютерные мышки, так есть экземпляры в которых кнопки более 10 лет проработали и еще работают. Там же тоже негерметичные тактовые кнопки. А про реле, так там отдельная песня: одно время даже был нормативный документ в релейной защите, который требовал, чтобы входы устройств были с функцией самоочистки контактов реле (в момент подачи сигнала на вход ток большой, а затем снижается), но этот бред позже отменили (или он был написан под конкретного кого-то). Но там постоянное напряжение 110 вольт и индуктивные нагрузки (длинные сигнальные провода) - там контакты могут подгорать. Цитата(Сергей Борщ @ Dec 9 2016, 10:36)  Вы никогда не слышали про деление реле на "силовые" и "сигнальные"? Для последних нормируется минимальный коммутируемый ток. "Совпадение? Не думаю!". С кнопками то же самое, только ток не нормируется, считается, что 5 мА достаточно. Ссылок быстро не нашел, к сожалению. Вы так резко соскользнули с тактовых кнопок на реле (да еще и сигнальные и силовые), что за вами не угнаться. Это хорошо, что вы задумались. Весь смысл в последнем предложении этого абзаца. Я вас понял. Спасибо.
Сообщение отредактировал Pridnya - Dec 9 2016, 08:20
|
|
|
|
|
Dec 9 2016, 08:14
|

Частый гость
 
Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050

|
Цитата(Сергей Борщ @ Dec 9 2016, 07:36)  Вот именно из-за "микротоков" и нужна внешняя подтяжка. Да, схема правильная. Если сопротивление Rpullup обеспечит ток через кнопку порядка 5 мА или более - кнопка заедать не будет. Дребезг, разумеется, надо обрабатывать программно (открою еще один секрет - для этого достаточно опрашивать кнопку раз в 50 мС). Тогда остается выяснить значение сопротивления подтяжки на портах STM32F405. На счет дребезга и задержек в курсе - у меня алгоритмически задержка итак вышла: обработка 1 фрейма вокодера на энкод или декод занимает относительно приличное время. К тому же после возникновения первого прерывания по нажатию кнопки, прерывание запрещается, и разрешаются когда кнопа будет отпущена.... Нашёл ответ по поводу VBat. Даташит, данный ViKo, говорит о том что рекомендуется замкнуть на питание и +1 керамика на 0,1 мкФ.... да.. экономии не вышло: раз рекомендуют - значит надо ставить. А то работа схемы будет зависеть от фазы Луны  Ещё вопрос по ногам Boot0,1. Устройство в серию, отладка уже пройдена, релиз программы написан. Через SWD заливаю во флеш. Значит Boot0=0. А вот boot1 может быть любым. Можно ли его оставить висеть в воздухе? Или тоже надо притягивать к питанию или земле? Вдруг тока будет кушать больше или по наводке выбьет? Как я понял что и притягивать на землю нельзя прямо, надо по кр. мере через резистор 510 Ом - чтобы с земли удары не влияли на порт (Ground Bounce или как там его....) Не люблю ставить детали, толку от которых просто не будет, да и размерами ограничен....
--------------------
SPY vs. SPY Хорошо там, где нет ничего...
|
|
|
|
|
Dec 9 2016, 09:23
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(Mister_DSP @ Dec 9 2016, 11:14)  Ещё вопрос по ногам Boot0,1. Устройство в серию, отладка уже пройдена, релиз программы написан. Через SWD заливаю во флеш. Значит Boot0=0. А вот boot1 может быть любым. Можно ли его оставить висеть в воздухе? Или тоже надо притягивать к питанию или земле? Вдруг тока будет кушать больше или по наводке выбьет?
Как я понял что и притягивать на землю нельзя прямо, надо по кр. мере через резистор 510 Ом - чтобы с земли удары не влияли на порт (Ground Bounce или как там его....)
Не люблю ставить детали, толку от которых просто не будет, да и размерами ограничен.... В RM0090
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 9 2016, 09:33
|

Частый гость
 
Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050

|
Цитата(Pridnya @ Dec 9 2016, 09:23)  В RM0090 Эту табличку я видел, она не даёт ответа на мой вопрос (че с Boot1 делать). Однако же, проанализировав, пришел к выводу, что резисторы лучше поставить: boot0 и boot1 притянуть к земле через 10 кОм (во избежание Ground bounce и чтоб мало тока жрали). На reset и кнопку резисторы лучше поставить, потому что зима, холодно - можно выбить подтяжку статикой, резисторы на питание не помешают, а суппрессоры(TVS) ставить - слишком жирно. То что кнопка будет нажата по нулю - ничего страшного, все мои предыдущие изделия так работали. Прийдётся прерывание ловить по falling, а не по rising. Так что с-экономить не выходит  На счёт тока 5 мА, о котором Сергей Борщ писал: при питании 3V, это ж резистор будет 600 Ом - ИМХО как-то слишком жирно для подтяжки кнопки!
--------------------
SPY vs. SPY Хорошо там, где нет ничего...
|
|
|
|
|
Dec 9 2016, 11:37
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(Mister_DSP @ Dec 9 2016, 12:33)  На счёт тока 5 мА, о котором Сергей Борщ писал: при питании 3V, это ж резистор будет 600 Ом - ИМХО как-то слишком жирно для подтяжки кнопки! Так в развитии темы "минимальный ток самоочистки" (удаленного концевика  ) появится тема "напряжение пробоя оксидной пленки" или "процентное соотношение компонентов в сплаве из которого сделаны контакты реле". Цитата(Mister_DSP @ Dec 9 2016, 12:33)  Эту табличку я видел, она не даёт ответа на мой вопрос (че с Boot1 делать). У меня PB2/BOOT1 подсоединен к GND через резистор 1кОм.
Сообщение отредактировал Pridnya - Dec 9 2016, 11:41
|
|
|
|
|
Dec 9 2016, 12:33
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Pridnya @ Dec 9 2016, 11:13)  В моей практике было несколько случаев, когда управлять нулем не очень удачное решение. И использовать только внутренние подтягивающие резисторы портов и т.п. с момента включения до инициализации выводы микроконтроллеров могут быть в неоперделенном состоянии несколько десятков миллисекунд. Страшно как-то нулем управлять. "Смешались в кучу кони, люди". 1) Я не знаю вашей практики, но опрашивать с висящей на порту кнопки можно хоть единицу, хоть ноль. Никакой разницы нет абсолютно (если программист еще не забыл двоичную алгебру). 2) Пока нога не опрашивается - на ней может быть все, что угодно. Перед опросом надо включить подтяжку, хоть внешнюю, хоть внутренюю - это снова задача программиста. После этого никаких неопределенных состояний на входе не будет. 3) Для кнопок, I2C, 1-wire и тому подобных интерфейсов внутренней подтяжки недостаточно, надо ставить внешнюю, всегда. 4) Для DIP-переключателей, перемычек на штырях, которые выставляются один раз и навсегда в желаемое положение и находятся сравнительно близко от контроллера (ну не знаю, сантиметров 5 по плате) внутренней подтяжки достаточно. 4) Никто не может помешать вам самостоятельно наступить на грабли. QUOTE (Mister_DSP @ Dec 9 2016, 12:33)  Эту табличку я видел, она не даёт ответа на мой вопрос (че с Boot1 делать). Ничего не делать. Эта таблица показывает, что если у вас BOOT0 притянута к земле (а это так в любом законченном устройстве), то состояние BOOT1 абсолютно ни на что не влияет. Если же ваше устройство при производстве программируется через заводской загрузчик, то надо предусмотреть подтяжку BOOT1 к земле.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Dec 10 2016, 19:29
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(Allregia @ Dec 10 2016, 10:27)  И как это повлияет на работу устройства? Это-ж е ВХОДЫ а не ВЫХОДЫ! Ну в неопределенном состоянии входы, пока не прошла инициализация пуллапов, ну так вы и входы до этого момента тоже ведь не опрашиваете, какая Вам разница какой там потенциал? Чтобы управлять высоким уровнем нужно что-то подать на вход, должен быть источник напряжения. Чтобы управлять нулем достаточно чему-нибудь оборваться в схеме или замкнуть и вот он ноль, т.е. источника нет, а управляющий сигнал как бы есть.
|
|
|
|
|
Dec 10 2016, 20:07
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата …с момента включения до инициализации выводы микроконтроллеров могут быть в неоперделенном состоянии несколько десятков миллисекунд… Так пишите код, чтоб неопределённое состояние было считаные мкс. Цитата Ну в неопределенном состоянии входы, пока не прошла инициализация пуллапов, ну так вы и входы до этого момента тоже ведь не опрашиваете, какая Вам разница какой там потенциал? Ребятушки, не забывайте: логические, а тем паче КМОП-овские, входы "висеть" (из-за чего сквозные токи во входных каскадах) не должны. Коммутировать туда-сюда (я правильно понял?) PullUp-ы/PullDown-ы - дурная практика. Цитата т.е. источника нет, а управляющий сигнал как бы есть. Есть "поглотитель" (current sink) тока, что разрушает магию (;
Сообщение отредактировал Obam - Dec 10 2016, 20:12
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Dec 12 2016, 07:41
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата Ребятушки, не забывайте: логические, а тем паче КМОП-овские, входы "висеть" (из-за чего сквозные токи во входных каскадах) не должны. Цитата(Allregia @ Dec 11 2016, 01:50)  Скока? Несколько миллисекунд а тои десятков микросекунд от включения питания до инициализации пуллапов?
Ну во-первых, цитата и ремарка, хотелось бы, чтоб соответствовали друг-дружке. Во-вторых, выдержка из cstartup_M.c Код #pragma required=__vector_table void __iar_program_start( void ) { WDT ->WDT_MR = WDT_MR_WDDIS;// выключен WatchDog
__set_PSP((uint32_t)(__sfe( "Process_stack")));// настройка указателей привилегированных режимов
__GPIO_CONFIG ();// GPIO в исходном состоянии
__set_BASEPRI (0x0F << 4);
/* Ну и дальше прочая ботва */ __iar_init_core(); __iar_init_vfp(); __cmain(); } Ядро стартует на 4 МГц, так что, именно что считаные микросекунды до установки исходного состояния GPIO.
--------------------
Пролетарий умственного труда.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|