Karma-SAM3S. Как прошить ARM от Atmel. Ч1

27/03/2014 - 17:13 Pavel Bobkov

Введение

Первым камнем преткновения на пути изучения любого микроконтроллера стоит проблема его прошивки. Обычно она решается покупкой программатора (или отладчика), но если микроконтроллер имеет встроенный загрузчик, на первых порах можно обойтись без него. 

В этом материале я как раз расскажу, как прошить микроконтроллер SAM3S4B с помощью загрузчика на примере платы Karma-SAM3S. Описанную процедуру можно будет применить и к остальным ARM`ам фирмы Atmel, хотя могут быть небольшие отличия.

Встроенный загрузчик

Микроконтроллеры серии SAM3S имеют встроенный загрузчик, который позволяет записывать прошивку по USB или UART0 без применения дополнительного оборудования. Загрузчик хранится в постоянной памяти (ROM) и его нельзя стереть. 

Чтобы микроконтроллер запустил при старте загрузчик, нужно кратковременно нажать на кнопку ERASE (на время большее 200 мс), а затем сбросить микроконтроллер. Это можно сделать, дергая выключатель питания или с помощью кнопки RESET. Оба варианта дадут одинаковый результат - микроконтроллер очистит флэш память, сбросит бит, определяющий источник загрузки, и при следующем запуске загрузится из ROM.



Для загрузки прошивки по USB к тактовой частоте микроконтроллера SAM3S предъявляются определенные требования. Микроконтроллер должен тактироваться от кварцевого резонатора с частотой 11,289; 12,00; 16,00 или 18,432 МГц. При загрузке прошивки по UART0 никаких требований нет. 


На плате Karma-SAM3S установлен кварц с частотой 12 МГц. С таким кварцевым резонатором плата стабильно прошивается. 

Программы для прошивки

Для начала нам нужно установить на компьютер одну из утилит, позволяющих загружать прошивку. На сегодняшний день мне известно только две таких утилиты - SAM-BA и BOSSA. 

SAM-BA - это официальная программа фирмы Atmel, которая поддерживает все их ARM микроконтроллеры - SAMA5, SAM3, SAM4, SAM7 и SAM9. Скачать SAM-BA можно на сайте Atmel, но предварительно нужно зарегистрироваться. Также на сайте есть описание SAM-BA.

BOSSA - это неофициальная программа, созданная каким-то энтузиастом. Список поддерживаемых микроконтроллеров у нее небольшой, но SAM3S4B она поддерживает. Скачать BOSSA можно здесь. На сайте автора есть подробное описание BOSSA.

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

Я попробовал обе программы и пока остановил свой выбор на BOSSA. Она занимает мало места, у нее простой интерфейс и она стабильнее работает. Но SAM-BA в любом случае нужно скачать, чтобы установить USB драйвер для микроконтроллера SAM3S4B. 

Далее речь пойдет о работе в ОС Windows. 

Прошивка с помощью SAM-BA

После скачивания и установки программы SAM-BA и патча, нужно поставить драйвера. Если загрузка прошивки будет выполняться по USB, то процедура выглядит следующим образом. 

Подсоединяем плату Karma-SAM3S к компьютеру по USB (этот разъем на плате подписан). Подаем питание, кратковременно нажимаем кнопку ERASE, а затем RESET. Микроконтроллер запустит загрузчик, а операционная система обнаружит новое устройство и начнет поиск драйверов. 

Драйвера лежат в папке, куда была установлена программа SAM-BA. Например у меня путь к драйверам такой: C:\Program Files (x86)\Atmel\sam-ba_2.12\drv

В идеале операционная система сама найдет нужные драйвера и через некоторое время в диспетчере устройств в разделе порты появится AT91 USB to Serial Converter. Однако, скорее всего придется указывать путь вручную. 

at91-usb-serial-converter
Для загрузки прошивки через USB-UART преобразователь, установленный на плате Karma-SAM3S, нужно поставить драйвера для микросхемы CP2102. Их можно скачать с сайта производителя - SiLabs.

at91-usb-serial-converter

Когда драйвер установлен, можно запускать программу SAM-BA. 


При запуске SAM-BA появится окно, в котором нужно выбрать порт и тип платы. Если не знаете номер порта, то его можно посмотреть в диспетчере устройств. Тип платы нужно установить такой - at91sam3s4-ek.


После нажатия кнопки Connect должно появится основное окно программы SAM-BA. Если этого не произошло или открылось окно с предупреждениями - перезагрузите микроконтроллер и снова запустите SAM-BA.


Чтобы загрузить прошивку, на вкладке Flash кажите путь к файлу и нажмите на кнопку Send File. Обратите внимание файл прошивки имеет расширение bin. 


Когда прошивка будет загружаться, откроется окно Lock region(s), которое предложит установить Lock биты для защиты флэш памяти. Нажимаем нет. 


Когда загрузка завершится, запускаем скрипт Boot from Flash (GPNVM1), чтобы микроконтроллер запускался из флэш памяти, и нажимаем на плате кнопку Reset. 

Все, микроконтроллер будет выполнять записанную в него программу.


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

Прошивка с помощью BOSSA

Устанавливаем программу BOSSA и драйвера (описано выше). 

Подключаем плату Karma-SAM3S к компьютеру, используя один из USB разъемов. Активируем загрузчик микроконтроллера и запускаем программу BOSSA. 

Нажимаем кнопку Auto-Scan, чтобы BOSSA установила связь с загрузчиком микроконтроллера. Если это удалось, то внизу программы отобразится статус "Connected" и микроконтроллер, который определился, - "ATSAM3S4". Если связь не установилась, нужно сбросить микроконтроллер и снова нажать Auto-Scan. 

Также можно выбрать последовательный порт вручную. 

Далее указываем путь к прошивке (*.bin) и нажимаем Write. Начнется загрузка. 


По окончании загрузки программа выдаст информационное сообщение "Write completed successfully". Закрываем это окошко, а затем сбрасываем микроконтроллер кнопкой RESET. Все, микроконтроллер будет выполнять записанную в него программу. 

Для повторной записи прошивки нужно активировать загрузчик микроконтроллера и нажать в программе BOSSA кнопку Auto-Scan. Если BOSSA не подключится к загрузчику с первого раза, нужно сбросить его и снова нажать Auto-Scan. Как правило, со второго раза программа устанавливает связь. 

Ссылки

Описание платы Karma-SAM3S
Скачать SAM-BA для ARM
Скачать BOSSA для ARM
Скачать драйвер для CP2102

Comments   

# Pashgan 2014-03-29 20:26
Походу я тут один любитель Atmel`a.
# Pyku_He_oTTyda 2014-03-30 05:01
Нет, не один!
# frolikum 2014-03-31 05:52
Да просто у многих уже сложилась устойчивая связь 32битный МК - STM32. Вот пример:

# vovanxp 20.03.2014 08:28
Ну наконец то STM32. Будем ждать интересных публикаций.Ужа многие перешли на STM32.

С вашего же портала.
Я точно переходить на SAM не буду и не потому что не нравятся, я их просто не пробовал, а исходя из коммерческих соображений и доступности МК в моей местности. Да и отлдочная плата у китайцев куплена за 30$ по характеристикам превосходящая КАРМА, и там STM32 - но почитывать про КАРМА и SAM буду для общей осведомлённости и свежей идеи.
# Pashgan 2014-03-31 15:03
Комментарий относился к фотографии в конце поста. Впрочем ладно..

У вас недостаточно прав для комментирования.