elbear_arduino_bsp/docs/Start_mik32_description.md
KLASSENTS 778608b576 Проверка в analogWrite(), добавление экземпляров для Wire, SPI, Serial
В функции analogWrite() добавлена проверка, включен ли уже канал - если включен, применяется новое значение только если оно отличается от текущего.
В модулях Wire, SPI, Serial теперь по два экземпляра в соответствии с периферией МК. Для каждой платы задается свой экземпляр, используемый по умолчанию
Co-authored-by: KLASSENTS <klassen@elron.tech>
Co-committed-by: KLASSENTS <klassen@elron.tech>
2025-05-27 12:35:36 +03:00

5.7 KiB
Raw Blame History

START-MIK32

Особенности работы с платой START-MIK32 в среде программирования ArduinoIDE.

Функциональное назначение выводов

Start_V1_pinout.png

Загрузка скетчей

Для загрузки скетчей в ArduinoIDE необходимо передвинуть переключатель режима программатора на плате в положение COM. Так же необходимо установить две перемычки на разъем 5 - первой перемычкой замкнуть выводы COM_RX и MCU_TX, а второй - выводы COM_TX и MCU_RX.

Цифровые выводы

Выводы на плате 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.
На плате есть встроенные светодиоды и кнопка. Светодиоды подключены к выводам P0_3, P1_3. Кнопка подключена к выводу Р0_8. Для удобства при работе с ними можно воспользоваться макросами LED_BUILTIN(P0_3), LED_BUILTIN1(P1_3) и BTN_BUILTIN, передавая их в качестве аргументов функции вместо номера цифрового вывода.

АЦП

На плате доступно 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

ШИМ

На плате START-MIK32 в 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 недоступно.

Прерывания

На плате START-MIK32 доступно 8 прерываний, настраиваемых функцией void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode):

Цифровой вывод Номер прерывания
BTN_BUILTIN (P0_8) 0
P1_9 1
P0_10 2
P1_15 3
P0_12 4
P0_13 5
P0_14 6
P0_15 7

Serial

Интерфейс UART0 доступен на выводах RX, TX и P0_5, P0_6. Для работы с ним используется экземпляр класса под названием Serial.
Интерфейс UART1 доступен на выводах P1_8, P1_9, используемый экземпляр класса - Serial1.
USB-UART преобразователь, установленный на плате, поддерживает стандартные скорости UART до 57600 бод. Нестандартные скорости должны быть кратны 12*32=384, например, 240000 бод, 768000 бод.

SPI

Интерфейс SPI1 доступен на выводах MOSI, MISO, CLK и P1_0, P1_1, P1_2. Для работы с ним используется экземпляр класса под названием SPI.
Интерфейс SPI0 доступен на выводах P0_0, P0_1, P0_2. Используемый экземпляр класса - SPI0.
Для корректной работы аппаратного SPI микроконтроллер так же использует выводы P1_3 при работе SPI1 и P0_3 при работе SPI0. В связи с этим данные выводы недоступны для использования при работе соответствующего SPI.

I2C

Интерфейс I2C1 доступен на выводах SDA, SCL и P1_12, P1_13, для работы с ним используется экземпляр класса под названием Wire.
Интерфейс I2C0 доступен на выводах P0_9, P0_10, используемый экземпляр класса - Wire0.