
Микроконтроллеры 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. Установка программного обеспечения
- Загрузка BSP (Board Support Package):
- Доступен на официальном сайте ARTERY (раздел Products → High performance → AT32F4xx → BSP)
- Включает шаблоны проектов для Keil, IAR, Eclipse GCC и AT32 IDE
- Установка PACK-файлов:
- Для Keil: установите ArteryTek.AT32F435_437_DFP
- Для IAR: установите IAR_AT32MCU_AddOn
- PACK-файлы доступны на сайте ARTERY в разделе PACK
3. Настройка отладки с AT-Link
Для отладки в Keil:
- В настройках Debug выберите «AT-Link(WinUSB)-CMSIS-DAP»
- Установите порт на «SW» и отметьте «SWJ»
- В разделе Utilities выберите «CMSIS-DAP Debugger»
Для IAR:
- В настройках проекта выберите «CMSIS-DAP»
- Установите интерфейс на «SWD»
Использование AT32 Work Bench
AT32 Work Bench — это графический инструмент для конфигурации микроконтроллера и генерации кода инициализации. Он поддерживает как Windows, так и Linux.
Основные функции:
- Конфигурация выводов: графическое распределение функций по выводам
- Настройка тактирования: интуитивный интерфейс для конфигурации clock tree
- Генерация кода: автоматическое создание кода инициализации для выбранной IDE
Процесс работы:
- Выберите микроконтроллер (например, AT32F435ZMT7)
- Настройте периферийные модули (USART, SPI, I2C и т.д.)
- Задайте параметры GPIO, DMA и прерываний
- Сконфигурируйте тактовые сигналы
- Сгенерируйте код проекта
Основные функции микроконтроллера
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 поддерживает несколько уровней защиты:
- Защита доступа (Access Protection):
- Включается через ICP/ISP программировщик
- При отключении выполняется полное стирание Flash
- Защита от стирания/программирования (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):
- Инструкционная защита (SLIB_INSTRUCTION):
- Код может только исполняться, но не читаться как данные
- При чтении возвращаются значения 0xFF
- Защита данных (SLIB_DATA):
- Данные можно только читать, но не изменять
- Защита от стирания:
- Для изменения/стирания требуется пароль
- При неправильном пароле устанавливается флаг ошибки
Подробнее в AN0081_AT32F435_437_Security_Library_Application_Note.
Итоги
Микроконтроллеры AT32F435 и AT32F437 предлагают мощную платформу для разработки сложных встраиваемых систем. Благодаря удобным инструментам вроде AT32 Work Bench, разработчики могут быстро начать работу с этими микроконтроллерами, сосредоточившись на реализации логики приложения, а не на низкоуровневой настройке.
Для более глубокого изучения возможностей AT32F435/F437 рекомендуется:
- Изучить Reference Manual для выбранного микроконтроллера
- Ознакомиться с примерами кода в BSP
- Использовать AT-SURF-F437 evaluation board для экспериментов с расширенными функциями
Все необходимые документы и инструменты доступны на официальном сайте ARTERY. Удачной разработки.