Bootloader для pic (прошиваем pic через UART)

Некоторые pic с завода идут с загруженным бутлеудером (Bootloader, Boot load), поэтому их можно прошивать без программатора!!!
Ещё одним огромным плюсом является то, что – чтобы обновить прошивку или полностью перепрошить микроконтроллер, уже впаянный в схему, достаточно подключится к нему через UART – два проводка TX и RX!!!
Воспользуемся загрузчиком – TINY BOOTLOADER — один из самых популярных загрузчиков для микросхем PIC 16F и 18F.
Для примера запрограммируем микроконтроллер – Pic16f877a.
Также будлеудер прошивки есть для:

pic16f88 pic16f876a pic16f870 pic16f873 pic16f873a pic16f886 pic16f887 pic16f887a

pic18f4680 pic18f4525 pic18f32 pic18f64 pic18f4680 pic18f1x20 pic18f258 pic18f1320 pic18f2420 pic18f2550 pic18f2620 pic18f2685 pic18f4320 pic18f4620 pic18f6621 pic18f8680
и др.

—————————————————

Вот как выглядит бутлаудер записанный на pic, если его прочитать программатором:

Первые 4 слова во флэш-памяти (от 0x000 до 0x003) содержат переход к загрузчику.
Установка загрузчика означает, что часть памяти будет занята загрузчиком. Пользователь может загрузить свою программу в оставшееся пространство памяти. Загрузчик на рисунке выше занимает 256 слов (от 0xF00 до 0xFFF), то есть где-то в среднем 6 % памяти. Недостаток в виде потери 6 % памяти незначителен по сравнению с преимуществом быстрой загрузки программы.

————————————————-
1. Устанавливаем ОС Windows XP можно использовать другую (если нету)

“микроник.рус/windows-xp/”

Можно использовать и Linux систему, вот пример Linux Rosa Fresh R12 – запускаем Tiny Multi Bootloader Plus (v0.14.6.5) более подробно здесь:
“gameforstreet.ru/linux-rosa-fresh-r12-zapuskaem-tiny-multi-bootloader-plus-v0-14-6-5/”

2. Скачиваем файл tinybld_16F876A_20MHz.HEX и прошиваем его в pic16ff877a

Скачать загрузчик TINY PIC BootLoader и прошивки BootLoader для pic:
Скачать файлы.

Распакуйте загруженный TINY PIC BootLoader. В папке с названием «picsource» находятся шестнадцатеричные файлы загрузчика для микросхем PIC16F и PIC18F. Выберите 16f, а затем выберите шестнадцатеричный файл «tinybld_16F876A_20MHz.HEX».
Это прошивка загрузчика, совместимая с PIC16F877A. Важно выбрать частоту кварцевого резонатора 20 МГц и убедиться, что на целевой плате используется кварцевый резонатор с такой же частотой 20 МГц.

Микроконтроллер pic прошиваем любым JDM программатором.
Я прошивал самодельным JDM программатором состоящим из двух стабилитронов по 5 В, двух транзисторов, диодов, конденсаторов и резисторов, более подробно здесь:
“gameforstreet.ru/pic-jdm-prostejshij-programmator-dlya-pic-mk/”

Программу для прошивки pic микроконтроллера использовал:
– PICPgm (winpicpgm_v1570) скачать можно здесь: “gameforstreet.ru/proga-picpgm/”
– или проги IC-Prog 1.05E: скачать программу IC-Prog Software вместе с драйвером для windows XP можно с моего сайта – здесь. Просто распаковываем и запускаем прогу .

3. Собираем схему для передачи по UART

4. Запускаем программу TINY BOOTLOADER (tinybldWin.exe)

«tinybldWin» — это приложение для Windows, с помощью которого можно загрузить файл HEX в микросхему PIC16F877A по UART.

Нажмите кнопку CHECK PIC. И программа должна обнаружить и отобразить информацию о вашем pic16f877a. Скорость передачи данных по умолчанию составляет 115200.

Вы также можете нажать кнопку «Поиск» (Search), чтобы найти порт, к которому подключена целевая плата.

Далее выбираем hex файл, который нужно прошить в микроконтроллер – жмем кнопку Browser.

В видео я выбрал hex файл – allleds_16 – он мигает светодиодами на всех ножках – с ним нужно быть поосторожнее, так как нужно отключить провода с Тх и Rx от микроконтроллера – так как на все ножки будет поступать +5 В – а это может плохо сказаться для Тх и Rx…

Скачать его можно здесь – только не забудьте отсоединить Тх и Rx от микроконтроллера:
– скачать в формате zip
– скачать в формате tar.gz

—————————————–

Немного переделал файл allleds_16 – оставил только PORTA – то есть светодиоды будут мигать только на ножках 2-7.
Скачать измененный файл allleds_16.hex для прошивки можно здесь:
– скачать в формате zip
– скачать в формате tar.gz

—————————————–

Видео-инструкция:

“rutube.ru/video/7c8bf2b64dbdf3b767f9cc398da25f53/”

Примечание 1.

——————————————————-
Как прошивать с помощью проги IC-Prog:

Скачать программу IC-Prog Software вместе с драйвером для windows XP можно с моего сайта – здесь. Просто распаковываем и запускаем прогу .

Или с официального сайта: сначала заходим на этот сайт http://www.ic-prog.com/ и из раздела DOWNLOAD скачиваем: IC-Prog Software 1.05E Multi-Lingual и не забываем скачать IC-Prog NT/2000 driver, который обеспечивает правильную работу программы под Win XP. Скачали, создаём на вашем жестком диске папку IC-Prog и распаковываем в неё оба архива. Запускаем IC-Prog.

При первом запуске, появится сообщение об ошибке, игнорируем его и переходим к конфигурации программы.

Выберите “Settings” >> “Options” >> вкладку “Language” >> установите язык “Russian” и нажмите “Ok”.

Согласитесь с утверждением “You need to restart IC-Prog now” (нажмите “Ok”).

Оболочка программатора перезапустится.
Заходим в “Settings” (Настройки) -> “Options” (Опции), далее делаем активной закладку “Общие” (“Misc”). В активном окне, выставляем галочки опциям “Enable NT/2000/XP Driver” и “Enable VCC control for JDM”.

Жмём ОК и программа должна перезапуститься. Если она не перезапустилась, выходите из программы и запускаете её заново. При повторном запуске сообщение об ошибке должно исчезнуть. Далее переходим к установкам самого программатора. Тип программатора выбираете как JDM

Programmer, интерфейсом указываете Windows API, ну и не забудьте правильно указать номер COM порта, к которому вы подключили спаянный программатор.

Всё, все подготовительные процедуры закончены, и можно переходить непосредственно к программированию. Вставляйте в панельку вашу микросхему(PIC16F630), в верхнем правом углу, в ниспадающем меню выбирайте тип программируемого микроконтроллера ” PIC16F630″ и нажимайте на кнопку “Прочитать схему” “Read All”(кнопка с изображением микросхемы и большой зелёной стрелки). Если вы спаяли схему с двумя светодиодами (один горит при включении питания, второй срабатывает при чтении/записи в микроконтроллер), то один из светодиодов должен заморгать, что говорит о правильности работы всей вашей схемы. По завершении считывания данных, вы увидите на экране код состоящий из сплошных “3FFF”. Перематываем на последнюю строчку и записываем (или запоминаем) последние четыре знака. Они должны отличаться от “3FFF” и в разных контроллерах это значение будет разным. Если же последние четыре знакоместа не отличны от “3FFF”, то значит у вас проблемы с программатором или даже с PIC-ом.

Если с этим всё в порядке, то продолжим процедуру. Заходим в “File” -> “Open” и загружаем нужную вам прошивку (файл должен быть с расширением HEX). Далее жмём кнопку “Program All”(находится рядом с кнопкой “Read All” и выглядит как микросхема с жёлтой молнией).

Программа поинтересуется у вас, действительно ли вы хотите запрограммировать устройство? Смело отвечайте “YES”.

Далее произойдёт считывание данных с вашего PIC-а, и программа снова задаст вопрос:
хотите ли вы использовать данные из файла с прошивкой? ВНИМАНИЕ!!! Тут надо ответить “NO”, ибо, дав положительный ответ(“YES”), вы перезапишите те самые последние четыре знакоместа(OSCCAL) и выведите микроконтроллер из строя. (Конечно это не большая беда, и всё можно вернуть обратно, ведь вы записали эти важные четыре символа.) Но вы же ответили “NO”, и программа начала записывать в ваш PIC прошивку. По завершении записи обязательно идёт проверка, и если по её завершении, никаких сообщений об ошибках не последовало, то можете поздравить себя. Вы всё сделали как надо и запрограммировали микроконтроллер. Теперь нужно запаять его в правильное место и наслаждаться проделанной работой.
———————————————————————

Добавить комментарий