Arduino Mega Server

Модератор: Alex

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пт окт 30, 2015 12:01 pm

полный заряд конденсатора соответствует отжатию кнопки ресета , а время заряда устанавливается RC цепочкой
Друзья, я всё меньше и меньше вас понимаю.
Хиасмер
Благодарил (а): 0
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение Хиасмер » Пт окт 30, 2015 12:47 pm

...
Последний раз редактировалось Хиасмер Вс апр 08, 2018 12:20 am, всего редактировалось 1 раз.
Gorgon67
Сообщения: 23
Зарегистрирован: Пт сен 11, 2015 9:05 am
Благодарил (а): 2 раза
Поблагодарили: 3 раза

Re: Arduino Mega Server

Сообщение Gorgon67 » Пт окт 30, 2015 12:53 pm

Друзья, я всё меньше и меньше вас понимаю
Да там все просто. Между VCC и GND последовательно ставиться конденсатор и резистор, а точка их соединения подключается к выводу ресет. Ресет может запускаться нулем или еденицой, поэтому важно не напутать с подключением конденсатора и резистора к "+" и "-" иначе будет вечный ресет.
Вот полная статья, а вот выдержка из неё.
Как еще можно применить RC цепь?
Да способов много. Часто ее используют не только в качестве фильтров, но и как формирователи импульсов. Например, на сбросе контроллера AVR, если надо чтобы МК стартанул не сразу после включения питания, а с некоторой выдержкой:
Изображение

При старте кондер разряжен, ток через него вваливат на полную, а напряжение на нем мизерное — на входе RESET сигнал сброса. Но вскоре конденсатор зарядится и через время Т его напряжение будет уже на уровне логической единицы и на RESET перестанет подаваться сигнал сброса — МК стартанет.
А для AT89C51 надо с точностью наоборот RESET организовать — вначале подать единицу, а потом ноль. Тут ситуация обратная — пока кондер не заряжен, то ток через него течет большой, Uc — падение напряжения на нем мизерное Uc=0. А значит на RESET подается напряжение немногим меньше напряжения питания Uпит-Uc=Uпит.
Но когда кондер зарядится и напряжение на нем достигнет напряжения питания (Uпит=Uс), то на выводе RESET уже будет Uпит-Uc=0
При желании можно и время посчитать
U = U0*(1-Exp(-t/T)),
где U0 - ЭДС источника (3,3 или5 Вольт), t - время заряда, Т - постоянная времени, равная R*C.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пт окт 30, 2015 1:14 pm

Все рассуждают о решении, так и не сформулировав причину проблемы. С чем мы боремся? И что мы делаем?

Мы эмулируем нажатие кнопки «ресет»? Или что? И в чём причина, что её необходимо нажимать? Что не так с DUE на системном уровне?

Сначала нужно выяснить причину, тогда и решение можно будет искать не методом тыка.
dCapo
Сообщения: 2
Зарегистрирован: Пт окт 30, 2015 10:49 am
Благодарил (а): 0
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение dCapo » Пт окт 30, 2015 1:58 pm

при подаче питания не стартует бутлоадер (т.е. не начинается его выполнение с назначенного адреса) - скорее всего где то нахимичили с переходными процессами - поэтому надо подождать их окончания, но адрес так и не устанавливается.
процессор прогрелся, нажали ресет - установился правильный адрес старта и пошло выполнение прошивки.

а RC цепочка просто дает время полностью стартануть ("прогреть" проц) и эмулирует нажатие ресета
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пт окт 30, 2015 2:06 pm

Вот теперь кристально ясно.

Остался вопрос с пятью минутами. Судя по вашему объяснению, это решение универсальное и будет работать даже после нескольких дней в обесточенном состоянии?

На сайте по ссылке есть альтернативные схемы с 2-я резисторами. Если кто для себя чётко понял какой должна быть схема — выложите базовый вариант от которого мы будем танцевать.
Gorgon67
Сообщения: 23
Зарегистрирован: Пт сен 11, 2015 9:05 am
Благодарил (а): 2 раза
Поблагодарили: 3 раза

Re: Arduino Mega Server

Сообщение Gorgon67 » Пт окт 30, 2015 2:23 pm

Все рассуждают о решении, так и не сформулировав причину проблемы. С чем мы боремся? И что мы делаем?
Давайте начнем по порядку. Лично у меня дуо нет и ближайшее время не собираюсь покупать.
1.Эта проблема только у вас или у всех поголовно?

2. Она возникает только при загрузке мега сервера или при загрузке любого скетча?
Мы эмулируем нажатие кнопки «ресет»? Или что?
По сути да. При подаче питания должны успеть пройти все переходные процессы в самом контроллере и его обвязке. Т.е должны зарядиться кондеры у преобразователей и тд и тп. Ядро контроллера работает от напряжения 1,8 вольта и оно стартанет до влючения например Uarta или SPI. А они в свою очередь могут при начальной загрузке отправить по шине данных какую нибудь лабуду, которая поставит ядро в ступор. Чтобы этого не произошло делают задержку на старт самого контроллера. Судя по 1394 странице даташита она составляет 40-150 μs. Чтобы организовать эту задержку и ставят RC цепочку. Возможно она уже есть на плате, но не хватает выдержки времени или банальный непропай, что тоже не редкость.
Сначала нужно выяснить причину, тогда и решение можно будет искать не методом тыка

Полностью с вами согласен, но для этого потребуется осциллограф, изучение даташита, расчет имеющихся на плате номиналов, или попробовать то, что уже сделали другие.
Это как ардуиновская библиотека: Никто не защищен от её кривизны, но и без банальной проверки на работоспособность никто с нуля её не пишет...
Gorgon67
Сообщения: 23
Зарегистрирован: Пт сен 11, 2015 9:05 am
Благодарил (а): 2 раза
Поблагодарили: 3 раза

Re: Arduino Mega Server

Сообщение Gorgon67 » Пт окт 30, 2015 2:41 pm

Остался вопрос с пятью минутами. Судя по вашему объяснению, это решение универсальное и будет работать даже после нескольких дней в обесточенном состоянии?
Задержка будет происходить менее секунды при каждой подаче питания. Это как void setup :lol:
Если кто для себя чётко понял какой должна быть схема — выложите базовый вариант от которого мы будем танцевать.
Схему давал чуть выше. Номиналы конденсатора и резистора можно взять с предыдущей страницы, или посчитать по формуле.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пт окт 30, 2015 3:01 pm

Схему давал чуть выше. Номиналы конденсатора и резистора можно взять с предыдущей страницы, или посчитать по формуле.
Там несоответствие. Цитата:
470 Ohm resistor in series between the reset pin and ground
а у вас на рисунке, где AVR — между землёй и «ресетом» — конденсатор.
Gorgon67
Сообщения: 23
Зарегистрирован: Пт сен 11, 2015 9:05 am
Благодарил (а): 2 раза
Поблагодарили: 3 раза

Re: Arduino Mega Server

Сообщение Gorgon67 » Пт окт 30, 2015 4:08 pm

а у вас на рисунке, где AVR — между землёй и «ресетом» — конденсатор.
А с чего вы взяли что cortex это AVR? Он относиться к ARM, а там всё по другому(даже среда разработки). Из-за этого я особо и не стремлюсь его покупать.

На контроллерах вход ресет бывает 2 типов прямой( сброс при 1, работа при 0) или инверсный( на схеме обозначается верхним подчеркиванием сброс при 0, работа при 1) , а на схеме показано как правильно подключить к прямому или инверсному входу.

Если судить по
Цитата:
470 Ohm resistor in series between the reset pin and ground
то получается, что на дуо прямой вход.
Ответить