|
STM32F405 напряжение VBAT, обязательна ли подача или нет? |
|
|
|
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
|
|
|