Для электронщиков и радиолюбителей

Начало работы с микроконтроллерами AT32F435/437: общие сведения

Начало работы с микроконтроллерами AT32F435/437: общие сведения

Микроконтроллеры AT32F435 и AT32F437 от ARTERY представляют собой мощные решения для широкого спектра встраиваемых приложений. В этой статье мы подробно рассмотрим, как начать работу с этими микроконтроллерами, начиная с настройки среды разработки и заканчивая решением распространённых проблем.

Введение в AT32F435/F437

AT32F435 и AT32F437 — это высокопроизводительные микроконтроллеры на ядре Cortex-M4 с поддержкой FPU (блока вычислений с плавающей точкой). Основное отличие между ними заключается в наличии EMAC (Ethernet MAC) в AT32F437, что делает его идеальным выбором для сетевых приложений.

Эти микроконтроллеры предлагают:

  • Высокую тактовую частоту
  • Большой объём Flash-памяти и SRAM
  • Расширенные периферийные интерфейсы
  • Поддержку аппаратного шифрования
  • Гибкие варианты корпусов

Настройка среды разработки

1. Оборудование и инструменты

Для начала работы вам понадобится:

  • Отладочная плата: например, AT-START-F437 (включает встроенный AT-Link-EZ для отладки)
  • Программаторы: AT-Link, AT-Link+, AT-Link-Pro или AT-Link-ISO
  • Программное обеспечение: ICP/ISP программировщики от ARTERY

2. Установка программного обеспечения

  1. Загрузка BSP (Board Support Package):
    • Доступен на официальном сайте ARTERY (раздел Products → High performance → AT32F4xx → BSP)
    • Включает шаблоны проектов для Keil, IAR, Eclipse GCC и AT32 IDE
  2. Установка PACK-файлов:
    • Для Keil: установите ArteryTek.AT32F435_437_DFP
    • Для IAR: установите IAR_AT32MCU_AddOn
    • PACK-файлы доступны на сайте ARTERY в разделе PACK

3. Настройка отладки с AT-Link

Для отладки в Keil:

  1. В настройках Debug выберите «AT-Link(WinUSB)-CMSIS-DAP»
  2. Установите порт на «SW» и отметьте «SWJ»
  3. В разделе Utilities выберите «CMSIS-DAP Debugger»

Для IAR:

  1. В настройках проекта выберите «CMSIS-DAP»
  2. Установите интерфейс на «SWD»

Использование AT32 Work Bench

AT32 Work Bench — это графический инструмент для конфигурации микроконтроллера и генерации кода инициализации. Он поддерживает как Windows, так и Linux.

Основные функции:

  1. Конфигурация выводов: графическое распределение функций по выводам
  2. Настройка тактирования: интуитивный интерфейс для конфигурации clock tree
  3. Генерация кода: автоматическое создание кода инициализации для выбранной IDE

Процесс работы:

  1. Выберите микроконтроллер (например, AT32F435ZMT7)
  2. Настройте периферийные модули (USART, SPI, I2C и т.д.)
  3. Задайте параметры GPIO, DMA и прерываний
  4. Сконфигурируйте тактовые сигналы
  5. Сгенерируйте код проекта

Основные функции микроконтроллера

1. Конфигурация тактирования

Для настройки тактирования рекомендуется использовать:

  • AT32 Work Bench
  • Инструмент New_clock_configuration (доступен для Windows и Linux)
  • Или следовать руководству AN0084_AT32F435/437_clock_configuration

2. Включение FPU

Для использования блока вычислений с плавающей точкой добавьте в код:

void SystemInit(void) {
  /* Enable FPU*/
  #if defined (__FPU_USED) && (__FPU_USED == 1U)
    SCB->CPACR |= ((3U << 10U*2U) |  /* set CP10 Full Access */
                  (3U << 11U*2U) );  /* set CP11 Full Access */
  #endif
}

3. Защита Flash-памяти

AT32F435/F437 поддерживает несколько уровней защиты:

  1. Защита доступа (Access Protection):
    • Включается через ICP/ISP программировщик
    • При отключении выполняется полное стирание Flash
  2. Защита от стирания/программирования (Erase and Program Protection):
    • Защищает отдельные страницы Flash от модификации
    • Настраивается через User System Data

Важно: После включения эти защиты нельзя отключить простым стиранием!

Решение распространённых проблем

1. Ошибка «Flash Download failed — Cortex-M4»

Возможные причины:

  • Включена защита доступа — отключите её перед программированием
  • Неправильный алгоритм Flash — добавьте корректный алгоритм
  • Неправильные настройки BOOT0/BOOT1 — установите BOOT0=0, BOOT1=0
  • Устаревшая версия J-Link — используйте версию 6.20C или новее
  • Отключены JTAG/SWD выводы — см. раздел «Resume download»

2. Ошибка «No Debug Unit Device found»

Проверьте:

  • Не занят ли порт отладки (например, подключён ICP)
  • Корректность подключения JTAG/SWD

3. Вход в Hard Fault Handler

Возможные причины:

  • Используется больше SRAM, чем выделено (настройте через ICP/ISP)
  • FPU включён в IDE, но не в коде (добавьте код инициализации FPU)
  • Выход за границы массива
  • Неправильные настройки системного тактирования

Безопасность и защита кода (Security Library)

AT32F435/F437 предлагают расширенные функции защиты интеллектуальной собственности через Security Library (sLib):

  1. Инструкционная защита (SLIB_INSTRUCTION):
    • Код может только исполняться, но не читаться как данные
    • При чтении возвращаются значения 0xFF
  2. Защита данных (SLIB_DATA):
    • Данные можно только читать, но не изменять
  3. Защита от стирания:
    • Для изменения/стирания требуется пароль
    • При неправильном пароле устанавливается флаг ошибки

Подробнее в AN0081_AT32F435_437_Security_Library_Application_Note.

Итоги

Микроконтроллеры AT32F435 и AT32F437 предлагают мощную платформу для разработки сложных встраиваемых систем. Благодаря удобным инструментам вроде AT32 Work Bench, разработчики могут быстро начать работу с этими микроконтроллерами, сосредоточившись на реализации логики приложения, а не на низкоуровневой настройке.

Для более глубокого изучения возможностей AT32F435/F437 рекомендуется:

  1. Изучить Reference Manual для выбранного микроконтроллера
  2. Ознакомиться с примерами кода в BSP
  3. Использовать AT-SURF-F437 evaluation board для экспериментов с расширенными функциями

Все необходимые документы и инструменты доступны на официальном сайте ARTERY. Удачной разработки.