В этом году разбирал оксипульсиметр, которым содержание кислорода измеряют а пальце, так в нем китайский geehe f030 используется. Скачал даташит, посмотрел поверхностно. Вроде бы по своим циферкам и соответствует аналогичному от stm.
Отпишусь сюда же по полученным сегодня stm32f030k6t6. При их цене в $2 тема вроде бы подходящая. Толком не проверял, лишь диодом помигал, чтобы отзыв на алиэкспрессе оставить положительный. Мигают.
Скрытый текст
Кратко про то, как можно программировать stm32 с минимальным набором средств. Просто не нашёл куда приткнуть эту информацию, а на отдельную тему не тянет..
Не чурающимся "нетрадиционного" подхода к программированию микроконтроллеров: (без графических сред, виндоса, готовых плат и чтения художественной литературы). Цель - лишь обозначить вектор тем любителям, которые слышали про невозможность вхождения в мир микроконтроллеров без пачки денег, но ещё не проверяли.
Вот, не хватает памяти и производительности atmega168. Математика. Надумал прокачиваться по STM32. После заказа на алиэкспрессе новых микроконтроллеров, озаботился травлением пп для tqfp32. Рисовал в kicad для атмеги128, пригодились. Кстати, одна из причин, по которой заказал stm в tqfp32. Сегодня получил их на почте, и одну сразу запаял на пп для проверки. Ничего дополнительного им, как и многим авркам, ведь не нужно. На ноутбуке уже имелись темплейты для stm32 с гитхаба (пробовал stmf407 прошивать когда собирал трансивер Маламут) Дополнительно к пп припаял четыре провода для программирования.
Пользовался кодом проектов с гитхаба.
STM32-Base - Базовый набор кода для традиционного блиньканья (на английском)
https://github.com/STM32-base/STM32-base
https://github.com/STM32-base/STM32-base-STM32Cube
https://github.com/STM32-base/STM32-base-F0-template
Подправленный код темплэйта на ближайший порт у tqfp32 к земляной ноге (B1)
oleg@laptop ~/stm32/templates/STM32-base-F0-template $ cat src/main.c
#include "stm32f0xx.h"
static void delay (unsigned int time) {
for (unsigned int i = 0; i < time; i++)
for (volatile unsigned int j = 0; j < 2000; j++);
}
int main (void) {
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
GPIOB->MODER |= GPIO_MODER_MODER1_0;
while (1) {
GPIOB->BSRR = GPIO_BSRR_BR_1;
delay(100);
GPIOB->BSRR = GPIO_BSRR_BS_1;
delay(100);
}
return 0;
}
Сборка
oleg@laptop ~/stm32/templates/STM32-base-F0-template $ make
../../tools/bin/arm-none-eabi-g++ -specs=nosys.specs -ffreestanding -fno-threadsafe-statics -fno-rtti -fno-exceptions -fno-unwind-tables -Wall -Wextra -g -ffunction-sections -fdata-sections -D STM32F030x6 -Wl,-L./STM32-base/linker,-T./STM32-base/linker/STM32F0xx/STM32F030x4.ld -I./inc -I./STM32-base/startup -mcpu=cortex-m0 -march=armv6-m -mlittle-endian -mthumb -masm-syntax-unified -D CALL_ARM_SYSTEM_INIT -I./STM32-base-STM32Cube/CMSIS/ARM/inc -I./STM32-base-STM32Cube/CMSIS/STM32F0xx/inc src/main.c STM32-base-STM32Cube/CMSIS/STM32F0xx/src/system_stm32f0xx.c obj/startup_STM32F030x6.o -o bin/stm32_executable.elf
../../tools/bin/arm-none-eabi-objcopy -O binary bin/stm32_executable.elf bin/stm32_bin_image.bin
Прошивка
oleg@laptop ~/stm32/templates/STM32-base-F0-template $ make flash
st-flash write ./bin/stm32_bin_image.bin 0x08000000
st-flash 1.5.1-50-g3690de9-dirty
2022-03-11T11:26:30 INFO common.c: Loading device parameters....
2022-03-11T11:26:30 INFO common.c: Device connected is: F0 small device, id 0x10006444
2022-03-11T11:26:30 INFO common.c: SRAM size: 0x1000 bytes (4 KiB), Flash: 0x8000 bytes (32 KiB) in pages of 1024 bytes
2022-03-11T11:26:30 INFO common.c: Attempting to write 3212 (0xc8c) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08000c00 erased
2022-03-11T11:26:30 INFO common.c: Finished erasing 4 pages of 1024 (0x400) bytes
2022-03-11T11:26:30 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2022-03-11T11:26:30 INFO flash_loader.c: Successfully loaded flash loader in sram
4/4 pages written
2022-03-11T11:26:30 INFO common.c: Starting verification of write complete
2022-03-11T11:26:30 INFO common.c: Flash written and verified! jolly good!
oleg@laptop ~/stm32/templates/STM32-base-F0-template $
Есть ещё аналоги STM32 от GigaDevice. В целом они практически полностью копируют серию F. Простой проект заработал без лишней возни. Просто залил бинарник. Пробовал собрать проект в Keil. Там поддержка GigaDevice есть из коробки (ограничение в бесплатной версии 32к). Конфигурировал в Cube. Библиотеки с официального сайта GD32. Вроде есть поддержка GD32 в IAR, но я не проверял.
В Eclipse тоже можно прикрутить компилятор GCC. Но пока руки не дошли.
AT32F403AVGT7, установлен на плату Discovery от STM32.
Всё работает и Eclipse with https://www.arterychip.com/download/..._EN_V1.0.4.pdf
GCC https://www.arterytek.com/download/A...GCC_V2.0.0.zip
Keil C Pack : https://www.arterytek.com/download/P..._EN_V1.3.6.zip
IAR Pack : https://www.arterytek.com/download/P..._EN_V1.3.6.zip
Добавлено через 31 минут(ы):
Добавил видео в архиве
Последний раз редактировалось RA1AGB; 11.03.2022 в 18:27.
ARTERY пишет, что НЕТ ERRATA. Так как нечего в нем писать.Это был один из первых вопросов.
Спасибо от RA4FHE
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)