st Nucleo und Platformio

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
Benutzeravatar
Hightech
Beiträge: 11306
Registriert: So 11. Aug 2013, 18:37

st Nucleo und Platformio

Beitrag von Hightech »

Moin,
ich versuche mit dem platformio einen ST-Nucleo zu programmieren.
Es scheitert derzeit am Upload. Auf dem Nucleo ist ein ST-Link fest dran, also Verdrahtungsfehler fällt aus.

Ein Fehler ist auch: Error: 81 1 command.c:1027 run_usage(): invalid subcommand "driver hla"
Was ist das denn?

platformio.ini

Code: Alles auswählen

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:nucleo_f302r8]
platform = ststm32
board = nucleo_f302r8
framework = stm32cube
terminal output:

Code: Alles auswählen

> Executing task: platformio run --verbose --target upload --environment nucleo_f302r8 <

Processing nucleo_f302r8 (platform: ststm32; board: nucleo_f302r8; framework: stm32cube)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/nucleo_f302r8.html
PLATFORM: ST STM32 (14.1.0) > ST Nucleo F302R8
HARDWARE: STM32F302R8T6 72MHz, 16KB RAM, 64KB Flash
DEBUG: Current (stlink) On-board (stlink) External (blackmagic, cmsis-dap, jlink)
PACKAGES: 
 - framework-stm32cubef3 1.11.1 
 - tool-dfuutil 1.9.200310 
 - tool-ldscripts-ststm32 0.1.0 
 - tool-openocd 2.1100.0 (11.0) 
 - tool-stm32duino 1.0.1 
 - toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 26 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
MethodWrapper(["checkprogsize"], [".pio/build/nucleo_f302r8/firmware.elf"])
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   0.3% (used 44 bytes from 16384 bytes)
Flash: [          ]   1.7% (used 1140 bytes from 65536 bytes)
.pio/build/nucleo_f302r8/firmware.elf  :
section             size        addr
.isr_vector          392   134217728
.text               1128   134218120
.rodata                0   134219248
.ARM.extab             0   134219248
.ARM                   0   134219248
.preinit_array         0   134219248
.init_array            4   134219248
.fini_array            4   134219252
.data                 12   536870912
.bss                  32   536870924
._user_heap_stack   1540   536870956
.ARM.attributes       42           0
.comment             126           0
.debug_frame          44           0
Total               3324
<lambda>(["upload"], [".pio/build/nucleo_f302r8/firmware.elf"])
AVAILABLE: blackmagic, cmsis-dap, jlink, mbed, stlink
CURRENT: upload_protocol = stlink
openocd -d2 -s /home/boris/.platformio/packages/tool-openocd/scripts -f board/st_nucleo_f3.cfg -c "program {.pio/build/nucleo_f302r8/firmware.elf}  verify reset; shutdown;"
xPack OpenOCD, x86_64 Open On-Chip Debugger 0.11.0-00155-ge392e485e (2021-03-15-16:43)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
debug_level: 2

Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
srst_only separate srst_nogate srst_open_drain connect_deassert_srst

Info : clock speed 1000 kHz
Info : STLINK V2J28M17 (API v2) VID:PID 0483:374B
Info : Target voltage: 3.278473
Error: init mode failed (unable to connect to the target)
in procedure 'program'
** OpenOCD init failed **
shutdown command invoked

*** [upload] Error 1
=============================================================================== [FAILED] Took 1.46 seconds ===============================================================================
The terminal process "platformio 'run', '--verbose', '--target', 'upload', '--environment', 'nucleo_f302r8'" terminated with exit code: 1.

Terminal will be reused by tasks, press any key to close it.
Benutzeravatar
Fritzler
Beiträge: 12578
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: st Nucleo und Platformio

Beitrag von Fritzler »

Was mir noch einfällt:
Is das eines der Boards von Raja vom Treff?
Vllt ist da noch SW drauf welche "hinter sich zu macht".
Guck mal wo du eine Option findest wie "connect under reset".
Benutzeravatar
Hightech
Beiträge: 11306
Registriert: So 11. Aug 2013, 18:37

Re: st Nucleo und Platformio

Beitrag von Hightech »

Mit st-flash --connect-under-reset erase
hab ich den gelöscht.
Geht aber trotzdem nicht.

Code: Alles auswählen

st-flash  --debug --connect-under-reset erase 
st-flash 1.7.0-105-gdb8f789
/etc/stlink/chips: No such file or directory
2021-08-19T19:56:39 DEBUG common.c: *** looking up stlink version
2021-08-19T19:56:39 DEBUG common.c: st vid         = 0x0483 (expect 0x0483)
2021-08-19T19:56:39 DEBUG common.c: stlink pid     = 0x374b
2021-08-19T19:56:39 DEBUG common.c: stlink version = 0x2
2021-08-19T19:56:39 DEBUG common.c: jtag version   = 0x1c
2021-08-19T19:56:39 DEBUG common.c: swim version   = 0x11
2021-08-19T19:56:40 DEBUG common.c: stlink current mode: mass
2021-08-19T19:56:40 DEBUG usb.c: JTAG/SWD freq set to 0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_enter_swd_mode ***
2021-08-19T19:56:40 DEBUG common.c: *** stlink_jtag_reset 0 ***
2021-08-19T19:56:40 DEBUG common.c: *** stlink_jtag_reset 1 ***
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02030003 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_soft_reset (halt) ***
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0xa05f0003 to 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x01000501 to 0xe000edfc
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x00000008 to 0xe000ed30
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00030003 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x05fa0004 to 0xe000ed0c
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02010001 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02010001 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02010001 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02010001 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02010001 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02010001 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02010001 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02010001 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02010001 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02030003 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x02030003 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00030003 at 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000008 at 0xe000ed30
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x0000001f to 0xe000ed30
2021-08-19T19:56:40 DEBUG common.c: stlink current mode: debug (jtag or swd)
2021-08-19T19:56:40 DEBUG common.c: Loading device parameters....
2021-08-19T19:56:40 DEBUG common.c: *** stlink_core_id ***
2021-08-19T19:56:40 DEBUG common.c: core_id = 0x2ba01477
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x410fc241 at 0xe000ed00
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x10016439 at 0xe0042000
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0xffff0040 at 0x1ffff7cc
2021-08-19T19:56:40 INFO common.c: F301/F302/F318: 40 KiB SRAM, 64 KiB flash in at least 2 KiB pages.
2021-08-19T19:56:40 DEBUG common.c: *** stlink_force_debug_mode ***
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000300 at 0xe0042004
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x00000300 to 0xe0042004
2021-08-19T19:56:40 DEBUG common.c: *** stlink_status ***
2021-08-19T19:56:40 DEBUG usb.c: core status: 00030003
2021-08-19T19:56:40 DEBUG common.c:   core status: halted
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0000000000 at 0x4002200c
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x00000014 to 0x4002200c
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000080 at 0x40022010
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x45670123 to 0x40022004
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0xcdef89ab to 0x40022004
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0000000000 at 0x40022010
2021-08-19T19:56:40 DEBUG common.c: Successfully unlocked flash
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0000000000 at 0x40022010
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x00000004 to 0x40022010
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000004 at 0x40022010
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x00000044 to 0x40022010
Mass erasing2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000003 at 0x4002200c
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000003 at 0x4002200c
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000003 at 0x4002200c
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000020 at 0x4002200c

2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000004 at 0x40022010
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x00000084 to 0x40022010
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000084 at 0x40022010
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0x00000080 to 0x40022010
2021-08-19T19:56:40 DEBUG common.c: *** stlink_read_debug32 0x00000020 at 0x4002200c
2021-08-19T19:56:40 DEBUG common.c: *** stlink_exit_debug_mode ***
2021-08-19T19:56:40 DEBUG common.c: *** stlink_write_debug32 0xa05f0000 to 0xe000edf0
2021-08-19T19:56:40 DEBUG common.c: *** stlink_close ***
Benutzeravatar
Hightech
Beiträge: 11306
Registriert: So 11. Aug 2013, 18:37

Re: st Nucleo und Platformio

Beitrag von Hightech »

Nun klappt der Upload doch, nachdem ich das Teil gelöscht habe.
Aber der
STM32Cube blink example
blinkt nicht.

Code: Alles auswählen

#include "stm32f3xx_hal.h"


#define LED_PIN                                GPIO_PIN_5
#define LED_GPIO_PORT                          GPIOA
#define LED_GPIO_CLK_ENABLE()                  __HAL_RCC_GPIOA_CLK_ENABLE()

int main(void)
{
  HAL_Init();
  
  LED_GPIO_CLK_ENABLE();
  
  GPIO_InitTypeDef GPIO_InitStruct;
  
  GPIO_InitStruct.Pin = LED_PIN;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  HAL_GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct); 

  while (1)
  {
    HAL_GPIO_TogglePin(LED_GPIO_PORT, LED_PIN);
    
    HAL_Delay(1000);
  }
}

void SysTick_Handler(void)
{
  HAL_IncTick();
}

void NMI_Handler(void)
{
}

void HardFault_Handler(void)
{
  while (1) {}
}


void MemManage_Handler(void)
{
  while (1) {}
}

void BusFault_Handler(void)
{
  while (1) {}
}

void UsageFault_Handler(void)
{
  while (1) {}
}

void SVC_Handler(void)Blink
{
}


void DebugMon_Handler(void)
{
}

void PendSV_Handler(void)
{
}
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: st Nucleo und Platformio

Beitrag von Jannyboy »

Du hast nur den Clock für den GPIO eingeschaltet.
Du muss erstmal das ganze Bus und Clock System einschalten und hochfahren. Da ist erstmal eine ganze Menge konfigurieren bis da was blinkt.

http://stefanfrings.de/stm32/stm32f3.html

Edit: ggf. Fehlt der AHB enable.

Grüße Jan
Benutzeravatar
Fritzler
Beiträge: 12578
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: st Nucleo und Platformio

Beitrag von Fritzler »

Der HAL GPIO Init wird doch aufgerufen.

Ansonsten muss man da keine weiteren Clocks einschalten, die STM32 laufen dann überall auf dem 8/16MHz RC Oszillator.
virtexultra
Beiträge: 127
Registriert: So 9. Dez 2018, 11:30

Re: st Nucleo und Platformio

Beitrag von virtexultra »

Der SysTick läuft aber? Also HAL_Init ruft irgendwo HAL_SYSTICK_Config auf?

Ich würde überprüfen ob der uC überhaupt in die Main Loop kommt. Falls nicht, stimmt vermutlich die clock config nicht.

Nur zur Klarstellung, die LED leuchtet auch nicht?
Benutzeravatar
Hightech
Beiträge: 11306
Registriert: So 11. Aug 2013, 18:37

Re: st Nucleo und Platformio

Beitrag von Hightech »

Ich muss da mal mit dem Scope dran, kann der denn überhaupt eine LED treiben?
Es leuchtet weder die integrierte User LED noch eine an einem anderen Port.
Benutzeravatar
Fritzler
Beiträge: 12578
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: st Nucleo und Platformio

Beitrag von Fritzler »

Man sollt schon im Schaltplan gucken ob an PA5 ne LED hängt ;)

Die STM32 Pins könne LEDs locker treiben.

Kann Platorimio etwa nicht debuggen mit durchsteppen?
Dann siehste ob der Prozessor überhaupt was macht.
Benutzeravatar
Hightech
Beiträge: 11306
Registriert: So 11. Aug 2013, 18:37

Re: st Nucleo und Platformio

Beitrag von Hightech »

Also am Nucleo liegt es nicht.
Ich hab es mit dem Arduino Framework zum blinken gebracht.
Eine gute Nachricht für alle die auch einen Stapel Nucleos gegriffen haben und schnell und einfach was frickeln wollen.
Übrigens kann man die Nucleos auch mit der Arduino IDE programmieren, aber das wären Perlen vor die Säue. Denn der Nucleo hat einen Debugger on Board, mit dem man durch das Programm steppen kann.
Das geht bei Platformio, aber nicht bei der Arduino IDE.

Jetzt muss ich noch herausfinden warum das mit dem St32Cube Framework nicht klappt.

Ps:
Wenn jemand welche von den Nucleos hat, aber nix damit anzufangen weiß, nehme ich die gerne ☺️
Benutzeravatar
Fritzler
Beiträge: 12578
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: st Nucleo und Platformio

Beitrag von Fritzler »

Hightech hat geschrieben: Di 24. Aug 2021, 23:02 Jetzt muss ich noch herausfinden warum das mit dem St32Cube Framework nicht klappt.
Weil es der letzte Dreck ist!
Ehrlich jetz, da sitzen Leute ohne Ahnung und Verstand und pfuschen was zusammen.
Ich hatte schonmal, dass der Generator nen PLL Bit nicht gesetzt hat und dann die UART Baudrate im Eimer war.
Jedenfalls hatte ich an einem Tag genug Gründe zusammen, dass ich den Rotz auf Arbeit zum Glück nicht nutzen muss.
Auch Designtechnisch ne volle Katastrophe, die tunneln sämtliche Inits in eine Subfunktion (HALLO?! MODULARE PROGRAMMIERUNG IHR P*NN*R?!)
Und machen da einen Pointervergleich obs jetz UART1 oder 2 is (WTF?)
Oder eine Statemachine läuft in einem RTOS Task, wenn ein IRQ kommt, dann wird nicht etwa eine Message in eine Queue gepackt, NEEEIIIN! der IRQ fummelt direkt an der Statemachine rum!
Der Task kommt dann völlig durcheinander, vor allemw ar der ZUgriff nichtmal atomisch.

Deren structs (interne, die man nich anfassen kann!) werden nicht inited, die gehen einfach davon aus, dass die COMMON Section auch genullt wird.
Jedenfalls waren dann je nach programmgröße irgendwelche Lockbits gesetzt und der USB Stack hatte daher nur rumgezickt.
Das widerspricht sämtlichen GCC/GNU Designrichtlinien!

-> Es ist der ALLERLETZTE SCHEISSENDRECK!

Ich hab dir mal was in den Anhang gepackt wo du dich hochhangeln kannst.
Ist zwar für F4, sollte aber auch aufm F3 laufen.
Dateianhänge
faults.zip
(498.11 KiB) 17-mal heruntergeladen
Benutzeravatar
Fritzler
Beiträge: 12578
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: st Nucleo und Platformio

Beitrag von Fritzler »

So, hab mal in der Kiste der Aale vom Treff gewühlt und auch nen F302 gefunden.
Obwohl ich eigentlich nur F4/F7 mitnehmen wollte :lol:

Das im Anhang blinkt.
Dateianhänge
f302.zip
(145.68 KiB) 16-mal heruntergeladen
jodurino
Beiträge: 2088
Registriert: So 17. Nov 2013, 20:43

Re: st Nucleo und Platformio

Beitrag von jodurino »

Hallo

damit ich auch mal was mit dem STM32 machen kann habe ich mir auch dieses board besorgt:

STMicroelectronics Entwicklungsboard NUCLEO-F446RE STM32 F4 Series

https://www.conrad.de/de/p/stmicroelect ... 16934.html

und klar, danach erst diesen thread gelesen.

Fritzler was empfiehlst Du jetzt als Entwicklungsumgebung?


cu
jodurino
Benutzeravatar
Fritzler
Beiträge: 12578
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: st Nucleo und Platformio

Beitrag von Fritzler »

Ersmal brauchste auchn Projekt was du durchziehen willst.
Sonst hat man ja kein Ziel.

Heimische Projekte zieh ich durch mit:
ARM-GCC
Grepwin
Programmers Notepad

Zum debuggen dann Segger Ozone mit Segger JLink Edu
jodurino
Beiträge: 2088
Registriert: So 17. Nov 2013, 20:43

Re: st Nucleo und Platformio

Beitrag von jodurino »

Ja also mal abgesehen von den bunten Lämpchen die noch bis zum nächsten Treffen verdrahtet werden wollen.

Möchte/muss ich 8 PT100 Abfragen und via Serieller Schnittstelle einem anderen Gerät mitteilen.
Das wäre erst mal das dringendste
Ja der STM könnte damit unterlastet sein aber irgendwo muss man ja anfangen
Benutzeravatar
Fritzler
Beiträge: 12578
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: st Nucleo und Platformio

Beitrag von Fritzler »

Das hat ja nix mit Unterlastung zu tun.
Du hast einfach mehr Debugmöglichkeiten als bei nem AVR.
Daher ist das Code schreiben und Fehlersuchen einfacher.

Für die PT100 kannste dir ja schonmal ne 4 Leiter Messmethode ausdenken.
Sollen alle 8 gleichzeitig oder der Reihe nach abgefragt werden?
Dann brauchst nur einen ADC (vllt reicht dann auch der interne) und ein paar MUXer.

Allerdings hast du dir da mit der F4 Serie die Falsche ausgesucht, da könne die ADCs keinen differntiellen Modus.
Wär hier aber wichtig.
Da wäre die L4 Serie, dort aber auch nicht alle, besser L431 angemessen gewesen.
jodurino hat geschrieben: Mo 25. Okt 2021, 21:58 Ja also mal abgesehen von den bunten Lämpchen die noch bis zum nächsten Treffen verdrahtet werden wollen.
Wenn das wegen Chipmangel bis dahin überhaupt was wird :/
Benutzeravatar
sukram
Beiträge: 3063
Registriert: Sa 10. Mär 2018, 18:27
Wohnort: Leibzsch

Re: st Nucleo und Platformio

Beitrag von sukram »

Fritzler hat geschrieben: Di 26. Okt 2021, 07:37
jodurino hat geschrieben: Mo 25. Okt 2021, 21:58 Ja also mal abgesehen von den bunten Lämpchen die noch bis zum nächsten Treffen verdrahtet werden wollen.
Wenn das wegen Chipmangel bis dahin überhaupt was wird :/
Welche STM32 kann man denn überhaupt online kaufen, ohne stets mit Fakes rechnen zu müssen?

Ich würde ja langsam mich doch mal damit beschäftigen wollen, die AVR 8Bit Platform scheint ja nur noch für Arduino bestehen zu bleiben... Andererseits, wie effizient kann der ARM Bitbanging Protokolle wie 1Wire? Kann man das "im Hintergrund" abwickeln?
Benutzeravatar
Fritzler
Beiträge: 12578
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: st Nucleo und Platformio

Beitrag von Fritzler »

sukram hat geschrieben: Di 26. Okt 2021, 09:51 Welche STM32 kann man denn überhaupt online kaufen, ohne stets mit Fakes rechnen zu müssen?
Was Mouser nicht listet gibts auch nicht.
Mach nicht den Fehler und fang mit den "Bluepills" an, die sind momentan 100% Fake und der STMF103 ist schon extremst veraltet und auch anders aufgebaut als die Neueren.

Zum Einstieg empfehle ich die STM32L oder STM32G.
F2/F3/F4 sind auch schon recht alt.
F4 nimmste, wenn die 80MHz des L4 zu wenig sind (die könn dann 168MHz).
Wenn das zu lame ist nimmste H7, 480MHz HORR HORR HORR!

Gibst alles noch als Discovery oder Nucleo.
Letztere kann ich so garnicht leiden,w eil die Dummduino Buchsen haben, aber die äußeren Pins unbeschriftet sind.
Was soll das? Bei den Disoverys steht immer schön brav PB0, PC2, etc dranne.
sukram hat geschrieben: Di 26. Okt 2021, 09:51 wie effizient kann der ARM Bitbanging Protokolle wie 1Wire? Kann man das "im Hintergrund" abwickeln?
Wenn du STM32 mit M0(+) kern nimmst hängen die Portegister direkt am Prozessor -> recht effizient.
Aber Single Bit Flip Befehle haben ARM Kerne nicht im Befehlsatz!
Periph Register sieht also immer so aus:
lesen
bearbeiten
rückschreien

Die Hersteller packen aber Peripherie rein, welche das umgeht und es gilt nurnoch: schreiben, schreiben, schreiben
zB das "GPIO port bit set/reset register (GPIOx_BSRR)"
Was 0 ist wird nicht verändert, was 1 ist wird verändert.

Im Hintergrund kann man schreiben.
Du kannst den DMA auf einen Portpin loslassen.
Benutzeravatar
sukram
Beiträge: 3063
Registriert: Sa 10. Mär 2018, 18:27
Wohnort: Leibzsch

Re: st Nucleo und Platformio

Beitrag von sukram »

Danke! Das ist für mich eine gute Orientierung. In der Zwischenzeit habe ich entdeckt, dass Maxim ein Howto gebastelt hat, um eben das Problem 32Bit CPU und Single-Bit Operationen zu erschlagen: man nehme den UART und mache ein Bit mit 8Bit im UART: https://www.maximintegrated.com/en/desi ... 2/214.html

:?
Benutzeravatar
Fritzler
Beiträge: 12578
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: st Nucleo und Platformio

Beitrag von Fritzler »

Ja, warum denn nicht?
Im Gegensatz zum AVR wirste bei 32Bit µCs mi U(S)ART Instanzen erschlagen.
Dann noch schön mit DMA drauf rumtrommeln und vom 1wire bekommste nix mehr mit :mrgreen:
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: st Nucleo und Platformio

Beitrag von ch_ris »

Sagt mal, ist zum flashen ein ST-Link erforderlich oder tut's auch Flash Loader Demo+uart adapter?
das hätte ich schon beieinander, ich frag wegen des DPS5015.

edit
@Fritzler, danke sehr

edit. glaub der hängt in der luft. 5te links oben?
Dateianhänge
Screenshot_20211030-112519.png
Zuletzt geändert von ch_ris am Sa 30. Okt 2021, 11:31, insgesamt 2-mal geändert.
Benutzeravatar
Fritzler
Beiträge: 12578
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: st Nucleo und Platformio

Beitrag von Fritzler »

Wenne beim Prozessor des DPS5015 an den BOOT0 Pin rankommst reicht der UART Loader.
Durch den Pegel des BOOT0 Pins wird bestimmt ob der vom Flash oder vom SystemROM startet.
Musste gucken welcher STM32 auf dem DPS5015 verbaut ist und dann ins DB gucken.

Ansonsten tuts eben jeder verfügbare SWD Debugger/Flasher
Antworten