boards:sf042

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
boards:sf042 [2024/05/16 21:36] adminboards:sf042 [2025/07/19 20:42] (текущий) admin
Строка 1: Строка 1:
 ====== Щепа F042 ====== ====== Щепа F042 ======
-{{ :boards:f042-pinout.png?600|}}+{{ :boards:f042-pinout.png?direct&600|}}
  
 ===== Характеристики ===== ===== Характеристики =====
-  * Микроконтроллер: STM32L432KCU6 +  * Микроконтроллер: STM32F042K6T6 
-  * Ядро: Arm Cortex-M4 +  * Ядро: ARM Cortex-M0 
-  * Частота ядра: 80 MHz +  * Частота ядра: 48 MHz 
-  * Флэш память : 256 Кбайт +  * Флэш память : 32 Кбайт 
-  * ОЗУ: 64 Кбайт +  * ОЗУ: Кбайт 
-  * Напряжение питания: 1.65 V - 3.6 V +  * Напряжение питания: 2.V - 3.6 V 
-  * Таймеры (4+  * Таймеры (6
-  * SPI/I2S (2+  * SPI/I2S (1
-  * I2C (2)+  * I2C (1)
   * USART (2)   * USART (2)
   * 12-bit АЦП, 10 каналов (1)   * 12-bit АЦП, 10 каналов (1)
Строка 21: Строка 21:
  
 ===== Описание ===== ===== Описание =====
-Совместимость по выходам с NUCLEO-L432KC, USB подключен к микроконтроллеру (GPIO: PA11/PA12) для работы в режиме USB Device или встроенного загрузчика DFU. Для перехода в режим DFU нужно включить питание платы либо активировать RESET с нажатой кнопкой SW1. +Совместимость по выходам с ''NUCLEO-F042K6'', USB подключен к микроконтроллеру (GPIO: PA11/PA12) для работы в режиме USB Device или встроенного загрузчика DFU. Для перехода в режим DFU нужно включить питание платы либо активировать RESET с нажатой кнопкой SW1. 
 +Для быстрого перехода в режим загрузчика можно активировать прерывание по выводу PB6(D5) (к нему подключена пользовательская кнопка) для этого нужно в функцию ''void setup()'' вставить код: 
 +<code C++> 
 +  pinMode(5, INPUT); 
 +  attachInterrupt(5, NVIC_SystemReset, RISING); 
 +</code> 
 +[[https://github.com/Kits-Lab-Dev/wood-chips-F042|Github - схемы и примеры]]
 ===== Arduino IDE ===== ===== Arduino IDE =====
 Для работы с платой в [[https://www.arduino.cc/en/software|Arduino IDE]] нужно добавить ссылку для менеджера плат в меню ''Файл -> Параметры'' в строку: ''Дополнительные ссылки для Менеджера плат'': Для работы с платой в [[https://www.arduino.cc/en/software|Arduino IDE]] нужно добавить ссылку для менеджера плат в меню ''Файл -> Параметры'' в строку: ''Дополнительные ссылки для Менеджера плат'':
Строка 40: Строка 45:
 При необходимости подключить поддержку ''USB CDC'' - виртуальный com-порт: При необходимости подключить поддержку ''USB CDC'' - виртуальный com-порт:
 {{ :boards:arduino_ide_select_usb_support.png?direct&400 |}} {{ :boards:arduino_ide_select_usb_support.png?direct&400 |}}
 +
 +Для прошивки контроллера понадобится [[https://www.st.com/en/development-tools/stm32cubeprog.html|STM32CubeProgrammer]] [[https://disk.yandex.ru/d/Fjw2cZVs_fMvog|без VPN]]
  
 ==== Пример ==== ==== Пример ====
Строка 45: Строка 52:
 //Светодиод на D13 //Светодиод на D13
 #define LED 13 #define LED 13
 +
 +//Кнопка на D5
 +#define BUTTON 5
  
 void setup() { void setup() {
-  //Поключение пользовательской кнопки для бысрой перезагрузки и входа в режим загрузчика (DFU) +  //Подключение пользовательской кнопки для быстрой перезагрузки и входа в режим загрузчика (DFU) 
-  //Включение тактирования порта GPIOH +  pinMode(BUTTONINPUT);
-  __HAL_RCC_GPIOH_CLK_ENABLE(); +
-  //переключение вывода PH3 в режим входа +
-  LL_GPIO_SetPinMode(GPIOH, LL_GPIO_PIN_3LL_GPIO_MODE_INPUT);+
      
   pinMode(LED, OUTPUT);   pinMode(LED, OUTPUT);
Строка 62: Строка 69:
 void loop() { void loop() {
   // проверка нажата ли кнопка   // проверка нажата ли кнопка
-  if (LL_GPIO_IsInputPinSet(GPIOH, LL_GPIO_PIN_3)) {+  if (digitalRead(BUTTON== HIGH) {
     //перезагрузка микроконтроллера     //перезагрузка микроконтроллера
     NVIC_SystemReset();     NVIC_SystemReset();
Строка 78: Строка 85:
   Serial.print(i);   Serial.print(i);
 } }
 +
 </code> </code>
 +
 +
 +===== PlatformIO VSCode =====
 +Для работы с платой в среде [[https://code.visualstudio.com/|VSCode]] нужно установить расширение [[https://platformio.org/platformio-ide|PlatformIO]].
 +Создать новый проект, выбрать целевую плату и фреймворк:
 +{{ :boards:platformio_select_board_f042.png?direct&400 |}}
 +
 +В файле ''platformio.ini'' добавить строку ''upload_protocol = dfu'' для загрузки прошивки через USB, при необходимости подключить поддержку ''USB CDC'' - виртуальный com-порт добавив ''build_flags =  -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC  -D USBCON'' :
 +<code ini>
 +[env:nucleo_f042k6]
 +platform = ststm32
 +board = nucleo_f042k6
 +framework = arduino
 +upload_protocol = dfu
 +build_flags =
 +  -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC
 +  -D USBCON
 +</code>
 +
 +==== Пример ====
 +<code C++>
 +#include <Arduino.h>
 +
 +//Светодиод на D13
 +#define LED 13
 +
 +//Кнопка на D5
 +#define BUTTON 5
 +
 +void setup() {
 +  //Подключение пользовательской кнопки для быстрой перезагрузки и входа в режим загрузчика (DFU)
 +  pinMode(BUTTON, INPUT);
 +  
 +  pinMode(LED, OUTPUT);
 +  // Запуск USB Device в режиме CDC (виртуальный COM-порт)
 +  SerialUSB.begin();
 +}
 +
 +bool led = false;
 +int i = 0;
 +void loop() {
 +  // проверка нажата ли кнопка
 +  if (digitalRead(BUTTON) == HIGH) {
 +    //перезагрузка микроконтроллера
 +    NVIC_SystemReset();
 +  }
 +
 +  if (led) {
 +    led = false;
 +    digitalWrite(LED, HIGH);
 +  } else {
 +    led = true;
 +    digitalWrite(LED, LOW);
 +  }
 +  delay(250);
 +  i++;
 +  Serial.print(i);
 +}
 +
 +</code>
 +
 +
  • boards/sf042.1715884572.txt.gz
  • Последнее изменение: 2024/05/16 21:36
  • admin