Отладочная плата MIK32: различия между версиями
Sh-sergey (обсуждение | вклад) (Новая страница: «Файл:Отладочная плата MIK32 - Рисунок 1.png|мини|Рисунок 1 - Установка перемычек для запуска п...») |
Sh-sergey (обсуждение | вклад) (Выразительная схема платы) |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 1: | Строка 1: | ||
[[Файл:Отладочная плата MIK32 - Рисунок 1.png|мини|Рисунок 1 - Установка перемычек для запуска примера из ОЗУ]] | [[Файл:Отладочная плата MIK32 - Рисунок 1.png|мини|Рисунок 1 - Установка перемычек для запуска примера из ОЗУ]] | ||
| + | Краткая инструкция по работе с отладочной платой. | ||
| + | |||
| + | === Схема платы доступна по ссылке https://disk.yandex.ru/d/aHy8TEFWeUppBA === | ||
Для программирования платы используется программатор на основе FT2232H. Информация о настройке доступна в статье [[Работа с отладчиками на основе FT2232H]]. | Для программирования платы используется программатор на основе FT2232H. Информация о настройке доступна в статье [[Работа с отладчиками на основе FT2232H]]. | ||
| Строка 42: | Строка 45: | ||
|светодиод управление логическим нулём | |светодиод управление логическим нулём | ||
|} | |} | ||
| + | [[Файл:Отладочная плата 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. | ||
Текущая версия на 00:04, 9 ноября 2022
Краткая инструкция по работе с отладочной платой.
Схема платы доступна по ссылке https://disk.yandex.ru/d/aHy8TEFWeUppBA
Для программирования платы используется программатор на основе 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.