на главную
Карта сайта
English version
Вы читаете:

Postal programmer — умный программатор

Бытовая техника
3 недели назад

Postal programmer — умный программатор. Работа c с 8-битными микроконтроллерами ATmega, ATtiny фирмы Atmel и примеры подключения к модулям стиральных машин (часть 2)


Работа с управляющей программой Postal3 на компьютере в режиме Atmel AVR

Чтобы выбрать режим работы программы Postal3 с микроконтроллерами Atmel, нужно в окне "Settings" выбрать вкладку "Other". Затем выбирают режим "Jtag/SPI" и в выпадающем списке слева - "Atmel AVR". При этом выше появится выпадающий список МК и кнопка "Open...". При нажатии "Open..." появится окно установок для МК Atmel (рис. 3).

Окно установок программы Postal3 для МК Atmel

Рис. 3. Окно установок программы Postal3 для МК Atmel

 

Рассмотрим назначение флажков (check box (чекбокс) или флаговая кнопка) на этой страничке, а также особенности работы с программой.

1.Чекбокс "Eeprom Mode". Если его отметить и выйти в главное окно, нажав "OK", то действия Read-Write-Verify будут производиться с EEPROM МК и заголовок вверху сменится с "Atmel AVR FLASH" на "Atmel AVR EEPROM". Иначе, если чекбокс не отмечен, Read-Write-Verify производится с памятью Flash. Это может показаться неудобным, особенно при ремонте стиральных машин, где требуется считывать и записывать обе области - Flash и EEPROM. Однако, такова концепция программы, рассчитанной на работу с одним файлом в одно время. По спецификации Atmel содержимое Flash и EEPROM хранится в двух разных файлах, попытка одновременной работы с ними вносит большую путаницу. Переключение кнопкой на главном окне программы также нарушало бы концепцию, поэтому переключатель находится именно в окне установок Atmel.

2. Чекбокс "Ignore Signature". Программа меняет некоторые настройки, связанные с типом МК, на стандартные в момент определения сигнатуры (если определена и совпала с известной), даже если установлен режим "Manual". Иногда это нежелательно. Тогда следует отметить этот чекбокс, и программа не будет менять установки автоматически.

3. Чекбокс "No Retry". Программа пытается считать сигнатуру, в том числе, и для 8051-совместимых МК. Протокол у них другой, а посылка данных в их формате может дать отрицательный эффект на некоторые МК Atmel, которые вошли в ISP, но не выдали сигнатуру (в связи с этим у контроллеров Atmel возможно возникновение ошибок). Если подключается контроллер неизвестной ревизии и есть проблемы, то можно попробовать отметить этот чекбокс.

4. Чекбокс "Wait2X". Некоторые типы задержек в программе предустановлены, а некоторые меняются в зависимости от скорости. Задержки для всех операций (в основном,стирание и запись) установлены с 2-кратным запасом для повышения надежности. Тем не менее, возможны ситуации, когда придется отметить этот чекбокс, чтобы удвоить и без того большие задержки.

5. Чекбоксы "SPI Mode 1", "89S", "3byte" устанавливаются программой автоматически для 8051-совместимых МК, например, "3byte" означает обмен по 3 байта вместо 4-х байт на команду у всех остальных. Управление чекбоксами доступно, но имеет факультативный характер, так как влияет на физический протокол обмена.

6. Группа "Flash Size". Можно установить общий размер секции Flash, размер страницы, записываемой за одну операцию, и использование команды расширения адреса. Это имеет смысл для неизвестных программе типов МК. Следует различать Page=0 и Page=1. В первом случае используется команда прямой записи одного байта, а во втором - загрузка в буфер одного байта и подача команды записи буфера.

7. Группа "Eeprom Size".То же, что и "Flash Size" для своей секции.

8. Группы "Lock bits", "Calibration"не требуют комментариев. Программа сохраняет значения, чтобы их не ставить при запуске каждый раз.

9. Группа "Fuses to Write". По типу МК программа открывает доступные ячейки для записи. Чекбоксами справа отмечаются ячейки, которые запишутся по кнопке "Write Fuses". Программа перед записью конфигурационных байтов запросит подтверждение. Если производится попытка переназначить RESET - программа выведет еще одно предупреждение (для распространенных контроллеров). Программа сохраняет установленные значения.

10. Чекбокс "Use Low Speed" (для USB-варианта). USB-программатор использует две независимые реализации протокола для Atmel. Одна использует аппаратный SPI, другая - программный, который умеет снижать скорость в достаточной степени. Удобнее отметить чекбокс - будет использоваться программный SPI, лучше управляемый по скорости. Скорость в этом случае выбирается в открывшемся выпадающем списке.

Установив все необходимые настройки, нажимают "OK" и возвращаются к предыдущему окну (вкладка "Other"). Здесь можно просмотреть выпадающий список МК, новые типы микроконтроллеров при обновлении добавляются вниз списка. МК с одинаковыми параметрами программирования по возможности сводятся в один пункт, но по сигнатуре будет показан точный тип. Также можно установить скорость обмена (если используется аппаратный SPI) и для LPT-программатора - способ подключения. Нажимают "OK" и возвращаются к главному окну программы. В случае LPT-варианта программатора, если ранее был включен режим "Other", то при нажатии "OK" активируется низкий уровень на линиях SCK и RESET (либо высокий - если выбран 8051-совместимый тип МК), либо это произойдет сразу при переключении на режим "Other". Это сделано для того, чтобы при манипуляциях с настройками и выходе из них МК не вышел из ISP.

В USB-варианте при подключении к ПК все линии неактивны. Инициализация режима работы с Atmel происходит только после первого нажатия "Set ISP" или "Reset".

Необходимо пояснить логику работы кнопки "Reset" в главном окне программы для режима Atmel. Она "отпускает" линию сброса МК, поэтому он выходит из ISP и начинает выполнение своей программы. В то же время на линию SCK подается низкий уровень, если целевой МК попытается ею управлять - возникнет конфликт. Назначение кнопки "Reset" - нажимать следом за ней "Set ISP" при плохом соединении с МК. Чтобы полностью освободить все линии USB-программатора, достаточно нажать кнопку "Reset" из другого режима главного окна, например, "I2C eeprom".

При нажатии кнопки "Set ISP" в главном окне программы программатор пытается разными способами получить ответ от подключенного МК, манипулируя всеми доступными линиями. Если ответ получен - происходит чтение сигнатуры и установка параметров по сигнатуре. Иногда ответ получить невозможно, а МК все-таки подключился. Чтобы это проверить, нажимают кнопку "Status".

Иногда МК Atmel могут "вываливаться" из ISP (например, после чтения конфигурации) и требуется повторное подключение кнопкой "Set ISP".

После успешного подключения к МК дальнейшие действия особенностей не имеют - можно считывать и записывать (Read-Write-Verify) память, менять конфигурацию (fuses). При чтении создается временный бинарный файл, который тут же конвертируется в выходной hex-файл. При записи hex-файл также автоматически конвертируется. Для разработчиков, которые постоянно что-то правят и тут же загружают, не отключая программатора, предусмотрена дополнительная опция: на настроечной вкладке "Misc" можно отметить чекбокс "AVR Write Reload HEX" - тогда по нажатию кнопки "Write" будет перезагружаться и конвертироваться исходный hex-файл.

 

Особенности работы при программировании МК в составе ЭМ стиральной машины

Несмотря на то, что вход RESET замкнут на GND, МК должен успешно входить в ISP (программа определяет тип микроконтроллера) по кнопке "Set ISP". Подобную операцию в качестве проверки можно провести несколько раз, отключая USB-программатор от ПК и обесточивая тем самым МК. Если это не удается сделать, а подключение линий выполнено правильно, тогда после очередного нажатия "Set ISP" разрывают перемычку RESET-GND, не отключая программатора от USB.Теперь линией RESET управляет программатор, он будет "отпускать" линию на короткое время. Проверяют, работает ли в данном режиме программатор - вводят МК в ISP. Резистор SCK-GND в этом случае убирать не нужно. Нажимать в данном случае кнопку "Reset" (в главном окне программы) также не нужно. Если получить ответ от МК не удается, значит, либо микроконтроллер до такой степени неисправен (проверить тактовую частоту на резонаторе), либо необходимо сначала потренироваться на чем-нибудь другом. Будем считать, что все прошло успешно, и МК выдал свою сигнатуру.

В первую очередь, необходимо считать внутреннюю память EEPROM (переключить программу в этот режим), поскольку именно ради сохранения этой области в неизменном виде и требуется перемычка RESET-GND. После успешного чтения EEPROM переключаются на память Flash и производят ее чтение. Просмотрев прочитанное (hex-файл можно посмотреть блокнотом как текст), убеждаются, что там вменяемый код, а не перебор цифр (в данном случае необходим некоторый опыт). Также необходимо еще прочитать байты конфигурации (fuses). Они выводятся в окно лога в текстовом виде, нужно просто скопировать их в блокнот и сохранить. Если следующим шагом будет замена МК на новый (например, из-за пробоя вывода порта), отключают программатор от USB-интерфейса (программируемая плата обесточивается). Затем заменяют МК на плате (перепаивают), перемычку RESET-GND ставить больше не нужно. Следующим шагом подключают программатор к USB-порту ПК и логически соединяются с новым МК. Сначала программируют область памяти Flash, затем конфигурацию (FUSES, вводят в ячейки из блокнота) и в последнюю очередь - EEPROM, чтобы сразу после верификации отключить программатор от USB и не дать МК случайно испортить содержимое EEPROM. На этом восстановление ЭМ закончено.

При программировании МК отмеченный чекбокс "Auto" в главном окне программы влияет на работу программы следующим образом: если выполняется запись Flash-памяти - происходит предварительное стирание чипа(обычно вместе с EEPROM), однако при записи области памяти EEPROM не происходит повторного стирания, а только верификация. Это нужно учитывать при последовательной записи обеих областей памяти - сначала должна записываться Flash-память.

В принципе, программатор подробно комментирует в лог свои действия, и очень быстро можно научиться понимать, что происходит.

За всеми будущими улучшениями программы можно наблюдать на техническом форуме МОНИТОР [4].

Литература и интернет-ресурсы

1. Владимир Сендер. Postal programmer - "умный" программатор. USB-версия, описание и режимы I2C EEPROM, SPI-FLASH. Ремонт & Сервис, №3, 2014.

2. Денис Финкевич. Postal programmer - "умный" программатор. Восстановление программного обеспечения ЖК телевизоров на основе процессоров семейства MICRONAS VCT49хх на примере "Horizont 32LCD825". Ремонт & Сервис, №5, 2014.

3. Валерия Ершова (г. Москва). Postal programmer - "умный" программатор. Работа с гамма-корректором MAX96XX и контроллером клавиатуры ноутбуков KB9012. Ремонт & Сервис, №7, 2014.

4. http://monitor.net.ru/forum/ postal23-info-317755.html

5. http://www.atmel.com/default. aspx

Автор: Валерия Ершова (г. Москва)

Источник: Ремонт и сервис


Рекомендуем к данному материалу ...

Мнения читателей

Нет комментариев. Ваш комментарий будет первый.

Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:

Поля, обязательные для заполнения