DIP-MIK32-BB-V2: различия между версиями
Андрей (обсуждение | вклад) |
Sh-sergey (обсуждение | вклад) Нет описания правки |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
== Подключение и программирование платы DIP-MIK32-BB-V2 == | == Подключение и программирование платы DIP-MIK32-BB-V2 == | ||
Для программирования платы требуется: | Для программирования платы требуется: | ||
Строка 52: | Строка 43: | ||
[[Файл:Прошивка.png|мини|Рисунок 7 - Прошивка в platformio]] | [[Файл:Прошивка.png|мини|Рисунок 7 - Прошивка в platformio]] | ||
для создания нового проекта в PlatformIo нужно нажать на иконку platformio, в списке "QUICK ACCESS" выбрать "open". После этого появится кнопка "New project". После ее нажатия появится Project Wizard. В поле Name задаем имя проекта, в поле Board выбираем "MIK32V0 Generic Board (Mikron)" как на рисунке 5. Если требуется задать путь сохранения проекта, то нужно снять галочку Use default location. Для завершения создания проекта нажимаем "Finish". | для создания нового проекта в PlatformIo нужно нажать на иконку platformio, в списке "QUICK ACCESS" выбрать "open". После этого появится кнопка "New project". После ее нажатия появится Project Wizard. В поле Name задаем имя проекта, в поле Board выбираем "MIK32V0 Generic Board (Mikron)" как на рисунке 5. Если требуется задать путь сохранения проекта, то нужно снять галочку Use default location. Для завершения создания проекта нажимаем "Finish". | ||
в окне проводника (EXPLORER) выбираем platformio.ini. Для записи в RAM или EEPROM нужно выбрать соответствующий LD скрипт с помощью команды "board_debug.ldscript = ram" или "board_debug.ldscript = eeprom" соответственно. Если строчку не писать, то автоматически будет выбран скрипт для загрузки в EEPROM. Более подробно с параметрами можно ознакомиться в статье [https://wiki.mik32.ru/Параметры_platformio.ini Параметры platformio.ini]. В примере запись будет осуществляться в EEPROM (параметры platformio.ini на рисунке 6). | в окне проводника (EXPLORER) выбираем platformio.ini. Для записи в RAM или EEPROM нужно выбрать соответствующий LD скрипт с помощью команды "board_debug.ldscript = ram" или "board_debug.ldscript = eeprom" соответственно. Если строчку не писать, то автоматически будет выбран скрипт для загрузки в EEPROM. Более подробно с параметрами можно ознакомиться в статье [https://wiki.mik32.ru/index.php/Параметры_platformio.ini Параметры platformio.ini]. В примере запись будет осуществляться в EEPROM (параметры platformio.ini на рисунке 6). | ||
После этого создаем в папке src файл main.c и пишем в него свой код. | После этого создаем в папке src файл main.c и пишем в него свой код. | ||
Пример кода для мигания светодиодом LED1 приведен ниже. | Пример кода для мигания светодиодом LED1 приведен ниже. | ||
{{#spoiler:show=Развернуть код|hide=Свернуть код| | |||
<syntaxhighlight lang="c" line="1"> | <syntaxhighlight lang="c" line="1"> | ||
#include <mcu32_memory_map.h> | #include <mcu32_memory_map.h> | ||
Строка 92: | Строка 84: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | |||
После того как код написан нажимаем в левом нижнем углу иконку галочки для компиляции проекта, а затем стрелочку для прошивки как на рисунке 7. | После того как код написан нажимаем в левом нижнем углу иконку галочки для компиляции проекта, а затем стрелочку для прошивки как на рисунке 7. | ||
Строка 97: | Строка 90: | ||
На данный момент библиотеки для GPIO и контроллера выводов в работе. В данном примере будут использованы библиотеки тактирования (mik32_hal_rcc) и системного таймера (mik32_hal_scr1_timer). Системный таймер будет использован для функции задержки. | На данный момент библиотеки для GPIO и контроллера выводов в работе. В данном примере будут использованы библиотеки тактирования (mik32_hal_rcc) и системного таймера (mik32_hal_scr1_timer). Системный таймер будет использован для функции задержки. | ||
Пример кода для мигания светодиодом LED1 приведен ниже.<syntaxhighlight lang="c"> | Пример кода для мигания светодиодом LED1 приведен ниже. | ||
{{#spoiler:show=Развернуть код|hide=Свернуть код| | |||
<syntaxhighlight lang="c"> | |||
#include "mik32_hal_rcc.h" | #include "mik32_hal_rcc.h" | ||
#include "mik32_hal_scr1_timer.h" | #include "mik32_hal_scr1_timer.h" | ||
Строка 108: | Строка 103: | ||
SCR1_TIMER_HandleTypeDef hscr1_timer; | |||
void SystemClock_Config(void); | void SystemClock_Config(void); | ||
Строка 169: | Строка 164: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | |||
== Полезные ссылки == | ==Полезные ссылки== | ||
Репозиторий заголовочных файлов https://github.com/ | Репозиторий заголовочных файлов https://github.com/MikronMIK32/mik32-shared | ||
Репозиторий библиотек https://github.com/ | Репозиторий библиотек https://github.com/MikronMIK32/mik32-hal | ||
Репозиторий примеров https://github.com/ | Репозиторий примеров https://github.com/MikronMIK32/mik32-examples (часть на регистрах, часть с использованием библиотек) |
Текущая версия от 15:17, 10 апреля 2024
Подключение и программирование платы DIP-MIK32-BB-V2
Для программирования платы требуется:
- плата DIP-MIK32-BB-V2;
- Программатор MIK32 или Olimex ARM-USB-OCD-H;
- Установленный плагин platformio в visual studio code.
Подготовка программатора
Для прошивки с помощью программатора MIK32 следует установить драйвер. Установка драйвера описана в статье Работа с отладчиками на основе 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В. Для удобства предлагается использовать специальный переходник (рисунок 3). Если с 19 вывода программатора идет 5В, то перемычка JP1 должна быть разомкнута, а JP2 замкнута. Напряжение 5В понизится регулятором до 3.3в. Если на плате не запаян резистор R1, то перемычка JP4 должна быть замкнута, если резистор есть, то состояние JP4 может быть любым.
После этого нужно выбрать режим загрузки с помощью перемычек на разъеме XP4. Перемычки подают на BOOT0 и BOOT1 либо напряжение VCC, либо GND.
Положение перемычек (рисунок 4):
RAM - BOOT0 = 1, BOOT1 = 0;
EEPROM - BOOT0 = 0, BOOT1 = 0;
SPIFI - BOOT0 = 0, BOOT1 = 1.
Пример Blink в platformio
В примере программа будет загружаться в EEPROM, поэтому перемычки нужно поставить так чтобы BOOT0 = 0, BOOT1 = 0 (Рисунок 4).
С использованием регистров
для создания нового проекта в PlatformIo нужно нажать на иконку platformio, в списке "QUICK ACCESS" выбрать "open". После этого появится кнопка "New project". После ее нажатия появится Project Wizard. В поле Name задаем имя проекта, в поле Board выбираем "MIK32V0 Generic Board (Mikron)" как на рисунке 5. Если требуется задать путь сохранения проекта, то нужно снять галочку Use default location. Для завершения создания проекта нажимаем "Finish". в окне проводника (EXPLORER) выбираем platformio.ini. Для записи в RAM или EEPROM нужно выбрать соответствующий LD скрипт с помощью команды "board_debug.ldscript = ram" или "board_debug.ldscript = eeprom" соответственно. Если строчку не писать, то автоматически будет выбран скрипт для загрузки в EEPROM. Более подробно с параметрами можно ознакомиться в статье Параметры platformio.ini. В примере запись будет осуществляться в EEPROM (параметры platformio.ini на рисунке 6).
После этого создаем в папке src файл main.c и пишем в него свой код.
Пример кода для мигания светодиодом LED1 приведен ниже.
После того как код написан нажимаем в левом нижнем углу иконку галочки для компиляции проекта, а затем стрелочку для прошивки как на рисунке 7.
С использованием библиотек HAL
На данный момент библиотеки для GPIO и контроллера выводов в работе. В данном примере будут использованы библиотеки тактирования (mik32_hal_rcc) и системного таймера (mik32_hal_scr1_timer). Системный таймер будет использован для функции задержки.
Пример кода для мигания светодиодом LED1 приведен ниже.
Полезные ссылки
Репозиторий заголовочных файлов https://github.com/MikronMIK32/mik32-shared
Репозиторий библиотек https://github.com/MikronMIK32/mik32-hal
Репозиторий примеров https://github.com/MikronMIK32/mik32-examples (часть на регистрах, часть с использованием библиотек)