реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> STM32F405 напряжение VBAT, обязательна ли подача или нет?
Mister_DSP
сообщение Dec 9 2016, 08:14
Сообщение #16


Частый гость
**

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



Цитата(Сергей Борщ @ Dec 9 2016, 07:36) *
Вот именно из-за "микротоков" и нужна внешняя подтяжка.
Да, схема правильная. Если сопротивление Rpullup обеспечит ток через кнопку порядка 5 мА или более - кнопка заедать не будет. Дребезг, разумеется, надо обрабатывать программно (открою еще один секрет - для этого достаточно опрашивать кнопку раз в 50 мС).


Тогда остается выяснить значение сопротивления подтяжки на портах STM32F405. На счет дребезга и задержек в курсе - у меня алгоритмически задержка итак вышла: обработка 1 фрейма вокодера на энкод или декод занимает относительно приличное время. К тому же после возникновения первого прерывания по нажатию кнопки, прерывание запрещается, и разрешаются когда кнопа будет отпущена....

Нашёл ответ по поводу VBat. Даташит, данный ViKo, говорит о том что рекомендуется замкнуть на питание и +1 керамика на 0,1 мкФ.... да.. экономии не вышло: раз рекомендуют - значит надо ставить. А то работа схемы будет зависеть от фазы Луны sm.gif

Ещё вопрос по ногам Boot0,1. Устройство в серию, отладка уже пройдена, релиз программы написан. Через SWD заливаю во флеш. Значит Boot0=0. А вот boot1 может быть любым. Можно ли его оставить висеть в воздухе? Или тоже надо притягивать к питанию или земле? Вдруг тока будет кушать больше или по наводке выбьет?

Как я понял что и притягивать на землю нельзя прямо, надо по кр. мере через резистор 510 Ом - чтобы с земли удары не влияли на порт (Ground Bounce или как там его....)

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


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Dec 9 2016, 09:23
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



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

Как я понял что и притягивать на землю нельзя прямо, надо по кр. мере через резистор 510 Ом - чтобы с земли удары не влияли на порт (Ground Bounce или как там его....)

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

В RM0090
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Dec 9 2016, 09:33
Сообщение #18


Частый гость
**

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



Цитата(Pridnya @ Dec 9 2016, 09:23) *
В RM0090

Эту табличку я видел, она не даёт ответа на мой вопрос (че с Boot1 делать).
Однако же, проанализировав, пришел к выводу, что резисторы лучше поставить: boot0 и boot1 притянуть к земле через 10 кОм (во избежание Ground bounce и чтоб мало тока жрали).
На reset и кнопку резисторы лучше поставить, потому что зима, холодно - можно выбить подтяжку статикой, резисторы на питание не помешают, а суппрессоры(TVS) ставить - слишком жирно.
То что кнопка будет нажата по нулю - ничего страшного, все мои предыдущие изделия так работали. Прийдётся прерывание ловить по falling, а не по rising.
Так что с-экономить не выходит sm.gif

На счёт тока 5 мА, о котором Сергей Борщ писал: при питании 3V, это ж резистор будет 600 Ом - ИМХО как-то слишком жирно для подтяжки кнопки!


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Dec 9 2016, 11:37
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(Mister_DSP @ Dec 9 2016, 12:33) *
На счёт тока 5 мА, о котором Сергей Борщ писал: при питании 3V, это ж резистор будет 600 Ом - ИМХО как-то слишком жирно для подтяжки кнопки!

Так в развитии темы "минимальный ток самоочистки" (удаленного концевика biggrin.gif ) появится тема "напряжение пробоя оксидной пленки" или "процентное соотношение компонентов в сплаве из которого сделаны контакты реле".
Цитата(Mister_DSP @ Dec 9 2016, 12:33) *
Эту табличку я видел, она не даёт ответа на мой вопрос (че с Boot1 делать).

У меня PB2/BOOT1 подсоединен к GND через резистор 1кОм.

Сообщение отредактировал Pridnya - Dec 9 2016, 11:41
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 9 2016, 12:33
Сообщение #20


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
Allregia
сообщение Dec 10 2016, 07:27
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(Pridnya @ Dec 9 2016, 09:13) *
В моей практике было несколько случаев, когда управлять нулем не очень удачное решение. И использовать только внутренние подтягивающие резисторы портов и т.п. с момента включения до инициализации выводы микроконтроллеров могут быть в неоперделенном состоянии несколько десятков миллисекунд. Страшно как-то нулем управлять.


И как это повлияет на работу устройства? Это-ж е ВХОДЫ а не ВЫХОДЫ!
Ну в неопределенном состоянии входы, пока не прошла инициализация пуллапов, ну так вы и входы до этого момента тоже ведь не опрашиваете, какая Вам разница какой там потенциал?
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Dec 10 2016, 19:29
Сообщение #22


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



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

Чтобы управлять высоким уровнем нужно что-то подать на вход, должен быть источник напряжения.
Чтобы управлять нулем достаточно чему-нибудь оборваться в схеме или замкнуть и вот он ноль, т.е. источника нет, а управляющий сигнал как бы есть.
Go to the top of the page
 
+Quote Post
Obam
сообщение Dec 10 2016, 20:07
Сообщение #23


Знающий
****

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



Цитата
…с момента включения до инициализации выводы микроконтроллеров могут быть в неоперделенном состоянии несколько десятков миллисекунд…

Так пишите код, чтоб неопределённое состояние было считаные мкс.

Цитата
Ну в неопределенном состоянии входы, пока не прошла инициализация пуллапов, ну так вы и входы до этого момента тоже ведь не опрашиваете, какая Вам разница какой там потенциал?


Ребятушки, не забывайте: логические, а тем паче КМОП-овские, входы "висеть" (из-за чего сквозные токи во входных каскадах) не должны.
Коммутировать туда-сюда (я правильно понял?) PullUp-ы/PullDown-ы - дурная практика.

Цитата
т.е. источника нет, а управляющий сигнал как бы есть.


Есть "поглотитель" (current sink) тока, что разрушает магию (;

Сообщение отредактировал Obam - Dec 10 2016, 20:12


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Dec 10 2016, 21:50
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(Obam @ Dec 10 2016, 21:07) *
Ребятушки, не забывайте: логические, а тем паче КМОП-овские, входы "висеть" (из-за чего сквозные токи во входных каскадах) не должны.


Скока? Несколько миллисекунд а тои десятков микросекунд от включения питания до инициализации пуллапов?
Go to the top of the page
 
+Quote Post
Obam
сообщение Dec 12 2016, 07:41
Сообщение #25


Знающий
****

Группа: Участник
Сообщений: 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.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01464 секунд с 7
ELECTRONIX ©2004-2016