forked from Elron_dev/elbear_arduino_bsp
- в модулях Wire, SPI, Serial приведена в соответствие нумерация используемых экземпляров и периферии микроконтроллера. - в функции analogWrite() перед запуском ШИМ проверяется, не запущен ли уже указанный канал. - добавлена возможность переопределения функции main() в скетчах. - при старте программы задается граница кэшируемой области SPIFI в соответствии с размером текущего исполняемого кода. - исправление выявленных ошибок. Co-authored-by: KLASSENTS <klassen@elron.tech> Co-committed-by: KLASSENTS <klassen@elron.tech>
68 lines
5.7 KiB
Markdown
68 lines
5.7 KiB
Markdown
# START-MIK32
|
||
Особенности работы с платой START-MIK32 в среде программирования ArduinoIDE.
|
||
### Функциональное назначение выводов
|
||

|
||
|
||
### Загрузка скетчей
|
||
Для загрузки скетчей в 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`. |