Отладочная плата MIK32: различия между версиями
Sh-sergey (обсуждение | вклад) (Выразительная схема платы) |
Sh-sergey (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 2: | Строка 2: | ||
Краткая инструкция по работе с отладочной платой. | Краткая инструкция по работе с отладочной платой. | ||
Для программирования платы используется программатор на основе FT2232H. Информация о настройке доступна в статье [[Работа с отладчиками на основе FT2232H]]. | Для программирования платы используется программатор на основе FT2232H. Информация о настройке доступна в статье [[Работа с отладчиками на основе FT2232H]]. | ||
Текущая версия от 15:17, 10 апреля 2024
Краткая инструкция по работе с отладочной платой.
Для программирования платы используется программатор на основе FT2232H. Информация о настройке доступна в статье Работа с отладчиками на основе FT2232H.
Подключается программатор плоским шлейфом с разъемами 2x10 с ключом, совместимым с Arm 20pin JTAG. При подключении ключ разъема должен быть направлен внутрь платы!
Перед запуском примера требуется выставить перемычки в соответствии с рисунком 1 (таблицей 1).
Вилка | Выводы | Наименование цепей | Описание назначения |
XP (VIN=>3.3V) | 1-2 | VIN-3.3V | питание цифровых и аналоговых блоков |
XP (AVCC-SEL) | 1-2 | AVCC-3.3V | питание аналоговых блоков 3.3В; |
XP (AGND-SEL) | 1-2 | AGND-GND | общий вывод аналоговых блоков; |
XP (BOOT) | 1-3 | BOOT0-3.3V | вход управления устройством загрузки |
XP (BOOT) | 4-6 | BOOT1-GND | вход управления устройством загрузки |
XP (LED2_JMP) | 1-2 | PORT_1_0-LED2 | светодиод управление логическим нулём |
Для разработки предлагается использовать среду PlatformIO и VS Code IDE. Установка описана в статье Быстрый старт в Visual Studio Code, копирование настроек и заголовочных файлов, а также создание проекта описаны в статье Установка библиотек для разработки под MIK32.
После создания проекта в окне EXPLORER выбираем platformio.ini и записываем "board_debug.interface = m-link" и "board_debug.ldscript = ram" как на рисунке 2.
Далее прописываем код в main.c:
#include <mcu32_memory_map.h> #include <pad_config.h> #include <gpio.h> #include <power_manager.h> #define PIN_LED2 0 // LED2 управляется выводом PORT_1_0 void initClock() { PM->CLK_APB_P_SET = PM_CLOCK_GPIO_1_M; // включение тактирования GPIO0 и GPIO1 PM->CLK_APB_M_SET = PM_CLOCK_PAD_CONFIG_M | PM_CLOCK_WU_M | PM_CLOCK_PM_M; // включение тактирования блока для смены режима выводов for (volatile int i = 0; i < 10; i++) ; } void ledBlink() { GPIO_1->OUTPUT |= 1 << PIN_LED2; //Установка значения вывода 3 порта 1 в высокий уровень for (volatile int i = 0; i < 1000000; i++); GPIO_1->OUTPUT &= ~(1 << PIN_LED2); //Установка значения вывода 3 порта 1 в низкий уровень for (volatile int i = 0; i < 1000000; i++); } void main() { initClock(); //включние тактирования GPIO1 PAD_CONFIG->PORT_1_CFG |= (1 << (2 * PIN_LED2)); // Установка порта 1 в режим GPIO //PAD_CONFIG->PORT_0_CFG |= (0b01 << PIN_LED2); // Установка порта 1 в режим GPIO GPIO_1->DIRECTION_OUT = 0xFFFF; // Установка направления порта 1 в выход while (1) { ledBlink(); } }
После того как код написан нажимаем в левом нижнем углу иконку галочки для компиляции проекта, а затем стрелочку для прошивки как на рисунке 3.
На рисунке 4 показана схема выбора режима загрузки.
В случае не работоспособности платы, проверить питание контроллера (таблица 2):
Вывод корпуса | Наименование | Значение напряжения, В |
5 | VCC | 3.3+-0.1 |
6 | VDD | 1.8+-0.1 |
10 | VDD | 1.8+-0.1 |
14 | RST | 3.3+-0.1 |
Если напряжения отличаются, проверить питание, положение установленных перемычек, стабилизатор напряжения U2.