Прошивка LPC2xxx по последовательному порту

Микроконтроллеры NXP LPC2xxx имеют встроенный загрузчик, позволяющий прошивать память программ (flash) через последовательный порт (UART).

Для входа в режим загрузчика во время аппаратного(?) сброса на определённых ногах микроконтроллера должны присутствовать логические уровни:

  • Ноль на P0.14 для LPC210x
  • Ноль на P2.10 для LPC2368, LPC2478

LPC21ISP

Наиболее оптимальный вариант для прошивки микроконтроллераконтроллера через последовательный порт - воспользоваться консольной программой lpc21isp.

Сборка приложения проста и осуществляется одной командой make.

Использование программы так же не должно вызвать проблемм:

./lpc21isp -control -verify lpc2368_blink.hex /dev/ttyS0 57600 12000

Здесь ключ -control указывает, что линии DTR и RTS управляет сбросом и вводом процессора в режим загрузчика соответственно.

Ключ -verify заставляет сделать проверку правильности записи flash.

Далее следуют:

  • lpc2368_blink.hex - имя файла прошивки.
  • /dev/ttyS0 - порт к которому подключён микроконтроллер.
  • 57600 - скорость в бодах на которой будет идти обмен с МК.
  • 12000 - тактовая частота МК в КГц (например кварцевого резонатора).

Ключ -term позволяет сразу после прошивки войти в режим терминала. Понадобится это может в том случае, если МК использует тот же порт для программирования и для вывода какой-то отладочной информации или диалога с пользователем.

./lpc21isp -control -term lpc2368_blink.hex /dev/ttyS0 57600 12000

Вы можете скачать простейший пример для того, что бы попробовать lpc21isp

  • lpc2368_blink.hex.gz - готовый бинарник (Собирался с помощью тулчейна от [[soft:arm-toolchain|CodeSourcery]]).
  • lpc2368-blink.tar.gz - исходный код.

Пример мигает светодиодами подключёнными к портам с P0.4 по P0.7 (4шт.) и посылает строку со счётчиком в UART0.

 
comments powered by Disqus