Подключение периферии до или после инициализации

viktor54
Offline
Зарегистрирован: 20.11.2020

Приветствую участников форума!

Вопрос от новичка.

Допустим, есть некоторая периферия, от которой идет сигнал на аналоговый или цифровой пин. Cостояние пина будет определено только после выполнения pinMode() из функции setup(). При этом, питание периферии и, соответственно, сигнал от неё появляется сразу же после включения устройства.

Нужно ли для защиты микроконтроллера в конце setup() ставить функцию digitalWrite(порт, HIGH), которая бы подавала питание на периферию через полевик только после инициализации МК?

Имеет ли это смысл, если периферия работает при более высоком напряжении, чем 5V, а сигнал от неё идет через делитель на двух резисторах?

rkit
Offline
Зарегистрирован: 23.11.2016

В даташите на микроконтроллер есть таблица допустимых электрических характеристик на пинах. Открываешь его, открываешь даташит на свою периферию, и все внимательно сверяешь. Абстрактные разговоры смысла не имеют. Инженер оперирует цифрами.

nik182
Offline
Зарегистрирован: 04.05.2015

Бывает что  не нужно. При инициализации микроконтроллер имеет все пины как входные. Они имеют защиту от перенапряжения с помощью диодов, которые замыкают входы на шину +5 в случае перенапряжения. Если ток не превышать и не сжечь защитные диоды, то проблем не будет. Если у Вас стоят резистивные делители с достаточно большим сопротивлением, то они обеспечивают защиту по току.  В любом случае нужно считать токи напряжения, что бы точно ответить.  

viktor54
Offline
Зарегистрирован: 20.11.2020

А, допустим, у меня подключена EEPROM через I2c. На неё питание нужно подавать одновременно с микроконтроллером или после того, как МК загрузится?
В будущем планирую прошивку без бутлодера и выставить FUSE на минимальное Start-up time.

sadman41
Offline
Зарегистрирован: 19.10.2016

Всё зависит от сценария. Если она не используется, то можно вообще питание на неё не подавать. 

viktor54
Offline
Зарегистрирован: 20.11.2020

Ну, она же не просто так добавлена в схему. Нужна внешняя память.

sadman41
Offline
Зарегистрирован: 19.10.2016

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

Тем не менее, повторяю: всё зависит от сценария. Неужели сложно сложить А и B, поняв, что питание на EEPROM надо подать до ее использования?

Обратится МК к EEPROM через 10 мин после включения - значит питание можно подать в любой момент времени в течении 10 мин. Это же простая бытовая логика. Пытайтесь думать, а не молотить по клавиатуре.

viktor54
Offline
Зарегистрирован: 20.11.2020

sadman41 пишет:
Неужели сложно сложить А и B, поняв, что питание на EEPROM надо подать до ее использования?

Вопрос был не про это, а про то, следует ли подавать питание на периферию, до того, как в setup() отработают функции pinMode().

Гриша
Offline
Зарегистрирован: 27.04.2014

viktor54 пишет:

 до того, как в setup() отработают функции pinMode().

pinMode(). - вообще можно не использовать... тут почти все написано. 

-NMi-
Offline
Зарегистрирован: 20.08.2018

ТС - можно в любом месте кода менять пины, например, с выхода на вход и тд. Можно взять отдельный пин и подавать питание на еепром и работать с ней. Можно... Можно... Вааааще какхош можно.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

viktor54 пишет:

sadman41 пишет:
Неужели сложно сложить А и B, поняв, что питание на EEPROM надо подать до ее использования?

Вопрос был не про это, а про то, следует ли подавать питание на периферию, до того, как в setup() отработают функции pinMode().

На этот вопрос не существует единственно правильного ответа.

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

Green
Offline
Зарегистрирован: 01.10.2015

Без подачи питания ваша ЕЕПРОМ будет питаться от подтягивающих резисторов на SDA/SCL, если  они будут на стороне Ардуино.