В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > ARM
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


22. Стартовый загрузчик AT91SAM7 (бут загрузчик)

22.1 Описание

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

В первую очередь он инициализирует последовательный порт отладчика DBGU и порт USB контроллера.

Далее запускается SAM-BA™, ожидающий обмена через USB или последовательный порт DBGU.

22.2 Работа бут загрузчика

Работу бут загрузчика поясняют рис.22-1 и рис.22-2.

Работа бут загрузчика при наличии USB
Рис.22-1. Работа бут загрузчика при наличии USB

Работа бут загрузчика при отсутствии USB
Рис.22-2. Работа бут загрузчика при отсутствии USB

22.3 Инициализация микроконтроллера со встроенным USB-портом

Инициализация происходит в следующей последовательности:

  1. инициализация FIQ
  2. инициализация стека для режима супервизора ARM
  3. установка контроллера встроенной Flash памяти
  4. проверка наличия внешнего тактового генератора
  5. определение частоты основного тактового генератора в случае отсутствия внешнего
  6. включение основного тактового сигнала от основного тактового генератора
  7. копирование кода в SRAM
  8. инициализация переменных
  9. установка ФАПЧ: ФАПЧ инициализируется для получения частоты 48 МГц необходимой для работы USB
  10. запрет Watchdog-а и разрешение пользовательского сброса
  11. инициализация USB порта
  12. выполнение загрузки SAM-BA (см. пункт 22.5)

22.4. Инициализация микроконтроллера без встроенного USB-порта

Инициализация происходит в следующей последовательности:

  1. инициализация FIQ
  2. инициализация стека для режима супервизора ARM
  3. установка контроллера встроенной Flash памяти
  4. проверка наличия внешнего тактового генератора
  5. определение частоты основного тактового генератора в случае отсутствия внешнего
  6. включение основного тактового сигнала от основного тактового генератора
  7. копирование кода в SRAM
  8. инициализация переменных
  9. установка ФАПЧ: ФАПЧ инициализируется для получения частоты 48 МГц
  10. запрет Watchdog-а и разрешение пользовательского сброса
  11. выполнение загрузки SAM-BA (см. пункт 22.5)

22.5. Загрузка SAM-BA.

При загрузке SAM-BA производится

  • ожидание на время определения USB устройств
  • автоматическое определение скорости работы (см. рис.22-3)
  • с момента определения интерфейса связи программа работает в бесконечном цикле до появления команд, указанных в таблице 22-1

Автоматическое определение скорости работы
Рис.22-3. Автоматическое определение скорости работы

Таблица 22-1. Исполняемые команды SAM-BA загрузчика

Команда Действие Агрумент(ы) Пример
0 Запись байта Адрес, Значение* 0200001 ,CA#
0 Чтение байта Адрес,* o200001 ,#
H Запись половины слова Адрес, Значение * H200002,CAFE#
h Чтение половины слова Адрес,* h200002,#
W Запись слова Адрес, Значение * W200000,CAFEDECA#
w Чтение слова Адрес,* w200000,*
S Отправка файла Адрес,* S200000,*
R Прием файла Адрес, NbOfBytes* R200000,1234#
G переход Адрес * G200200*
V Показать версию Нет аргумента V*

Команды записи: Запись байта (О), половины слова (Н) или слова (W).

  • Адрес: Адрес в шестнадцатеричной форме.
  • Значение: байт, половина слова или слово в шестнадцатеричной форме.
  • Выход:`>`.

Команды чтения: Чтение байта (o), половины слова (h) или слова (w).

  • Адрес: Адрес в шестнадцатеричной форме.
  • Выход: байт, половина слова или слово в шестнадцатеричной форме после`>`.

Отправить файл (S): Отправить файл по указанному адресу.

  • Адрес: Адрес в шестнадцатеричной форме.
  • Выход:`>`.

Замечание. Выполнение этой команды завершается при появлении приглашения `>`.

Прием файла (R) : Прием данных в файл начиная с указанного адреса.

  • Адрес: Адрес в шестнадцатеричной форме.
  • NbOfBytes: число байт для приема в шестнадцатеричной форме.
  • Выход :`>`.

Переход (G): переход к указанному адресу и исполнение кода программы.

  • Адрес: Адрес перехода в шестнадцатеричной форме.
  • Выход :`>`.

Показать версию (V): выдача версии загрузчика SAM-BA.

  • Выход:`>`.

22.5.1 Последовательный порт отладчика DBGU

Связь осуществляется через последовательный порт DBGU на скорости 115200 Бод при 8 битах данных, бите нечетности и одним стоп бите.

Команды отправки / приема файла используют протокол обмена Xmodem. Для передачи исполняемого файла можно использовать любой терминал, поддерживающий данный протокол. Размер бинарного файла зависит от объема встроенной SRAM. В любом случае размер бинарного файла должен быть меньше объема SRAM, так как протокол Xmodem использует часть SRAM для своей работы.

22.5.2 Протокол Xmodem

Протокол Xmodem поддерживает блоки размером 128 байт. Этот протокол применяет двухбайтное контрольное поле CRC-16 для определения максимального числа битовых ошибок.

Xmodem протокол вместе с контрольным полем CRC обеспечивает надежный прием и передачу пакетов. Каждый передаваемый пакет имеет структуру

<255-blk #><--128 байт данных--><контрольная сумма> , где

  • SOH> = 01 hex;
  • <blk #> = бинарный номер, начинается с 01, увеличивается на 1, и находится в границах от OFFH до 00H (кроме 01);
  • <255-blk #> = дополнительный код blk#.
  • < контрольная сумма > = 2 байта CRC16

На рис.22-4 показана схема обмена по протоколу Xmodem.

Пример обмена по протоколу Xmodem
Рис. 22-4. Пример обмена по протоколу Xmodem

22.5.3 USB порт микроконтроллера

Для работы USB порта требуется наличие тактового сигнала 48 МГц, который программируется при инициализации конфигурированием PLLB.

Микроконтроллер использует драйвера USB устройств класса CDC (communication device class), чтобы пользоваться преимуществом применения программного обеспечения обмена по протоколу RS232 через USB. Драйвера CDC класса поддерживаются всеми версиями Windows®, начиная с Windows98SE и включая WindowsXP. Документ по CDC, доступный на www.usb.org, описывает способы реализации устройств, таких как ISDN модемы и виртуальные COM-порты.

Идентификатор производителя для фирмы Atmel 0x03EB. Идентификатор микроконтроллера 0x6124. Эти идентификаторы используются управляющими операционными системами для установки необходимых драйверов. В Windows системах INF файлы содержат соответствия между идентификатором производителя и идентификатором изделия.

Фирма Atmel предоставила пример INF файла, в котором микроконтроллер определяется как дополнительный последовательный порт, а также специальный драйвер, использующий SAM-BA приложение: atm6124.sys. Дополнительная информация приведена в документе "USB Basic Application", под номером 6123.

22.5.3.1 Процесс перечисления (регистрация устройств USB)

USB-протокол является протоколом master/slave. При этом управляющее устройство host начинает "перенумерацию", посылая запросы внешнему устройству через управляющую конечную точку. Микроконтроллер использует стандартные запросы согласно USB спецификации.

Таблица 22-2. Используемые стандартные запросы

Запрос Определение
GET_DESCRIPTOR Возвращает конфигурационное значение текущего устройства.
SET_ADDRESS Устанавливает адрес устройства для последующего доступа.
SET_CONFIGURATION Установка конфигурации устройства.
GET_CONFIGURATION Возвращает конфигурационное значение текущего устройства.
GET_STATUS Возвращает статус выбранного получателя.
SET_FEATURE Установка/разрешение специальных признаков.
CLEAR_FEATURE Сброс/запрет специальных признаков.

Микроконтроллер использует некоторые запросы, определенные в CDC классе.

Таблица 22-3. Используемые запросы CDC класса

Запрос Определение
SET_LINE_CODING Устанавливает скорость DTE, стоп бит, четность и число передаваемых бит.
GET_LINE_CODING Запрос скорости DTE, стоп бита, четности и числа передаваемых бит.
SET_CONTROL_LINE_STATE RS-232 используется для сообщения DCE устройству, что DTE устройство присутствует.

Неиспользуемые запросы заблокированы.

22.5.3.2 Соединение через конечные точки

Имеется две конечные точки для организации связи и конечная точка 0, используемая в процессе перенумерации. Конечная точка 1 - это 64 байтная передающая (Bulk OUT) конечная точка, Конечная точка 2 - это 64 байтная приемная (Bulk IN) конечная точка. Команды SAM-BA загрузчика посылаются host-ом через конечную точку 1. Если требуется, то сообщение разделяется host-ом на несколько частей.

Если команда требует ответа, host может послать IN транзакцию для получения ответа.

22.6 Программные и хардварные ограничения

SAM-BA загрузчик копирует себя в память SRAM и использует часть внутренней SRAM для хранения переменных и стека. Остальное пространство памяти отведено для пользователя и составляет:

  • 57344 байт для AT91SAM7S256,
  • 24576 байт для AT91SAM7S128,
  • 8192 байт для AT91SAM7S64,
  • 2048 байт для AT91SAM7S321 и AT91SAM7S32.

Требования по USB (кроме AT91SAM7S32).

  • Частота кварцевого генератора18.432 МГц
  • Специальный USB вывод PIOA16 должен быть подтянут к VDDIO.

Таблица 22-4. Адресное пространство пользователя

Контроллер Начальный адрес Конечный адрес Размер (байт)
AT91SAM7S256 0x202000 0x210000 57355
AT91SAM7S128 0x202000 0x208000 24576
AT91SAM7S64 0x202000 0x204000 8192
AT91SAM7S321 0x202000 0x210000 2048
AT91SAM7S32 0x201400 0x201C00 2048

Таблица 22-5. Выводы, используемые при бут загрузке

Периферия Вывод PIO цепь
DBGU DRXD PA9
DBGU DTXD PA10


<--Предыдущая страница Оглавление Следующая страница -->