v0.5.0
- добавлена поддержка платы ELBEAR ACE-NANO; - добавлена поддержка плат ELSOMIK OEM и SE; - добавлена возможность работы в режиме отладки для всех плат, входящих в состав пакета. Доступно для версии ArduinoIDE 2 и выше; - добавлена поддержка библиотеки FreeRTOS; - добавлена поддержка библиотеки IRremote; - добавлена поддержка библиотеки OneWire; - добавлена поддержка аппаратного I2C0 для плат START-MIK32 и ELSOMIK. Для работы с ним доступен экземпляр класса Wire1; - добавлена поддержка аппаратного SPI0 для всех плат, входящих в пакет. Для работы с ним доступен экземпляр класса SPI1; - увеличено быстродействие функций digitalWrite, digitalRead; - исправлены известные ошибки. Co-authored-by: KlassenTS <klassen@elron.tech> Co-committed-by: KlassenTS <klassen@elron.tech>
No files matched your search
@@ -1,9 +1,9 @@
|
||||
# Elbear Ace-Uno
|
||||
Особенности работы с платами Elbear Ace-Uno в среде программирования ArduinoIDE.
|
||||
# ELBEAR ACE-UNO
|
||||
Особенности работы с платами ELBEAR ACE-UNO в среде программирования ArduinoIDE.
|
||||
### Функциональное назначение выводов
|
||||

|
||||

|
||||
### Цифровые выводы
|
||||
На плате Elbear Ace-Uno доступны встроенные светодиод и кнопка. Для их использования необходимо воспользоваться макросами `LED_BUILTIN` и `BTN_BUILTIN`, передавая их в качестве аргументов функции вместо номера цифрового вывода. Макросу `LED_BUILTIN` соответствует номер вывода D22, а макросу `BTN_BUILTIN` - D23.
|
||||
На плате ELBEAR ACE-UNO доступны встроенные светодиод и кнопка. Для их использования необходимо воспользоваться макросами `LED_BUILTIN` и `BTN_BUILTIN`, передавая их в качестве аргументов функции вместо номера цифрового вывода. Макросу `LED_BUILTIN` соответствует номер вывода D22, а макросу `BTN_BUILTIN` - D23.
|
||||
### Аналоговые выводы
|
||||
Выводы A0...A5 на плате могут использоваться как в аналоговом, так и в цифровом режиме.
|
||||
Для использования вывода в качестве аналогового необходимо перевести соответствующий DIP-переключатель, расположенный рядом с аналоговыми выводами, в положение OFF. В этом режиме внешнее напряжение, подаваемое на вывод, будет понижаться резистивным делителем перед подачей на микроконтроллер.
|
||||
@@ -18,10 +18,10 @@
|
||||
|А4|5|
|
||||
|А5|5|
|
||||
#### ШИМ
|
||||
На плате Elbear Ace-Uno доступно 8 выводов для формирования ШИМ-сигнала: D3, D5, D6, D9...D13. Генерация сигнала осуществляется с помощью 32-битного таймера. Выводы D3, D5, D6, D9 подключены к таймеру 1, выводы D10...D13 подключены к таймеру 2. Выводы, подключенные к одному и тому же таймеру, выдают ШИМ-сигнал одинаковой частоты.
|
||||
Цифровой вывод D10 не может быть использован для генерации ШИМ, если одновременно активен интерфейс SPI. Это ограничение связано с особенностями работы микроконтроллера. Ограничение не распространяется на использование D10 в качестве цифрового вывода при активном SPI.
|
||||
На плате ELBEAR ACE-UNO доступно 8 выводов для формирования ШИМ-сигнала: D3, D5, D6, D9...D13. Генерация сигнала осуществляется с помощью 32-битного таймера. Выводы D3, D5, D6, D9 подключены к таймеру 1, выводы D10...D13 подключены к таймеру 2. Выводы, подключенные к одному и тому же таймеру, выдают ШИМ-сигнал одинаковой частоты.
|
||||
Цифровые выводы D9, D10 не могут быть использованы для генерации ШИМ, если одновременно активен интерфейс SPI (при использовании экземпляра `SPI` недоступен ШИМ на выводе D10, при использовании экземпляра `SPI1` - на выводе D9). Это ограничение связано с особенностями работы микроконтроллера. Ограничение не распространяется на использование D9, D10 в качестве цифрового вывода при активном SPI.
|
||||
### Прерывания
|
||||
На плате Elbear Ace-Uno доступно 8 прерываний, настраиваемых функцией `void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode)`:
|
||||
На плате ELBEAR ACE-UNO доступно 8 прерываний, настраиваемых функцией `void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode)`:
|
||||
|
||||
|Цифровой вывод|Номер прерывания|
|
||||
|---------|---------|
|
||||
@@ -38,4 +38,8 @@
|
||||
|
||||
### Serial
|
||||
Интерфейс UART0 доступен на выводах D0, D1, для работы с ним используется экземпляр класса под названием `Serial`.
|
||||
Интерфейс UART1 доступен на выводах D7, D8, используемый экземпляр класса - `Serial1`.
|
||||
Интерфейс UART1 доступен на выводах D7, D8, используемый экземпляр класса - `Serial1`.
|
||||
|
||||
### SPI
|
||||
Интерфейс SPI1 доступен на выводах D11, D12, D13. Для работы с ним используется экземпляр класса под названием `SPI`.
|
||||
Интерфейс SPI0 доступен на выводах D3, D5, D6. Используемый экземпляр класса - `SPI1`.
|
||||
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 101 KiB |
@@ -56,4 +56,9 @@
|
||||
Интерфейс UART0 доступен на выводах P0_5, P0_6, для работы с ним используется экземпляр класса под названием `Serial`.
|
||||
Интерфейс UART1 доступен на выводах P1_8, P1_9, используемый экземпляр класса - `Serial1`.
|
||||
USB-UART преобразователь, установленный на плате, поддерживает стандартные скорости UART до 57600 бод. Нестандартные скорости должны быть кратны
|
||||
12*32=384, например, 240000 бод, 768000 бод.
|
||||
12*32=384, например, 240000 бод, 768000 бод.
|
||||
|
||||
### SPI
|
||||
Интерфейс SPI1 доступен на выводах P1_0, P1_1, P1_2. Для работы с ним используется экземпляр класса под названием `SPI`.
|
||||
Интерфейс SPI0 доступен на выводах P0_0, P0_1, P0_2. Используемый экземпляр класса - `SPI1`.
|
||||
Для корректной работы аппаратного SPI микроконтроллер так же использует выводы P1_3 при работе SPI1 и P0_3 при работе SPI0. В связи с этим данные выводы недоступны для использования при работе соответствующего SPI.
|
||||
|
After Width: | Height: | Size: 120 KiB |
@@ -0,0 +1,45 @@
|
||||
# Режим отладки в ArduinoIDE 2
|
||||
Начиная с версии пакета 0.5.0 для всех плат, входящих в состав пакета, доступен режим отладки скетчей.
|
||||
Для отладки плат ELBEAR ACE-UNO, ELBEAR ACE-NANO, ELSOMIK понадобится программатор [ELJTAG](https://elron.tech/eljtag-programmator-risc-v-mcu/). Плата START-MIK32 содержит встроенный программатор, для использования которого необходимо передвинуть переключатель режима программатора на плате в положение `JTAG`.
|
||||
Режим отладки доступен в ArduinoIDE версии 2 и выше.
|
||||
|
||||
# Предварительная подготовка
|
||||
Для отладки в Arduino IDE используется плагин Cortex-Debug. По умолчанию в IDE установлена версия 1.5.1, но с указанной версией режим отладки для плат из состава пакета работает некорректно. Для корректной работы необходимо использовать более новую версию плагина.
|
||||
Для подготовки к работе в режиме отладки необходимо сделать следующее:
|
||||
* Установить драйвера для работы с программатором, если ранее они не были установлены. Подробности можно найти в [инструкции](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.
|
||||
* Скачать архив, содержащий небходимую версию Cortex-Debug и все его зависимости, по [ссылке](https://elron.tech/files/mik32_arduinoIDE_debug_plagins.zip).
|
||||
* Содержимое архива переместить в папку `plugins` из папки с установленной ArduinoIDE. Примерный путь - `C:\Program Files\Arduino IDE\resources\app\plugins`. Содержимое архива (несколько файлов с расширением `.vsix`) разместить в указанной папке, не создавая промежуточных папок.
|
||||
* Запустить ArduinoIDE и по инструкции, описанной ниже, запустить режим отладки.
|
||||
* Удостовериться, что при запуске отладки в первой строке консоли отладки отображается нужная версия плагина - 1.12.1:
|
||||
`Cortex-Debug: VSCode debugger extension version 1.12.1 git(652d042). Usage info: https://github.com/Marus/cortex-debug#usage`
|
||||
* При возникновении сложностей с вопросами можно обратиться в [телеграмм-канал компании](https://t.me/elrontech).
|
||||
|
||||
После установки новой версии плагина в строке меню и в области вывода информации появятся две новые вкладки - `MEMORY` и `xRTOS`. Это плагины, которые необходимы для работы Cortex-Debug. Они не используются непосредственно пользователем при работе, но удалять их нельзя, иначе режим отладки с установленной версией Cortex-Debug не запустится.
|
||||
|
||||
# Запуск отладки
|
||||
Последовательность действий для запуска режима отладки:
|
||||
1. В ArduinoIDE открыть скетч, который необходимо запустить в режиме отладки.
|
||||
2. Выбрать нужную плату - `Инструменты -> Плата`.
|
||||
3. Подключить плату к ПК через программатор. Для плат ELBEAR ACE-UNO, ELBEAR ACE-NANO, ELSOMIK использовать ELJTAG. На плате START-MIK32 передвинуть переключатель режима программатора в положение `JTAG`.
|
||||
4. В ArduinoIDE выбрать используемый программатор - `Инструменты -> Программатор -> mik32 uploader`.
|
||||
5. Активировать оптимизацию для отладки при сборке скетча - `Скетч -> Оптимизировать для отладки`. Если отладку запустить без указанной оптимизации, при пошаговом прохождении скетча могут возникнуть проблемы, например, с "перепрыгиванием" лишних строк кода, или значения некоторых переменных могут отображаться некорректно.
|
||||
6. Скомпилировать скетч - `Скетч -> Проверить/Скомпилировать`.
|
||||
7. Загрузить скетч на плату. Загружать скетч можно как по USB (`Скетч -> Загрузить на плату`), так и через программатор (`Скетч -> Загрузить на плату при помощи программатора`).
|
||||
! При запуске отладки скетч не компилируется и не загружается на плату автоматически. Поэтому при внесении изменений в код необходимо вручную повторять пункты 6,7 перед запуском отладки.
|
||||
8. Открыть панель отладочника в меню слева:
|
||||

|
||||
После запуска отладки здесь будут доступны к просмотру стек вызовов функций, значения переменных, установленные точки останова, а также состояние периферийных регистров микроконтроллера.
|
||||
9. Для запуска отладки необходимо нажать кнопку `Начать отладку` в верхней части экрана:
|
||||

|
||||
При этом:
|
||||
- Откроется новый терминал `gdb-server`, в котором запустится программа openocd. Терминал отображает статус соединения с микроконтроллером.
|
||||
- Запустится режим отладки, а курсор выполнения программы остановится в начале функции `setup()`.
|
||||
- Станут активными кнопки пошагового перемещения по программе.
|
||||
- Во всех разделах на панели отладки обновится информация.
|
||||
10. Для просмотра отладочной информации можно запустить консоль отладки. Для этого на панели отладки нужно нажать соответствующую кнопку:
|
||||

|
||||
|
||||
В [официальной статье](https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-debugger/) подробно описано, как работать с точками останова и пошаговой отладкой кода. Помимо этого, режим отладки позволяет получить доступ к системным регистрам и регистрам периферии микроконтроллера.
|
||||

|
||||
|
||||
При работе с платами, входящими в состав пакета, накладывается ограничение на доступное количество точек останова - одновременно можно использовать не более 2-х точек. При этом вторая точка останова становится доступной после запуска отладки, когда курсор выполнения программы остановится на функции `setup()`. Режим отладки не запустится, если в скетче уже установлены обе точки останова.
|
||||
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 175 KiB |
@@ -0,0 +1,90 @@
|
||||
# ELSOMIK
|
||||
Особенности работы с платой ELSOMIK в среде программирования ArduinoIDE.
|
||||
### Функциональное назначение выводов для плат ELSOMIK OEM и ELSOMIK SE
|
||||

|
||||

|
||||
|Номер вывода|Доступные функции|Номер вывода|Доступные функции|
|
||||
|---------|---------|---------|---------|
|
||||
|P0_0|PWM, MISO0|P1_0|PWM, MISO1|
|
||||
|P0_1|PWM, MOSI0|P1_1|PWM, MOSI1|
|
||||
|P0_2|PWM, SCLK0, ADC2|P1_2|PWM, SCLK1|
|
||||
|P0_3|PWM, NSS0|P1_3|PWM, NSS1|
|
||||
|P0_4|ADC3|P1_4|INT1|
|
||||
|P0_5|RX0|P1_5|ADC0, INT2|
|
||||
|P0_6|TX0|P1_6|INT3|
|
||||
|P0_7|ADC4|P1_7|ADC1|
|
||||
|P0_8|INT0|P1_8|RX1|
|
||||
|P0_9|SDA0, ADC5|P1_9|TX1, INT4|
|
||||
|P0_10|SCL0|P1_10|INT5|
|
||||
|P0_11|TDI, ADC6|P1_11|REF|
|
||||
|P0_12|TCK|P1_12|SDA1|
|
||||
|P0_13|TMS, ADC7|P1_13|SCL1|
|
||||
|P0_14|TRST|P1_14|-|
|
||||
|P0_15|TDO|P1_15|INT6|
|
||||
|P2_6|-|P2_7|INT7|
|
||||
|
||||
### Загрузка скетчей
|
||||
На плате отсутствуют встроенные преобразователи, позволяющие загружать скетчи по USB через COM-порт, однако каждая плата поставляется с предварительно записанным начальным загрузчиком. Для записи скетчей через USB потребуется использование внешнего USB-UART преобразователя, подключаемого к выводам платы P0_5 (RX0) и P0_6 (TX0), которые соответствуют интерфейсу UART0.
|
||||
Перед загрузкой скетча необходимо кратковременно ввести контроллер в состояние RESET. Если используется USB-UART преобразователь с выведенным сигналом DTR, необходимо соединить DTR с выводом RST на плате через керамический конденсатор емкостью от 0,47 мкФ до 2,2 мкФ. В случае отсутствия сигнала DTR, необходимо вручную соединить вывод RST платы с землей и отпустить его непосредственно перед началом записи скетча.
|
||||
### Цифровые выводы
|
||||
Выводы на плате 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` на плате обозначены иначе, ниже представлена таблица соответствия:
|
||||
|Обозначение на плате|Номер вывода|
|
||||
|---------|---------|
|
||||
|TDI|P0_11|
|
||||
|TCK|P0_12|
|
||||
|TMS|P0_13|
|
||||
|TRST|P0_14|
|
||||
|TDO|P0_15|
|
||||
|
||||
### АЦП
|
||||
На плате доступно 8 выводов, которые можно использовать в качестве каналов АЦП. Для работы с ними в функцию `analogRead()` необходимо передать номер канала или номер соответствующего цифрового вывода. Доступные каналы и их соответствие номерам выводов платы:
|
||||
|
||||
|Цифровой вывод|Номер канала АЦП|
|
||||
|---------|---------|
|
||||
|P1_5|A0|
|
||||
|P1_7|A1|
|
||||
|P0_2|A2|
|
||||
|P0_4|A3|
|
||||
|P0_7|A4|
|
||||
|P0_9|A5|
|
||||
|P0_11|A6|
|
||||
|P0_13|A7|
|
||||
#### ШИМ
|
||||
На плате ELSOMIK в ArduinoIDE доступно 8 выводов для формирования ШИМ-сигнала. Генерация сигнала осуществляется с помощью 32-битного таймера. Выводы, подключенные к одному и тому же таймеру, выдают ШИМ-сигнал одинаковой частоты.
|
||||
Доступные выводы:
|
||||
|
||||
|Цифровой вывод|Используемый таймер|
|
||||
|---------|---------|
|
||||
|P0_0|таймер 1|
|
||||
|P0_1|таймер 1|
|
||||
|P0_2|таймер 1|
|
||||
|P0_3|таймер 1|
|
||||
|P1_0|таймер 2|
|
||||
|P1_1|таймер 2|
|
||||
|P1_2|таймер 2|
|
||||
|P1_3|таймер 2|
|
||||
|
||||
При использовании SPI формирование ШИМ сигнала на выводах P1_0 ... P1_3 недоступно.
|
||||
### Прерывания
|
||||
На плате ELSOMIK доступно 8 прерываний, настраиваемых функцией `void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode)`:
|
||||
|
||||
|Цифровой вывод|Номер прерывания|
|
||||
|---------|---------|
|
||||
|P0_8|0|
|
||||
|P1_4|1|
|
||||
|P1_5|2|
|
||||
|P1_6|3|
|
||||
|P1_9|4|
|
||||
|P1_10|5|
|
||||
|P1_15|6|
|
||||
|P2_7|7|
|
||||
|
||||
### Serial
|
||||
Интерфейс UART0 доступен на выводах P0_5, P0_6, для работы с ним используется экземпляр класса под названием `Serial`.
|
||||
Интерфейс UART1 доступен на выводах P1_8, P1_9, используемый экземпляр класса - `Serial1`.
|
||||
|
||||
### SPI
|
||||
Интерфейс SPI1 доступен на выводах P1_0, P1_1, P1_2. Для работы с ним используется экземпляр класса под названием `SPI`.
|
||||
Интерфейс SPI0 доступен на выводах P0_0, P0_1, P0_2. Используемый экземпляр класса - `SPI1`.
|
||||
Для корректной работы аппаратного SPI микроконтроллер так же использует выводы P1_3 при работе SPI1 и P0_3 при работе SPI0. В связи с этим данные выводы недоступны для использования при работе соответствующего SPI.
|
||||
@@ -0,0 +1,48 @@
|
||||
# ELBEAR ACE-NANO
|
||||
Особенности работы с платами ELBEAR ACE-NANO в среде программирования ArduinoIDE.
|
||||
### Функциональное назначение выводов
|
||||

|
||||
### Цифровые выводы
|
||||
На плате ELBEAR ACE-NANO доступен встроенный светодиод. Для его использования необходимо воспользоваться макросом `LED_BUILTIN`, передавая его в качестве аргумента функции вместо номера цифрового вывода. Макросу соответствует номер вывода D22.
|
||||
### Аналоговые выводы
|
||||
Выводы A0...A7 на плате могут использоваться как в аналоговом, так и в цифровом режиме.
|
||||
Для использования вывода в качестве аналогового необходимо перевести соответствующий DIP-переключатель, расположенный рядом с аналоговыми выводами, в положение OFF. В этом режиме внешнее напряжение, подаваемое на вывод, будет понижаться резистивным делителем перед подачей на микроконтроллер.
|
||||
Для использования вывода в качестве цифрового нужно перевести переключатель в положение ON. В этом случае напряжение с вывода платы передается на микроконтроллер без изменений.
|
||||
Выводы А4...А7 используют один и тот же канал АЦП, поэтому не могут использоваться одновременно.
|
||||
Таблица соответствия выводов платы и номера DIP-переключателя представлена ниже. Переключатель 5 относится сразу к четырем аналоговым выводам - А4...А7.
|
||||
|Вывод|Номер переключателя|
|
||||
|---------|---------|
|
||||
|А0|1|
|
||||
|А1|2|
|
||||
|А2|3|
|
||||
|А3|4|
|
||||
|А4|5|
|
||||
|А5|5|
|
||||
|А6|5|
|
||||
|А7|5|
|
||||
#### ШИМ
|
||||
На плате ELBEAR ACE-NANO доступно 8 выводов для формирования ШИМ-сигнала: D3, D5, D6, D9...D13. Генерация сигнала осуществляется с помощью 32-битного таймера. Выводы D3, D5, D6, D9 подключены к таймеру 1, выводы D10...D13 подключены к таймеру 2. Выводы, подключенные к одному и тому же таймеру, выдают ШИМ-сигнал одинаковой частоты.
|
||||
Цифровые выводы D9, D10 не могут быть использованы для генерации ШИМ, если одновременно активен интерфейс SPI (при использовании экземпляра `SPI` недоступен ШИМ на выводе D10, при использовании экземпляра `SPI1` - на выводе D9). Это ограничение связано с особенностями работы микроконтроллера. Ограничение не распространяется на использование D9, D10 в качестве цифрового вывода при активном SPI.
|
||||
### Прерывания
|
||||
На плате ELBEAR ACE-NANO доступно 8 прерываний, настраиваемых функцией `void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode)`:
|
||||
|
||||
|Цифровой вывод|Номер прерывания|
|
||||
|---------|---------|
|
||||
|D2|0|
|
||||
|D3|1|
|
||||
|D4|2|
|
||||
|D5|3|
|
||||
|D6|4|
|
||||
|D8|5|
|
||||
|D9|6|
|
||||
|A1|7|
|
||||
|
||||
При использовании аналогового вывода A1 для работы с прерываниями необходимо предварительно перевести вывод в режим цифрового. Для этого нужно перевести DIP-переключатель номер 2 в положение ON.
|
||||
|
||||
### Serial
|
||||
Интерфейс UART0 доступен на выводах D0, D1, для работы с ним используется экземпляр класса под названием `Serial`.
|
||||
Интерфейс UART1 доступен на выводах D7, D8, используемый экземпляр класса - `Serial1`.
|
||||
|
||||
### SPI
|
||||
Интерфейс SPI1 доступен на выводах D11, D12, D13. Для работы с ним используется экземпляр класса под названием `SPI`.
|
||||
Интерфейс SPI0 доступен на выводах D3, D5, D6. Используемый экземпляр класса - `SPI1`.
|
||||
|
Before Width: | Height: | Size: 233 KiB |
|
After Width: | Height: | Size: 2.3 MiB |