DIP-MIK32-BB-V2: различия между версиями

Материал из MIK32 микроконтроллер
Нет описания правки
Строка 2: Строка 2:
Габаритный чертеж платы: [https://files.mik32.ru/board/dip-mik32-bb-v2/467925.111_гч.PDF ссылка]
Габаритный чертеж платы: [https://files.mik32.ru/board/dip-mik32-bb-v2/467925.111_гч.PDF ссылка]


Схема электрическая принципиальная: [https://files.mik32.ru/board/dip-mik32-bb-v2/467925.111_э3.pdf ссылка]
Схема электрическая принципиальная для платы: [https://files.mik32.ru/board/dip-mik32-bb-v2/467925.111_э3.pdf ссылка]


3D сборка (.step): [https://files.mik32.ru/board/dip-mik32-bb-v2/467925.111_сб.STEP ссылка]
3D сборка платы (.step): [https://files.mik32.ru/board/dip-mik32-bb-v2/467925.111_сб.STEP ссылка]
 
Схема электрическая принципиальная для переходника: [https://files.mik32.ru/board/dip-mik32-bb-v2/Схема%20переходника.png ссылка]


== Подключение и программирование платы DIP-MIK32-BB-V2 ==
== Подключение и программирование платы DIP-MIK32-BB-V2 ==
Строка 24: Строка 26:


=== Подключение программатора к DIP-MIK32-BB-V2 ===
=== Подключение программатора к DIP-MIK32-BB-V2 ===
[[Файл:Рисунок 1 - Соединение программатора MIK32 и DIP-MIK32-BB.png|мини|Рисунок 1 - Соединение программатора MIK32 и DIP-MIK32-BB]]
Если на плате не запаян нулевой резистор R1, то программатор подключается в соответствии с [https://files.mik32.ru/board/dip-mik32-bb-v2/picture/соединение_программатора_mik32_и_dip-mik32-bb-v0_без_резистора_r1.png рисунком 1] . Если резистор R2 запаян, то можно использовать как первое подключение, так и как на [https://files.mik32.ru/board/dip-mik32-bb-v2/picture/соединение_программатора_mik32_и_dip-mik32-bb-v0.png рисунке 2].  Напряжение питания 3.3 В нужно подавать отдельно.
[[Файл:DIP-MIK32-BB-V2.png|мини|Рисунок 2 - распиновка]]
 
Соединение программатора с DIP-MIK32-BB изображено на рисунке 1.
На 19-м выводе программатора есть напряжение 5В, которое можно понизить до 3.3В. Для удобства предлагается использовать специальный переходник


После этого нужно выбрать режим загрузки. Для это нужно установить перемычку как показано на рисунке 2. Для загрузки программы в RAM нужно установить BOOT0 = 1 и BOOT1 = 0 с помощью перемычек. Плата DIP-MIK32-BB питается от напряжения 3,3 В.
После этого нужно выбрать режим загрузки. Для это нужно установить перемычку как показано на рисунке 2. Для загрузки программы в RAM нужно установить BOOT0 = 1 и BOOT1 = 0 с помощью перемычек. Плата DIP-MIK32-BB питается от напряжения 3,3 В.

Версия от 09:50, 13 марта 2023

Схемы

Габаритный чертеж платы: ссылка

Схема электрическая принципиальная для платы: ссылка

3D сборка платы (.step): ссылка

Схема электрическая принципиальная для переходника: ссылка

Подключение и программирование платы DIP-MIK32-BB-V2

Для программирования платы требуется:

- плата DIP-MIK32-BB-V2;

- Программатор MIK32 или Olimex ARM-USB-OCD-H;

- Установленный плагин platformio в visual studio code.

Подготовка программатора

Установка драйвера для программатора описана в статье Работа с отладчиками на основе FT2232H.

Установка Platformio

Установка Visual Studio Code и Platformio описаны в статье Быстрый старт в Visual Studio Code.

Затем нужно подготовить Platformio к программированию под MIK32. Это описано в статье Установка библиотек для разработки под MIK32.

Подключение программатора к DIP-MIK32-BB-V2

Если на плате не запаян нулевой резистор R1, то программатор подключается в соответствии с рисунком 1 . Если резистор R2 запаян, то можно использовать как первое подключение, так и как на рисунке 2. Напряжение питания 3.3 В нужно подавать отдельно.

На 19-м выводе программатора есть напряжение 5В, которое можно понизить до 3.3В. Для удобства предлагается использовать специальный переходник

После этого нужно выбрать режим загрузки. Для это нужно установить перемычку как показано на рисунке 2. Для загрузки программы в RAM нужно установить BOOT0 = 1 и BOOT1 = 0 с помощью перемычек. Плата DIP-MIK32-BB питается от напряжения 3,3 В.

Рисунок 3 - Создание проекта в Platformio

В Platformio создаем новый проект. Во вкладке BOARD выбираем "MIK32 (MIKRON)" как на рисунке 3 и нажимаем "Finish".

Рисунок 4 - Platformio.ini

Затем в окне 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 - прошивка

После того как код написан нажимаем в левом нижнем углу иконку галочки для компиляции проекта, а затем стрелочку для прошивки как на рисунке 5.