Сброс МК через TX

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 7
Зарегистрирован: Ср фев 13, 2013 23:08:28

Сообщение SerGolova »

Добрый день, Уважаемые коты.
Такая ситуация: Есть МК с загрузчиком, для заливки программы нужно сначало сбросить МК. Нажимать кнопку каждый раз неудобно.
Хочется автоматически. В ардуино, например, используется дополнительная линия DTR, могу сделать, но... так не интересно... :)
Пришла такая идея :idea: : А что если сброс делать через TX-линию. Суть такая:
Во время передачи линия кратковременно падает до нуля - сигнал поступает до МК, а когда
линия устанавливается в ноль на продолжительное время (~1сек), то выполняется сброс.
Програмно реализовать - за нефиг делать (SetCommBreak/ClearCommBreak), а в липестрической части я не шарю.
Нужно что-то типа кондёра + развести TX и Reset с помошью транзистора... Дальше мои мозги не просчитывают... :dont_know:

SOS
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

схема:
Изображение
R1-C1 - время реакции на низкий уровень (не рассчитывал, но можно попробовать 100 кОм, 10 мкФ)
R2 = 1 кОм
R3 = 10 кОм
R4 = 10 кОм
C2 = 0,1 мкФ
VT1 - BC807 (BC857, BC557, КТ361, КТ3107 или аналогичный)
Вложения
reset.png
(3.9 КБ) 769 скачиваний
Ставим плюсы: )
Реклама
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Детектор пропущенных импульсов, в даташите на NE555 есть схема.

Но правельней конечно через отдельную линию дергать ресет. Т.к. ноль на TXD дольше длительности кадра - это скорее какая-то авария, чем нормальное поведение исправного компорта.
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский

Сообщение phanis »

По схеме выше, нужно добавить деталей ( например цепочку из диода и резистора параллельно R1)для быстрого разряда конденсатора С1.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Аватара пользователя
Сообщения: 219
Зарегистрирован: Вт сен 18, 2007 16:41:16
Откуда: Украина, г. Запорожье

Сообщение alex2103 »

А почему нельзя сделать jump на загрузчик из основной программы по приходу определенного кода на RX??
Контактная информация:
Реклама
Родился
Сообщения: 7
Зарегистрирован: Ср фев 13, 2013 23:08:28

Сообщение SerGolova »

ibiza11 - огромное спасибо!!! :beer: Именно то что я искал! :kiss:
alex2103 писал(а):А почему нельзя сделать jump на загрузчик из основной программы по приходу определенного кода на RX??
Так пока и делаю, а если зависание или баг в программе или прерывание ненароком вырубилось...
Во время отладки такая фигня ненадёжная.
uk8amk писал(а):Но правельней конечно через отдельную линию дергать ресет. Т.к. ноль на TXD дольше длительности кадра - это скорее какая-то авария, чем нормальное поведение исправного компорта.
Ноль на TX - это штатная ситуация, называется Line break.
Реклама
Родился
Сообщения: 7
Зарегистрирован: Ср фев 13, 2013 23:08:28

Сообщение SerGolova »

Всем спасибо. Все свободны :beer:
Вложения
Безымянный.JPG
(169.34 КБ) 407 скачиваний
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

заработало?)
Ставим плюсы: )
Опытный кот
Сообщения: 758
Зарегистрирован: Вс фев 10, 2013 15:26:00

Сообщение nirq »

jump на загрузчик
Jump на метку "endless_loop:", зацикливание "endless_loop: goto endless_loop" и сброс по вачдогу.

Что нельзя спаять - то приходится программировать... и над картинкой много думал.
Родился
Сообщения: 7
Зарегистрирован: Ср фев 13, 2013 23:08:28

Сообщение SerGolova »

Отлично работает!!!!
Напряжение на Reset'е.
Осцилограмма USB AX (сопротивление входа 100КОм).
Break time 500ms, общение с МК на 9600 бод продолжительностью 7 сек.
Нижнее напряжение во время сброса = 2вольта. Проседание во время общения до 3.3в.
R1=40k
R3=47k
R2=5k
КТ361
C=10мкф
Кстати, минамальная скорость общения при такой схеме 4800 бод(в зависимости от характера данных).
Меньшие значения перезагружают.
Вложения
Безымянный.jpg
(108.57 КБ) 403 скачивания
Последний раз редактировалось SerGolova Чт фев 14, 2013 23:17:44, всего редактировалось 1 раз.
Родился
Сообщения: 7
Зарегистрирован: Ср фев 13, 2013 23:08:28

Сообщение SerGolova »

А вот уже запись на 256000бод (Х1-Х2). Просаживания почти нет.
Вложения
Безымянный2.jpg
(87.55 КБ) 436 скачиваний
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Могу посоветовать уменьшить резистор в цепи базы транзистора, для уменьшения уровня напряжения в режиме сброса и параллельно резистору R1 поставить диод анодом к сигналу Tx для уменьшения просадки во время передачи данных.
Вообще желательно поставить триггер Шмитта вместо транзистора, но не обязательно. Они сейчас бывают в SOT23-5.
Ставим плюсы: )
Родился
Сообщения: 7
Зарегистрирован: Ср фев 13, 2013 23:08:28

Сообщение SerGolova »

А с триггером как схема выглядеть будет, или хотябы маркировку триггера подскажите, пожалуйста.
Родился
Сообщения: 7
Зарегистрирован: Ср фев 13, 2013 23:08:28

Сообщение SerGolova »

А если ТХ 3.3в, что нужно изменить в схеме?
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Триггер например такой NC7SZ14. а что изменится при питании 3.3 В?
Ставим плюсы: )
Ответить

Вернуться в «AVR»