Отладочная плата MIK32: различия между версиями
Sh-sergey (обсуждение | вклад) (Новая страница: «Файл:Отладочная плата MIK32 - Рисунок 1.png|мини|Рисунок 1 - Установка перемычек для запуска п...») |
Sh-sergey (обсуждение | вклад) Нет описания правки |
||
Строка 42: | Строка 42: | ||
|светодиод управление логическим нулём | |светодиод управление логическим нулём | ||
|} | |} | ||
[[Файл:Отладочная плата MIK32 - Рисунок 2.png|мини|Рисунок 2 - параметры platformio.ini]] | |||
Для разработки предлагается использовать среду PlatformIO и VS Code IDE. Установка описана в статье [[Быстрый старт в Visual Studio Code]], копирование настроек и заголовочных файлов, а также создание проекта описаны в статье [[Установка библиотек для разработки под MIK32]]. | Для разработки предлагается использовать среду PlatformIO и VS Code IDE. Установка описана в статье [[Быстрый старт в Visual Studio Code]], копирование настроек и заголовочных файлов, а также создание проекта описаны в статье [[Установка библиотек для разработки под MIK32]]. | ||
После создания проекта в окне EXPLORER выбираем platformio.ini и записываем "board_debug.interface = m-link" и "board_debug.ldscript = ram" как на рисунке 2. | |||
Далее прописываем код в main.c:<syntaxhighlight lang="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(); | |||
} | |||
} | |||
</syntaxhighlight> | |||
[[Файл:Отладочная плата MIK32 - Рисунок 3.png|мини|Рисунок 3 - кнопка прошивки]] | |||
После того как код написан нажимаем в левом нижнем углу иконку галочки для компиляции проекта, а затем стрелочку для прошивки как на рисунке 3. | |||
На рисунке 4 показана схема выбора режима загрузки. | |||
В случае не работоспособности платы, проверить питание контроллера (таблица 2): | |||
{| class="wikitable" | |||
|+Таблица 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. |
Версия от 15:44, 22 июня 2022
Для программирования платы используется программатор на основе 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.