Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прошивка МК через RS485
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Maxim_Ka
Сделали мы девайс один, на ATmega32. Прошивали внутрисхемно по JTAGу. Сейчас он находится на испытаниях, "запломбирован" и внутрь его не влезть. А появилась необходимость чуть изменить программный код. На корпусе только 2 разъема: питание и сам RS485.

У Евстифеева в главе про самопрограммирование русским по белому написано, что "..для загрузки нового содержимого памяти программ...программа-загрузчик может использовать любой интерфейс передачи данных (USART/UART, SPI. TWI).."
По идее RS485 это ведь тот же USART?

Есть ли возможность перепрошить контроллер через него? Да и как это сделать, нужен какой-то программатор особый? help.gif
rx3apf
Цитата(Maxim_Ka @ Apr 12 2011, 22:37) *
По идее RS485 это ведь тот же USART?

Есть ли возможность перепрошить контроллер через него? Да и как это сделать, нужен какой-то программатор особый?

Вот встроенный загрузчик должен быть "особый" (т.е. должен уметь загружать данные из USART), а "программатором" будет переходник RS-232/RS-485 на компьютере. А дальше уж думайте над протоколом, что будете грузить (.hex или бинарник, нужно шифрование или нет, поспеете ли при простом копировании или нужно управление потоком, нужен ли какой-то свой хитрый протокол или достаточно простого копирования данных).
ukpyr
Цитата
или нужно управление потоком
вот с 485 это может не получиться. Дополнительных линий нет, программно тоже никак - интерфейс то полудуплексный. Остается только пакетный типа запрос-ответ.
Для сброса контроллера и инициации программирования можно дополнить схему программным сбросом - RC цепочку с диодом с RX на Reset, сброс подачей Break
demiurg_spb
Цитата(Maxim_Ka @ Apr 12 2011, 22:37) *
По идее RS485 это ведь тот же USART?

Скажу шире RS485 - это тоже "любой" интерфейс. Так что делайте и всё получится - не Вы первый и не вы последний.

Цитата
Есть ли возможность перепрошить контроллер через него? Да и как это сделать, нужен какой-то программатор особый? help.gif

Вы не о том думаете. Из железа Вам нужен конвертер интерфейса USB-RS485. И нужно выбрать подходящий протокол передачи заточенный под симплекс.
hint: XMODEM, MODBUS....
Палыч
Цитата(Maxim_Ka @ Apr 12 2011, 22:37) *
Сейчас он находится на испытаниях, "запломбирован" и внутрь его не влезть... Есть ли возможность перепрошить контроллер через него? Да и как это сделать, нужен какой-то программатор особый?
Имхо, Вы не четко сформулировали вопрос, поэтому и ответы получаете в соответствии с особенностями его трактовки. Варианты трактовки:
1. Можно ли в "запломбированный" прибор залить новую прошивку не снимая "пломб" и используя для этого RS485?
Ответ: если Вы не предусмотрели для Вашего прибора собственный загрузчик по RS485 и не "зашили" его в МК до "пломбировки" (скорее всего это так и есть, иначе не было бы вопроса), то однозначно - нет!
2. Возможно ли внести измемения в конструкцию прибора для того, чтобы можно было изменять его прошивку по RS485, а не через JTAG?
Ответ: без проблем, если МК поддерживает BootLoader. Сам загрузчик Вам нужно, конечно, разработать. Процедуру обновления прошивки - тоже.
Maxim_Ka
Да в том то и дело, что "запломбирован"..

BootLoader поддерживает, ATmega32A-AU у меня. Тогда попрошу посоветовать мне литературу по разработке загрузчика этого и процедуры обновления прошивки)
demiurg_spb
Цитата(Maxim_Ka @ Apr 14 2011, 22:30) *
Тогда попрошу посоветовать мне литературу
Сайт atmel.com в разделе application notes.
+ гляньте файлик boot.h из avr-libc.
Maxim_Ka
Спасибо, будем искать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.