elbear_arduino_bsp/docs/elsomik_description.md

6.4 KiB
Raw Blame History

Elsomik

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

Функциональное назначение выводов для плат Elsomik OEM и Elsomik SE

elsomikOEM_pinout.png elsomikSE_pinout.png

Номер вывода Доступные функции Номер вывода Доступные функции
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.