DIP-MIK32-BB-V2: различия между версиями
Андрей (обсуждение | вклад) Нет описания правки |
Андрей (обсуждение | вклад) Нет описания правки |
||
Строка 31: | Строка 31: | ||
[[Файл:Создание проекта.png|мини|Рисунок 3 - Создание проекта в Platformio]] | [[Файл:Создание проекта.png|мини|Рисунок 3 - Создание проекта в Platformio]] | ||
В Platformio создаем новый проект. Во вкладке BOARD выбираем "MIK32 (MIKRON)" как на рисунке 3 и нажимаем "Finish". | В Platformio создаем новый проект. Во вкладке BOARD выбираем "MIK32 (MIKRON)" как на рисунке 3 и нажимаем "Finish". | ||
[[Файл: | [[Файл:Platformio2.png|мини|Рисунок 4 - Platformio.ini]] | ||
Затем в окне EXPLORER выбираем platformio.ini и записываем "board_debug.interface = m-link" и "board_debug.ldscript = ram" как на рисунке 4 . Более подробно с параметрами можно ознакомиться в статье [https://wiki.mik32.ru/Параметры_platformio.ini Параметры platformio.ini]. Для записи в EEPROM требуется выставить частоту JTAG в 50 кГц командой "board_debug.adapter_speed=50". | Затем в окне EXPLORER выбираем platformio.ini и записываем "board_debug.interface = m-link" и "board_debug.ldscript = ram" как на рисунке 4 . Более подробно с параметрами можно ознакомиться в статье [https://wiki.mik32.ru/Параметры_platformio.ini Параметры platformio.ini]. Для записи в EEPROM требуется выставить частоту JTAG в 50 кГц командой "board_debug.adapter_speed=50". | ||
После этого создаем в папке src окна EXPLORER файл main.c и пишем в него свой код. Пример кода для мигания светодиодом LED2 приведен ниже.<syntaxhighlight lang="c" line="1"> | |||
#include <mcu32_memory_map.h> | |||
#include <pad_config.h> | |||
#include <gpio.h> | |||
#include <power_manager.h> | |||
#define PIN_LED2 3 // LED2 управляется выводом PORT_1_3 | |||
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 в выход | |||
GPIO_0->DIRECTION_OUT = 0xFFFF; // Установка направления порта 1 в выход | |||
while (1) { | |||
ledBlink(); | |||
} | |||
} | |||
</syntaxhighlight> | |||
[[Файл:Билд.png|мини|Рисунок 5 - прошивка]] | |||
После того как код написан нажимаем в левом нижнем углу иконку галочки для компиляции проекта, а затем стрелочку для прошивки как на рисунке 5. |
Версия от 17:36, 5 апреля 2022
Схемы
- Ошибка создания миниатюры: Файл с размерами больше 25 Мпикс
Принципиальная схема платы
Инструкция по подключению и программированию платы DIP-MIK32-BB
Для программирования платы требуется:
- плата DIP-MIK32-BB;
- Программатор MIK32;
- Установленный плагин platformio в visual studio code.
Подготовка программатора
Установка драйвера для программатора описана в статье Работа с отладчиками на основе FT2232H.
Platformio
Установка Visual Studio Code и Platformio описаны в статье Быстрый старт в Visual Studio Code.
Затем нужно подготовить Platformio к программированию под MIK32. Это описано в статье Установка библиотек для разработки под MIK32.
Подключение программатора к DIP-MIK32-BB
Соединение программатора с DIP-MIK32-BB изображено на рисунке 1.
После этого нужно выбрать режим загрузки. Для это нужно установить перемычку как показано на рисунке 2. Для загрузки программы в RAM нужно установить BOOT0 = 1 и BOOT1 = 0 с помощью перемычек. Плата DIP-MIK32-BB питается от напряжения 3,3 В.
В Platformio создаем новый проект. Во вкладке BOARD выбираем "MIK32 (MIKRON)" как на рисунке 3 и нажимаем "Finish".
Затем в окне EXPLORER выбираем platformio.ini и записываем "board_debug.interface = m-link" и "board_debug.ldscript = ram" как на рисунке 4 . Более подробно с параметрами можно ознакомиться в статье Параметры platformio.ini. Для записи в EEPROM требуется выставить частоту JTAG в 50 кГц командой "board_debug.adapter_speed=50".
После этого создаем в папке src окна EXPLORER файл main.c и пишем в него свой код. Пример кода для мигания светодиодом LED2 приведен ниже.
#include <mcu32_memory_map.h> #include <pad_config.h> #include <gpio.h> #include <power_manager.h> #define PIN_LED2 3 // LED2 управляется выводом PORT_1_3 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 в выход GPIO_0->DIRECTION_OUT = 0xFFFF; // Установка направления порта 1 в выход while (1) { ledBlink(); } }
После того как код написан нажимаем в левом нижнем углу иконку галочки для компиляции проекта, а затем стрелочку для прошивки как на рисунке 5.