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

 
 
 
Reply to this topicStart new topic
> Можно ли обойтись без кнопки в бутлодере, avr109 + avrOSP
alux
сообщение Jul 19 2007, 07:28
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



... а то в приборе на панели кнопки "Reset" не предусмотрено, а разбирать прибор для перепрошивки как-то не практично. Вариант с WatchDog тоже не подходит. Т.е. по включению питания попадаем на загрузчик, анализировать причину сброса, и если в течении определенного времени не будет команд, то сброс по WD. Можно ли сделать так :
1)Вектор сброса и таблица прерываний в начале памяти программ
2)В прерывании UART анализировать входные данные. Если "P" - вход в режим программирования от OSP (avr911), то прыжок по адресу загрузчика, и обработка последующих команд. Если последующие команды не поступили, то можно ресет по WD. Т.е. прибор программируется только при подключении к терминалу и подачей соответствующей команды. Насколько это будет надежно? Как застраховаться от ложных срабатываний в случае использования UART в других целях?
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Jul 19 2007, 07:35
Сообщение #2


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

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Бутлоадер лучше держать в секции для бутлоадера весь. А так как по факту после его применения нужно рестартовать, то выход из него прямо на вектор 0. А вот как входить, тут есть варианты - по влючению питания -
ноу-хау. Отдаю. http://caxapa.ru/76325.html?hilite=%ED%EE%F3-%F5%E0%F3
Ещё входить можно по сигналу Bbreak


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
alux
сообщение Jul 19 2007, 08:38
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Цитата(sensor_ua @ Jul 19 2007, 10:35) *
А вот как входить, тут есть варианты - по влючению питания -
ноу-хау. Отдаю. http://caxapa.ru/76325.html?hilite=%ED%EE%F3-%F5%E0%F3
Ещё входить можно по сигналу Bbreak

Простите, не понял:
"На вывод Tx камня вешаем подтяжку 100 кОм и от ноги на джампер на общий ставим 10 кОм. При включении ставим ногу на вход, смотрим, не установлен ли джампер, принимаем решение, потом переводим ногу на выход..."
Подробнее, пожалуйста вторую часть первого предложения. Что куда подключать? Не пойму смысла этих манипуляций. Получается, чтобы перепрошить, надо разбирать корпус и менять перемычки?
И что такое сигнал Bbreak ?
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Jul 19 2007, 09:07
Сообщение #4


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

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Если просто не хватает ног, а не в целях неразборности прибора, то описанный способ экономит один пин для получения сигнала о принудительном входе в бутлодырь после сброса.
Bbreak - это ошибочка - сигнал называется Break - выдаётся в COM-порт. Выглядит как длинный логический ноль, не помню сколько минимум, но вроде не меньше длительности 3-х байт. Виндовс умеет. Пользоваться можно только по месту, потому как (насколько я знаю), удалёно не передаётся. Нажимаете в проге кнопу - у Вас генерится Break, Вы перевключаете питание прибора, бутлодырь находит, что у него после сброса на входе Break, и не передаёт управление основной программе. Далее могут быть вариации с таймаутами и прочими способами выхода из бутлодыря


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
alux
сообщение Jul 19 2007, 10:06
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Цитата(sensor_ua @ Jul 19 2007, 12:07) *
Нажимаете в проге кнопу - у Вас генерится Break, Вы перевключаете питание прибора, бутлодырь находит, что у него после сброса на входе Break, и не передаёт управление основной программе. Далее могут быть вариации с таймаутами и прочими способами выхода из бутлодыря

Ну и чем этот вариант лучше, чем тот, что я описал в первом посте с WatchDog? Я ж говорил, чтобы без перевключения питания.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 19 2007, 10:31
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(alux @ Jul 19 2007, 13:06) *
Ну и чем этот вариант лучше, чем тот, что я описал в первом посте с WatchDog? Я ж говорил, чтобы без перевключения питания.
Как заметил sensor_ua тут много разных ноу-хау. Дарю свою, которую в свое время еще в ru.embedded подсказал vmp: Все порты ввода-вывода после сброса всегда настроены на ввод. Берете какую-либо ногу, которая при нормальной работе должна быть настроена на вывод (например, на ней светодиод). Загрузчик при старте проверяет направление этой ноги. Если нога настроена на вывод - он переходит в режим программирования. Если нога настроена на ввод - он проверяет контрольную сумму программы. Если совпала - старт программы. Если не совпала - он переходит в режим ожидания команды начала программирования по интерфейсу связи. Программа, в нормальном режиме получив команду "вход в режим программирования" просто переходит по адресу BOOT_RESET, т.е. на начало загрузчика. Единственное - надо внимательно следить за инициализацией, т.е. загрузик должен отключить все прерывания, которые могу быть в основной программе.


--------------------
На любой вопрос даю любой ответ
"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
_artem_
сообщение Jul 19 2007, 10:43
Сообщение #7


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



При включении ком кабеля от компютера на его ТХ всегда есть напряжение - сдетектируйте его с помошью одного транзистора и подавайте на вход микро.
Или сделайте специальный кабель для бутлоадера - две ноги на 9 дсаб коннекторе замкните на стороне кабеля а на стороне микро проверяйте на их замыкание при вставленном кабеле. При обеих вариантах - вставляйте кабель до включения питания .\


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post

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

 


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


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