Исправление известных ошибок
- исправлены ошибки при работе с пользователями, в названии которых есть пробелы - исправлены ошибки при работе с программатором на win11 - исправлены ссылки на документацию от компании Микрон - в описания плат добавлены ссылки на инструкцию по записи начального загрузчика, в инструкцию добавлен блок про загрузку скетчей с помощью программатора - исправлены известные ошибки
This commit is contained in:
parent
e39767832a
commit
35d96be524
11
README.md
11
README.md
@ -2,9 +2,9 @@
|
||||
Пакет поддержки плат на базе микроконтроллера MIK32 Амур в среде программирования Arduino IDE.
|
||||
|
||||
|
||||
## Установка пакета в ArduinoIDE
|
||||
## Установка пакета в ArduinoIDE и подготовка к работе
|
||||
Для установки пакета в параметрах ArduinoIDE необходимо добавить ссылку `https://elron.tech/files/package_elbear_beta_index.json` в поле "Дополнительные ссылки для Менеджера плат".
|
||||
Подробные шаги по установке и начальной настройке описаны в [инструкции](./docs/Instructions.md).
|
||||
Подробные шаги по установке, начальной настройке и записи начального загрузчика для всех поддерживаемых плат описаны в [инструкции](./docs/Instructions.md).
|
||||
|
||||
## Платы, входящие в состав пакета
|
||||
Пакет включает в себя поддержку следующих плат:
|
||||
@ -73,13 +73,14 @@
|
||||
Список модулей и шилдов, работа которых была протестирована на платах, входящих в состав пакета поддержки, доступен [здесь](./docs/tested_shields.md).
|
||||
|
||||
## Режим отладки
|
||||
Для всех плат, входящих в состав пакета, доступен режим отладки скетча в ArduinoIDE версии 2. Подготовка к работе в режиме отладки описана в [инструкции.](./docs/debug_description.md)
|
||||
Для всех плат, входящих в состав пакета, доступен режим отладки скетча в Arduino IDE версии 2.3.4 на Windows 10 x64. Подготовка к работе в режиме отладки описана в [инструкции.](./docs/debug_description.md) Функция отладки является экспериментальной.
|
||||
|
||||
# Полезные ссылки
|
||||
* [Описание плат ELBEAR](https://elron.tech/russian-arduino-compatible-board/)
|
||||
* [Материалы по платам ELBEAR](https://elron.tech/support/#elbear)
|
||||
* [Материалы по платам ELBEAR ACE-UNO](https://elron.tech/support/#elbear)
|
||||
* [Материалы по платам ELBEAR ACE-NANO](https://elron.tech/support/#elbearacenano)
|
||||
* [Материалы по платам ELSOMIK](https://elron.tech/support/#elsomik)
|
||||
* [Материалы по плате START-MIK32](https://wiki.mik32.ru/%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BB%D0%B0%D1%82%D0%B0_%D0%A1%D1%82%D0%B0%D1%80%D1%82)
|
||||
* [Материалы по плате START-MIK32](https://docs.mikron.ru/wiki/boards/start.html)
|
||||
* [Телеграмм-канал компании](https://t.me/elrontech)
|
||||
|
||||
При возникновении вопросов или выявлении проблем можно оставить заявку [здесь](https://gitflic.ru/project/elron-tech/elbear_arduino_bsp/issue).
|
||||
|
||||
@ -51,3 +51,4 @@
|
||||
|
||||
## Драйверы
|
||||
Для работы с платой по интерфейсу USB необходим драйвер для микросхемы CH340С, его можно скачать [здесь](https://www.wch-ic.com/downloads/CH341SER_ZIP.html).
|
||||
Подготовка к работе по интерфейсу JTAG и инструкция по записи начального загрузчика есть [здесь](Instructions.md).
|
||||
BIN
docs/Flash_project_jtag.png
Normal file
BIN
docs/Flash_project_jtag.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
@ -1,3 +1,4 @@
|
||||
# Установка пакета и предварительная подготовка к работе
|
||||
## Установка пакета в ArduinoIDE
|
||||
1. Установите [Arduino IDE](https://www.arduino.cc/en/software).
|
||||
2. Откройте меню `Файл -> Параметры`.
|
||||
@ -18,11 +19,12 @@
|
||||
Для записи начального загрузчика:
|
||||
1. Подключите плату к ПК по интерфейсу JTAG.
|
||||
Для подключения плат ELBEAR, ELSOMIK потребуется программатор [ELJTAG](https://elron.tech/eljtag-programmator-risc-v-mcu/).
|
||||
Для подключения платы START-MIK32 необходимо перевести переключатель режима программатора в положение JTAG и подключить плату к ПК через USB разъем.
|
||||
Для подключения платы START-MIK32 необходимо на плате перевести переключатель режима программатора (COM/JTAG) в положение JTAG и подключить плату к ПК через USB разъем.
|
||||
2. В ArduinoIDE выберите программатор: `Инструменты -> Программатор -> mik32 uploader`.
|
||||

|
||||
3. Для записи начального загрузчика выберите `Инструменты -> Записать Загрузчик`.
|
||||

|
||||
4. При возникновении проблем с загрузкой ознакомьтесь с разделом `Настройка программатора` в [инструкции](https://elron.tech/wp-content/uploads/2024/05/instrukcija-po-pervomu-zapusku.pdf) по первому запуску платы ELBEAR ACE-UNO или с [документацией](https://wiki.mik32.ru/%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BB%D0%B0%D1%82%D0%B0_%D0%A1%D1%82%D0%B0%D1%80%D1%82) по запуску платы START-MIK32.
|
||||
4. При возникновении проблем с загрузкой ознакомьтесь с разделом `Настройка программатора` в [инструкции](https://elron.tech/wp-content/uploads/2024/05/instrukcija-po-pervomu-zapusku.pdf) по первому запуску платы ELBEAR ACE-UNO или с [документацией](https://docs.mikron.ru/wiki/boards/start.html) по запуску платы START-MIK32 (ссылки на документацию по плате START-MIK32 актуальны на июль 2025 года, если они не действительны, возможно найти актуальную информацию на сайте производителя - https://mikron.ru/).
|
||||
Теперь можно загружать скетчи в плату по USB.
|
||||
|
||||
## Начало работы
|
||||
@ -41,3 +43,15 @@
|
||||

|
||||
7. При необходимости можно открыть терминал и получать сообщения от платы по интерфейсу Serial. Для этого добавьте в скетч работу с интерфейсом и после загрузки прошивки выберите `Инструменты -> Монитор порта`.
|
||||

|
||||
|
||||
## Загрузка скетчей через программатор
|
||||
ArduinoIDE позволяет так же загружать скетчи через программатор. Для этого:
|
||||
1. Подключите плату к ПК по интерфейсу JTAG.
|
||||
Для подключения плат ELBEAR, ELSOMIK потребуется программатор [ELJTAG](https://elron.tech/eljtag-programmator-risc-v-mcu/).
|
||||
Для подключения платы START-MIK32 необходимо на плате перевести переключатель режима программатора (COM/JTAG) в положение JTAG и подключить плату к ПК через USB разъем.
|
||||
2. Откройте ArduinoIDE и загрузите необходимый скетч. Для начала работы можно воспользоваться готовыми примерами, например - `Файл -> Примеры -> 01.Basics -> Blink`.
|
||||
3. Выберите активную плату - `Инструменты -> Плата`.
|
||||
4. Выберите программатор - `Инструменты -> Программатор -> mik32 uploader`.
|
||||
5. Проверьте скетч, нажав соответствующую кнопку.
|
||||
6. Для загрузки скетча через программатор выберите - `Скетч -> Загрузить на плату при помощи программатора`.
|
||||

|
||||
@ -5,6 +5,9 @@
|
||||
|
||||
### Загрузка скетчей
|
||||
Для загрузки скетчей в ArduinoIDE необходимо передвинуть переключатель режима программатора на плате в положение `COM`. Так же необходимо установить две перемычки на разъем 5 - первой перемычкой замкнуть выводы `COM_RX` и `MCU_TX`, а второй - выводы `COM_TX` и `MCU_RX`.
|
||||
Для работы с платой по интерфейсу USB не требуется установка дополнительных драйверов.
|
||||
Подготовка к работе по интерфейсу JTAG и инструкция по записи начального загрузчика есть [здесь](Instructions.md).
|
||||
|
||||
### Цифровые выводы
|
||||
Выводы на плате START-MIK32 пронумерованы в соответствии с их принадлежностью к определенному GPIO-порту и конкретному пину внутри порта. Чтобы использовать цифровой вывод, необходимо передать в функцию номер порта и номер пина в формате `P0_1`, где "0" — это номер порта, а "1" — номер пина внутри порта. Например, для инициализации вывода 5 порта 2 на выход необходимо вызвать функцию `pinMode(P2_5, OUTPUT)`.
|
||||
Для использования доступны следующие выводы: `P0_0 ... P0_15, P1_0 ... P1_15, P2_0 ... P2_7`.
|
||||
|
||||
@ -6,8 +6,9 @@
|
||||

|
||||
|
||||
### Загрузка скетчей
|
||||
На плате отсутствуют встроенные преобразователи, позволяющие загружать скетчи по USB через COM-порт, однако каждая плата поставляется с предварительно записанным начальным загрузчиком. Для записи скетчей через USB потребуется использование внешнего USB-UART преобразователя, подключаемого к выводам платы P0_5 (RX0) и P0_6 (TX0), которые соответствуют интерфейсу UART0.
|
||||
На плате отсутствуют встроенные преобразователи, позволяющие загружать скетчи по USB через COM-порт, однако каждая плата поставляется с предварительно записанным начальным загрузчиком. Для записи скетчей через USB потребуется использование внешнего USB-UART преобразователя, подключаемого к выводам платы P0_5 (RX0) и P0_6 (TX0), которые соответствуют интерфейсу UART0. Для корректной работы так же может потребоваться установка на ПК драйвера для микросхемы, используемой в преобразователе USB-UART.
|
||||
Перед загрузкой скетча необходимо кратковременно ввести контроллер в состояние RESET. Если используется USB-UART преобразователь с выведенным сигналом DTR, необходимо соединить DTR с выводом RST на плате через керамический конденсатор емкостью от 0,47 мкФ до 2,2 мкФ. В случае отсутствия сигнала DTR, необходимо вручную соединить вывод RST платы с землей и отпустить его непосредственно перед началом записи скетча.
|
||||
Для записи начального загрузчика или загрузки скетчей с помощью программатора необходимо подключить программатор (например, [ELJTAG](https://elron.tech/eljtag-programmator-risc-v-mcu/)) к выводам TDO, TDI, TCK, TMS, TRST, GND, 3V3. Инструкцию по использованию программатора в Arduino IDE можно найти [здесь](Instructions.md).
|
||||
### Цифровые выводы
|
||||
Выводы на плате ELSOMIK пронумерованы в соответствии с их принадлежностью к определенному GPIO-порту и конкретному пину внутри порта. Чтобы использовать цифровой вывод, необходимо передать в функцию номер порта и номер пина в формате `P0_1`, где "0" — это номер порта, а "1" — номер пина внутри порта. Например, для инициализации вывода 5 порта 1 на выход необходимо вызвать функцию `pinMode(P1_5, OUTPUT)`.
|
||||
Для использования доступны следующие выводы: `P0_0 ... P0_15, P1_0 ... P1_15, P2_6, P2_7`. Выводы `P0_11 ... P0_15` на плате обозначены иначе, ниже представлена таблица соответствия:
|
||||
|
||||
@ -54,3 +54,4 @@
|
||||
|
||||
## Драйверы
|
||||
Для работы с платой по интерфейсу USB необходим драйвер для микросхемы CH343P, его можно скачать [здесь](https://www.wch-ic.com/downloads/CH343SER_ZIP.html).
|
||||
Подготовка к работе по интерфейсу JTAG и инструкция по записи начального загрузчика есть [здесь](Instructions.md).
|
||||
BIN
docs/programmer.png
Normal file
BIN
docs/programmer.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 37 KiB |
10
platform.txt
10
platform.txt
@ -33,7 +33,7 @@ compiler.optimization_flags.release=-Os
|
||||
compiler.optimization_flags.debug=-Og -g3
|
||||
|
||||
compiler.extra_flags = -march=rv32imc_zicsr_zifencei -mabi=ilp32 -mcmodel=medlow -Wall -fsigned-char -ffunction-sections
|
||||
compiler.S.flags = {compiler.extra_flags} -x assembler-with-cpp {compiler.define} -I"{runtime.platform.path}/libraries/FreeRTOS/src" {compiler.optimization_flags} {compiler.warning_flags} {compiler.MIK32_Amur.extra_include}
|
||||
compiler.S.flags = {compiler.extra_flags} -x assembler-with-cpp {compiler.define} "-I{runtime.platform.path}/libraries/FreeRTOS/src" {compiler.optimization_flags} {compiler.warning_flags} {compiler.MIK32_Amur.extra_include}
|
||||
compiler.c.flags = -c -std=gnu11 -Werror=return-type {compiler.extra_flags} {compiler.define} {compiler.warning_flags} {compiler.optimization_flags} {compiler.MIK32_Amur.extra_include}
|
||||
compiler.cpp.flags = -c -std=gnu++17 -fabi-version=0 -fno-exceptions -fno-rtti -fno-use-cxa-atexit -fno-threadsafe-statics -Werror=return-type {compiler.extra_flags} {compiler.define} {compiler.warning_flags} {compiler.optimization_flags} {compiler.MIK32_Amur.extra_include}
|
||||
compiler.c.elf.flags = -march=rv32imc_zicsr_zifencei -mabi=ilp32 -mcmodel=medlow -nostartfiles -Xlinker
|
||||
@ -51,7 +51,7 @@ archive_file_path={build.path}/{archive_file}
|
||||
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{archive_file_path}" "{object_file}"
|
||||
|
||||
# Combine gc-sections, archives, and objects
|
||||
recipe.c.combine.pattern= "{compiler.path}{compiler.c.elf.cmd}" -o "{build.path}/{build.project_name}.elf" -T "{build.core.path}/mik32/shared/ldscripts/{build.ldscript}" {compiler.c.elf.flags} -Map={build.path}/{build.project_name}.map -Wl,--gc-sections -Wl,--no-warn-rwx-segments "-L{build.path}" -Wl,--start-group {object_files} -Wl,--whole-archive "{archive_file_path}" -Wl,--no-whole-archive -lc -Wl,--end-group
|
||||
recipe.c.combine.pattern= "{compiler.path}{compiler.c.elf.cmd}" -o "{build.path}/{build.project_name}.elf" -T "{build.core.path}/mik32/shared/ldscripts/{build.ldscript}" {compiler.c.elf.flags} "-Map={build.path}/{build.project_name}.map" -Wl,--gc-sections -Wl,--no-warn-rwx-segments "-L{build.path}" -Wl,--start-group {object_files} -Wl,--whole-archive "{archive_file_path}" -Wl,--no-whole-archive -lc -Wl,--end-group
|
||||
|
||||
# Create output (.bin file)
|
||||
recipe.objcopy.bin.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.elf2bin.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.bin"
|
||||
@ -105,7 +105,7 @@ debug.additional_config=debug_config.mik32
|
||||
tools.elbear_uploader.cmd=elbear_uploader
|
||||
tools.elbear_uploader.cmd.windows=elbear_uploader.exe
|
||||
tools.elbear_uploader.path={runtime.tools.elbear_uploader.path}
|
||||
tools.elbear_uploader.upload.pattern={path}/{cmd} {build.path}/{build.project_name}.hex --com={serial.port} --baudrate={upload.speed}
|
||||
tools.elbear_uploader.upload.pattern="{path}/{cmd}" "{build.path}/{build.project_name}.hex" --com={serial.port} --baudrate={upload.speed}
|
||||
tools.elbear_uploader.upload.params.quiet=
|
||||
tools.elbear_uploader.upload.params.verbose=
|
||||
|
||||
@ -126,10 +126,10 @@ tools.mik32_upload.erase.params.quiet=
|
||||
tools.mik32_upload.erase.params.verbose=
|
||||
|
||||
# For Tools > Burn Bootloader
|
||||
tools.mik32_upload.bootloader.pattern={path}/{cmd} {runtime.platform.path}/bootloaders/{bootloader.file} --run-openocd --openocd-exec={runtime.tools.openocd.path}/bin/openocd{cmd.extension} --openocd-interface={path}/openocd-scripts/interface/{bootloader.interface} --openocd-target={path}/openocd-scripts/target/mik32.cfg
|
||||
tools.mik32_upload.bootloader.pattern="{path}/{cmd}" "{runtime.platform.path}/bootloaders/{bootloader.file}" --run-openocd --no-driver --openocd-exec "{runtime.tools.openocd.path}/bin/openocd{cmd.extension}" --openocd-interface "{path}/openocd-scripts/interface/{bootloader.interface}" --openocd-target "{path}/openocd-scripts/target/mik32.cfg"
|
||||
tools.mik32_upload.bootloader.params.quiet=
|
||||
|
||||
# For Sketch > Upload Using Programmer
|
||||
tools.mik32_upload.program.pattern={path}/{cmd} {build.path}/{build.project_name}.hex --run-openocd --openocd-exec={runtime.tools.openocd.path}/bin/openocd{cmd.extension} --openocd-interface={path}/openocd-scripts/interface/{bootloader.interface} --openocd-target={path}/openocd-scripts/target/mik32.cfg
|
||||
tools.mik32_upload.program.pattern="{path}/{cmd}" "{build.path}/{build.project_name}.hex" --run-openocd --no-driver --openocd-exec "{runtime.tools.openocd.path}/bin/openocd{cmd.extension}" --openocd-interface "{path}/openocd-scripts/interface/{bootloader.interface}" --openocd-target "{path}/openocd-scripts/target/mik32.cfg"
|
||||
tools.mik32_upload.program.params.quiet=
|
||||
tools.mik32_upload.program.params.verbose=
|
||||
@ -131,6 +131,11 @@ void additionalPinsInit(uint32_t PinNumber)
|
||||
HAL_GPIO_PinConfig(SELA_A_PORT, SELA_A_PIN, HAL_GPIO_MODE_GPIO_OUTPUT, HAL_GPIO_PULL_NONE, HAL_GPIO_DS_2MA);
|
||||
// SELA_B
|
||||
HAL_GPIO_PinConfig(SELA_B_PORT, SELA_B_PIN, HAL_GPIO_MODE_GPIO_OUTPUT, HAL_GPIO_PULL_NONE, HAL_GPIO_DS_2MA);
|
||||
|
||||
// select A7 via switches selaA, selaB to allow using A4 and A5 as digital outputs
|
||||
HAL_GPIO_WritePin(SELA_A_PORT, SELA_A_PIN, GPIO_PIN_HIGH);
|
||||
HAL_GPIO_WritePin(SELA_B_PORT, SELA_B_PIN, GPIO_PIN_HIGH);
|
||||
|
||||
selaSwitchesIsInited = true;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user