Цитата(maloii @ Sep 27 2009, 11:03)

Я собрал плату с мегой 168, но для упрощения схемы выходы для ISP не стал делать, но на плате есть выход UART. Кнопочек для резета не делал. К чипу просто подпоялся и залить прошивку через ISP могу. Саму программу для этого чипа написал, но на будущее охота обновлять прогу через uart. С бутлоадерами раньше не общался и поэтому возник вопрос какой же выбрать, какой прогой шить и как обойти надобность кнопочки резет которой нет на плате.
С низу приложил файл с разводкой, просто плата настолько малюсенькая что разъем для программирования там будет лишний, а вот обновлять прошивку возможно придется часто.
В Вашем случае проще. У ATmega168 немножко другая организация памяти. Она делится на 2 части:
1) RWW (чтение при записи)
2) NRWW (нет чтения при записи)
Условно можно обозначить, что секция прикладной программы это RWW, а секция загрузчика - NRWW.
Cоответственно можно написать обработчик прерывания для UART. Т.е. получив от внешнего источника определенный
байт ("волшебное слово" например 0xFF или серию байт например "I WANT UPDATE") обработчик передаст управление
программе JMP или CALL расположенной в области NRWW. Там будет код, который будет читать информацию через
UART и писать её в область RWW. После окончания "перезаписи" осуществляем переход JMP или RET обратно в область
RWW где находится Ваша основная (обновленная) программа.
P.S. Старички меня поймут, вспомнят и улыбнутся (хотя мне всего 32 года). Раньше во времена "суперкомпьютеров"
ZX-SPECTRUM небезизвестный Bill Gilbert таким макаром защищал программы от взлома и перезаписи. Т.к. битва
шла практически за каждый байт (48 кБ оперативки) то при считывании игры с кассеты сначала считывался "заг-
рузчик" который затем считывал основную программу, и фишкой было когда программа загрузчика делала CALL
из "загрузчика" а возращалась (беря адрес возврата из стека) уже по перезаписанному в процессе загрузке адресу
тем самым стартуя основную программу (игру). Эх были времена...

Цитата(maloii @ Sep 27 2009, 11:03)

С низу приложил файл с разводкой, просто плата настолько малюсенькая что разъем для программирования там будет лишний, а вот обновлять прошивку возможно придется часто.
Зря, Вы уважаемый сразу ударились в "миниатюры". Сначала надо было "откатать" устройство на "монтажке", потому как
в процессе разработки и отладки всегда бывают "подводные камни". Это я Вам как неоднократно "садившийся на мель"
говорю.

Кстати, ATMEL предлагает совершенно бесплатную программу FLIP, и уже готовый фирменный бутлоадер для неё. Т.е.
Например AT90USB162 (с встроенным USB) позволяет залив сначала в чип специальный бутлоадер производить посредством
программы FLIP операции аналогичные ISP программатору только напрямую через USB. Поддерживает она (FLIP) и microLAN
и CAN и по моему даже RS-232... (!). Посмотрите даташит на нее, возможно для Вашего МК есть готовое решение, в против
ном случае Вам придется еще писать программу-терминал (для РС) обмена между компьютером и Вашим устройством.
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.