From 0fa451256373b99bd065ea75b60aad9cda4ecaa0 Mon Sep 17 00:00:00 2001 From: klassents Date: Tue, 24 Dec 2024 09:42:55 +0300 Subject: [PATCH 1/9] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20docs/Start=5Fmik32=5Fdescription.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/Start_mik32_description.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/docs/Start_mik32_description.md b/docs/Start_mik32_description.md index 3df9a97..ac12c1d 100644 --- a/docs/Start_mik32_description.md +++ b/docs/Start_mik32_description.md @@ -4,10 +4,24 @@ ![Start_V1_pinout.png](Start_V1_pinout.png) ### Загрузка скетчей -todo описать установку перемычек на плате +Для загрузки скетчей в ArduinoIDE необходимо передвинуть переключатель режима программатора 3 на плате в положение `COM`. Так же необходимо установить две перемычки на разъем 5 - первой перемычкой замкнуть выводы COM_RX и MCU_TX, а второй - выводы COM_TX и MCU_RX. ### Цифровые выводы -todo как номер вывода передавать в функции -На плате START-MIK32 доступны встроенные светодиоды и кнопка. Для их использования необходимо воспользоваться макросами `LED_BUILTIN` и `BTN_BUILTIN`, передавая их в качестве аргументов функции вместо номера цифрового вывода. Макросу `LED_BUILTIN` соответствует номер вывода D22, а макросу `BTN_BUILTIN` - D23. +Выводы на плате 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()` необходимо передать номер канала или номер соответствующего цифрового вывода. Доступные каналы и их соответствие номерам выводов платы: + +|Номер канала АЦП|Цифровой вывод| +|---------|---------| +|A0|P1_5| +|A1|P1_7| +|A2|P0_2| +|A3|P0_4| +|A4|P0_7| +|A5|P0_9| +|A6|P0_11| +|A7|P0_13| #### ШИМ На плате START-MIK32 доступны следующие выводы для формирования ШИМ-сигнала: D3, D5, D6, D9, D10, D11. Генерация сигнала осуществляется с помощью 32-битного таймера. Выводы D3, D5, D6, D9 подключены к таймеру 1, выводы D10, D11 подключены к таймеру 2. Выводы, подключенные к одному и тому же таймеру, выдают ШИМ-сигнал одинаковой частоты. ### Прерывания From 1c8eda6c30d69d433e3dd7ee22993341adc3e1c5 Mon Sep 17 00:00:00 2001 From: klassents Date: Tue, 24 Dec 2024 09:55:07 +0300 Subject: [PATCH 2/9] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20docs/Start=5Fmik32=5Fdescription.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/Start_mik32_description.md | 49 +++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/docs/Start_mik32_description.md b/docs/Start_mik32_description.md index ac12c1d..08e1bce 100644 --- a/docs/Start_mik32_description.md +++ b/docs/Start_mik32_description.md @@ -4,7 +4,7 @@ ![Start_V1_pinout.png](Start_V1_pinout.png) ### Загрузка скетчей -Для загрузки скетчей в ArduinoIDE необходимо передвинуть переключатель режима программатора 3 на плате в положение `COM`. Так же необходимо установить две перемычки на разъем 5 - первой перемычкой замкнуть выводы COM_RX и MCU_TX, а второй - выводы COM_TX и MCU_RX. +Для загрузки скетчей в 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`. @@ -12,30 +12,43 @@ ### АЦП На плате доступно 8 выводов, которые можно использовать в качестве каналов АЦП. Для работы с ними в функцию `analogRead()` необходимо передать номер канала или номер соответствующего цифрового вывода. Доступные каналы и их соответствие номерам выводов платы: -|Номер канала АЦП|Цифровой вывод| +|Цифровой вывод|Номер канала АЦП| |---------|---------| -|A0|P1_5| -|A1|P1_7| -|A2|P0_2| -|A3|P0_4| -|A4|P0_7| -|A5|P0_9| -|A6|P0_11| -|A7|P0_13| +|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 доступны следующие выводы для формирования ШИМ-сигнала: D3, D5, D6, D9, D10, D11. Генерация сигнала осуществляется с помощью 32-битного таймера. Выводы D3, D5, D6, D9 подключены к таймеру 1, выводы D10, D11 подключены к таймеру 2. Выводы, подключенные к одному и тому же таймеру, выдают ШИМ-сигнал одинаковой частоты. +На плате 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| ### Прерывания На плате START-MIK32 доступно 8 прерываний, настраиваемых функцией `void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode)`: |Цифровой вывод|Номер прерывания| |---------|---------| -|D2|0| -|D3|1| -|D4|2| -|D5|3| -|D8|4| -|D9|5| -|`BTN_BUILTIN`|6| +|`BTN_BUILTIN` (P0_8)|0| +|P0_9|1| +|P0_10|2| +|P0_11|3| +|P0_12|4| +|P0_13|5| +|P0_14|6| +|P0_15|6| ### Serial Для работы доступно два последовательных интерфейса. Нулевой интерфейс доступен на выводах D0, D1, для работы с ним используется экземпляр класса под названием `Serial`. Нулевой интерфейс используется для вывода информации в Монитор порта в Arduino IDE. From b5a7b9776947333beef59b9c6ca3436a72ffcf46 Mon Sep 17 00:00:00 2001 From: klassents Date: Tue, 24 Dec 2024 10:10:58 +0300 Subject: [PATCH 3/9] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20docs/Start=5Fmik32=5Fdescription.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/Start_mik32_description.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/Start_mik32_description.md b/docs/Start_mik32_description.md index 08e1bce..df5b59c 100644 --- a/docs/Start_mik32_description.md +++ b/docs/Start_mik32_description.md @@ -42,17 +42,16 @@ |Цифровой вывод|Номер прерывания| |---------|---------| |`BTN_BUILTIN` (P0_8)|0| -|P0_9|1| +|P1_9|1| |P0_10|2| -|P0_11|3| +|P1_15|3| |P0_12|4| |P0_13|5| |P0_14|6| -|P0_15|6| +|P0_15|7| ### Serial -Для работы доступно два последовательных интерфейса. Нулевой интерфейс доступен на выводах D0, D1, для работы с ним используется экземпляр класса под названием `Serial`. Нулевой интерфейс используется для вывода информации в Монитор порта в Arduino IDE. -Первый интерфейс доступен на выводах D7, D8, используемый экземпляр класса - `Serial1`. -todo доступные для работы скорости - -todo примеры работы в библиотеках \ No newline at end of file +Для работы доступно два последовательных интерфейса. Нулевой интерфейс доступен на выводах P0_5, P0_6, для работы с ним используется экземпляр класса под названием `Serial`. Нулевой интерфейс используется для вывода информации в Монитор порта в Arduino IDE. +Первый интерфейс доступен на выводах P1_8, P1_9, используемый экземпляр класса - `Serial1`. +USB-UART преобразователь, установленный на плате, поддерживает стандартные скорости UART до 57600 бод. Нестандартные скорости должны быть кратны +12*32=384, например, 240000 бод, 768000 бод. \ No newline at end of file From 12b7277cbbc0d2910a49720ebb8cf5c55c1eed74 Mon Sep 17 00:00:00 2001 From: klassents Date: Tue, 24 Dec 2024 10:14:49 +0300 Subject: [PATCH 4/9] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8724773..733ca48 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ #### АЦП Встроенный в MIK32 АЦП обладает разрешением 12 бит, однако по умолчанию в Arduino IDE применяется разрешение 10 бит. С помощью функции `void analogReadResolution(uint8_t resolution)` можно изменять разрешение в диапазоне от 1 до 32 бит. Функция `uint32_t analogRead(uint32_t PinNumber)` возвращает результаты измерения после усреднения по 10 значениям. +Номера выводов, поддерживающих АЦП, отличаются для каждой платы и перечислены в их описаниях. #### ШИМ По умолчанию частота сформированного ШИМ-сигнала составляет 1 кГц. Функция `void analogWriteFrequency(uint32_t freq)` позволяет изменить частоту сигнала в диапазоне от 1 Гц до 1 МГц. По умолчанию разрешение, используемое в функции `void analogWrite(uint32_t PinNumber, uint32_t writeVal)`, составляет 8 бит. Функция `void analogWriteResolution(uint8_t resolution)` позволяет измененить разрешение в диапазоне от 1 до 32 бит. From faaac3d52160902f9e6e2b1808ecb64623e1a3a0 Mon Sep 17 00:00:00 2001 From: klassents Date: Tue, 24 Dec 2024 10:16:54 +0300 Subject: [PATCH 5/9] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 733ca48..d12bd88 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Номера выводов, поддерживающих ШИМ, отличаются для каждой платы и перечислены в их описаниях. ### Прерывания -Платы, входящих в состав пакета, позволяют использовать прерывания, настраиваемые функцией `void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode)`. Номера выводов, поддерживающих прерывания, отличаются для каждой платы и перечислены в их описаниях. +Платы, входящих в состав пакета, позволяют использовать прерывания, настраиваемые функцией `void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode)`. Номера выводов, поддерживающих прерывания, отличаются для каждой платы и перечислены в их описаниях. Для получения номера прерывания по номеру вывода существует функция `int8_t digitalPinToInterrupt(uint32_t digPinNumber)`. В микроконтроллере MIK32 предусмотрен всего один вектор прерывания. Когда срабатывает прерывание от любого источника, общая функция-обработчик последовательно проверяет все возможные источники и, при необходимости, вызывает соответствующие обработчики конкретных модулей. Поэтому важно, чтобы функции, вызываемые при прерываниях, были небольшими и обеспечивали максимально быстрое завершение обработки. Это позволит избежать задержек и снизит риск пропуска последующих прерываний. @@ -37,7 +37,7 @@ Глобальное разрешение прерываний активируется после завершения функции `setup()`. Если необходимо использовать прерывания внутри самой функции `setup()`, их можно включить вручную, вызвав функцию `interrupts()` перед вызовом функций, работающих с прерываниями. Прерывания используются для приема данных модулями `Serial`, `Wire`, для работы библиотеки `Servo`, функцией `tone()`. ### Serial -Для работы доступно два последовательных интерфейса. Нулевой интерфейс используется экземпляром класса `Serial`. Информации в Монитор порта в Arduino IDE поступает через него. Первый интерфейс используется экземпляром класса `Serial1`. Выводы, на которых доступны указанные интерфейсы, перечислены в описании отдельных плат. +Для работы доступно два последовательных интерфейса. Нулевой интерфейс используется экземпляром класса `Serial`. Информации в Монитор порта в Arduino IDE поступает через него. Первый интерфейс используется экземпляром класса `Serial1`. Выводы, на которых доступны указанные интерфейсы, перечислены в описании отдельных плат. Доступны следующие макросы для настройки режима работы каждого интерфейса в функции `Serial.begin()`: `SERIAL_7N1`, `SERIAL_8N1`, `SERIAL_7N2`, `SERIAL_8N2`, `SERIAL_7E1`, `SERIAL_8E1`, `SERIAL_7E2`, `SERIAL_8E2`, `SERIAL_7O1`, `SERIAL_8O1`, `SERIAL_7O2`, `SERIAL_8O2`. Здесь длина данных - 7 или 8 бит; бит четности - нет(N), четный(E), нечетный(O); стоп бит - 1 или 2 бита. ### Предупреждения об ошибках From b6f00ae5e08d08d4388aba9e4d87b4a9d9823010 Mon Sep 17 00:00:00 2001 From: klassents Date: Tue, 24 Dec 2024 10:17:09 +0300 Subject: [PATCH 6/9] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d12bd88..666516d 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ #### ШИМ По умолчанию частота сформированного ШИМ-сигнала составляет 1 кГц. Функция `void analogWriteFrequency(uint32_t freq)` позволяет изменить частоту сигнала в диапазоне от 1 Гц до 1 МГц. По умолчанию разрешение, используемое в функции `void analogWrite(uint32_t PinNumber, uint32_t writeVal)`, составляет 8 бит. Функция `void analogWriteResolution(uint8_t resolution)` позволяет измененить разрешение в диапазоне от 1 до 32 бит. -Остановить генерацию ШИМ-сигнала можно, вызвав функцию `void analogWriteStop(uint32_t PinNumber)` или функции `void digitalWrite(uint32_t PinNumber, uint32_t Val)`/`int digitalRead(uint32_t PinNumber)`. +Остановить генерацию ШИМ-сигнала можно, вызвав функцию `void analogWriteStop(uint32_t PinNumber)` или функции `void digitalWrite(uint32_t PinNumber, uint32_t Val)`/`int digitalRead(uint32_t PinNumber)`. Номера выводов, поддерживающих ШИМ, отличаются для каждой платы и перечислены в их описаниях. ### Прерывания From 0fd499d48fffb4ff1922276901a610fa4322910d Mon Sep 17 00:00:00 2001 From: klassents Date: Tue, 24 Dec 2024 10:19:17 +0300 Subject: [PATCH 7/9] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20docs/Elbear=5Fdescription.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/Elbear_description.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Elbear_description.md b/docs/Elbear_description.md index a3fc107..4cffed3 100644 --- a/docs/Elbear_description.md +++ b/docs/Elbear_description.md @@ -21,5 +21,5 @@ |`BTN_BUILTIN`|6| ### Serial -Для работы доступно два последовательных интерфейса. Нулевой интерфейс доступен на выводах D0, D1, для работы с ним используется экземпляр класса под названием `Serial`. Нулевой интерфейс используется для вывода информации в Монитор порта в Arduino IDE. -Первый интерфейс доступен на выводах D7, D8, используемый экземпляр класса - `Serial1`. \ No newline at end of file +Интерфейс UART0 доступен на выводах D0, D1, для работы с ним используется экземпляр класса под названием `Serial`. +Интерфейс UART1 доступен на выводах D7, D8, используемый экземпляр класса - `Serial1`. \ No newline at end of file From 833b047d08f7ff491c6476d47901e985e041bc6c Mon Sep 17 00:00:00 2001 From: klassents Date: Tue, 24 Dec 2024 10:19:33 +0300 Subject: [PATCH 8/9] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20docs/Elbear=5Fdescription.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/Elbear_description.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Elbear_description.md b/docs/Elbear_description.md index 4cffed3..150508e 100644 --- a/docs/Elbear_description.md +++ b/docs/Elbear_description.md @@ -21,5 +21,5 @@ |`BTN_BUILTIN`|6| ### Serial -Интерфейс UART0 доступен на выводах D0, D1, для работы с ним используется экземпляр класса под названием `Serial`. +Интерфейс UART0 доступен на выводах D0, D1, для работы с ним используется экземпляр класса под названием `Serial`. Интерфейс UART1 доступен на выводах D7, D8, используемый экземпляр класса - `Serial1`. \ No newline at end of file From db82ddc6c8f1f44c1c429d6dbbe664bf351aa7fd Mon Sep 17 00:00:00 2001 From: klassents Date: Tue, 24 Dec 2024 10:23:09 +0300 Subject: [PATCH 9/9] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20docs/Start=5Fmik32=5Fdescription.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/Start_mik32_description.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Start_mik32_description.md b/docs/Start_mik32_description.md index df5b59c..eefb87b 100644 --- a/docs/Start_mik32_description.md +++ b/docs/Start_mik32_description.md @@ -51,7 +51,7 @@ |P0_15|7| ### Serial -Для работы доступно два последовательных интерфейса. Нулевой интерфейс доступен на выводах P0_5, P0_6, для работы с ним используется экземпляр класса под названием `Serial`. Нулевой интерфейс используется для вывода информации в Монитор порта в Arduino IDE. -Первый интерфейс доступен на выводах P1_8, P1_9, используемый экземпляр класса - `Serial1`. +Интерфейс UART0 доступен на выводах P0_5, P0_6, для работы с ним используется экземпляр класса под названием `Serial`. +Интерфейс UART1 доступен на выводах P1_8, P1_9, используемый экземпляр класса - `Serial1`. USB-UART преобразователь, установленный на плате, поддерживает стандартные скорости UART до 57600 бод. Нестандартные скорости должны быть кратны 12*32=384, например, 240000 бод, 768000 бод. \ No newline at end of file