boards:sf042

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
boards:sf042 [2024/05/16 18:53] adminboards:sf042 [2025/07/19 20:42] (текущий) admin
Строка 1: Строка 1:
 ====== Щепа F042 ====== ====== Щепа F042 ======
-{{ :boards:f042-pinout.png?700 |}}+{{ :boards:f042-pinout.png?direct&600|}} 
 + 
 +===== Характеристики ===== 
 +  * Микроконтроллер: STM32F042K6T6 
 +  * Ядро: ARM Cortex-M0 
 +  * Частота ядра: 48 MHz 
 +  * Флэш память : 32 Кбайт 
 +  * ОЗУ: 6 Кбайт 
 +  * Напряжение питания: 2.0 V - 3.6 V 
 +  * Таймеры (6) 
 +  * SPI/I2S (1) 
 +  * I2C (1) 
 +  * USART (2) 
 +  * 12-bit АЦП, 10 каналов (1) 
 +  * GPIO (20)  
 +  * RTC 
 +  * USB Device (Type C) 
 +  * Выход для подключения отладчика 
 +  * Пользовательская кнопка (можно использовать для перехода в режим загрузчика)  
 + 
 +===== Описание ===== 
 +Совместимость по выходам с ''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 ===== 
 +Для работы с платой в [[https://www.arduino.cc/en/software|Arduino IDE]] нужно добавить ссылку для менеджера плат в меню ''Файл -> Параметры'' в строку: ''Дополнительные ссылки для Менеджера плат'': 
 +<code>https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json</code> 
 +{{ :boards:boards_manager.png?direct&400 |}} 
 + 
 +В менеджере плат установить библиотеку ''STM32 MCU based boards'': 
 +{{ :boards:arduino_ide_install_board.png?direct&400 |}} 
 + 
 +Выбрать целевую плату: 
 +{{ :boards:arduino_ide_select_board.png?direct&400 |}} 
 +{{ :boards:arduino_ide_select_board_pasrt_number.png?direct&400 |}} 
 + 
 +Выбрать режим загрузки скетча: 
 +{{ :boards:arduino_ide_select_uploads_method.png?direct&400 |}} 
 + 
 +При необходимости подключить поддержку ''USB CDC'' - виртуальный com-порт: 
 +{{ :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]] 
 + 
 +==== Пример ==== 
 +<code C++> 
 +//Светодиод на 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> 
 + 
 + 
 +===== 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.1715874837.txt.gz
  • Последнее изменение: 2024/05/16 18:53
  • admin