Internen Takt beim STM32F031 verwenden

OP #6027117
Lesenswert?

Ich teste gerade das Steval-Spin3202 Board mit dem STSPIN32F0 
Controller, bei dem ein STM32F031F6 integriert ist.
Mein Problem ist, dass der STSPIN32F0 nicht eigenständig läuft. Auf dem 
Board gibt es noch einen STM32F103, mit dem man den STSPIN32F0 
programmiert. Das Board funktioniert nur, wenn der STM32F013 versorgt 
wird.
Gast #6027131
Lesenswert?

Alle STM32 starten mit internem Takt. Wenn da jemand etwas dran ändert, 
dann das Programm das im Flash liegt. Das musst du anpassen. Im 
einfachsten Fall die Konfigurationsroutine für die Taktversorgung 
auskommentieren, dann gilt wieder der Reset-Default.
OP #6027146
Lesenswert?

Stefan F. schrieb:
> Alle STM32 starten mit internem Takt. Wenn da jemand etwas dran
> ändert,
> dann das Programm das im Flash liegt. Das musst du anpassen. Im
> einfachsten Fall die Konfigurationsroutine für die Taktversorgung
> auskommentieren, dann gilt wieder der Reset-Default.

Wo finde ich die Konfigurationsroutine in meinem Projekt? Ich nutze eine 
generierte Firmware.
OP #6027195
Lesenswert?

Stefan F. schrieb:
> Tim K. schrieb:
>> Wo finde ich die Konfigurationsroutine in meinem Projekt?
>
> Schau doch mal, welche Infos du vor dieser Frage zu deinem Projekt
> bereitgestellt hast. Und dann lies nochmal deine Frage.
>
> Das können wir nicht wissen. Wir sind keine Hellseher!

Ich benutze die MotorControl Workbench Software, um die Firmware für das 
Board zu generieren.

Ich habe mal ein Beispiel beigefügt, wie so eine Firmware aussieht.
Angehängte Dateien:
#6027217
Lesenswert?

Also das sollte funktionieren, damit läuft der µC auf 48MHz aus dem 
internen Oszillator:
1
  // Enable PLL as Clocksource
2
  FLASH_SetLatency( FLASH_Latency_1 );
3
  RCC_DeInit();
4
  RCC_PLLConfig( RCC_PLLSource_HSI_Div2, RCC_CFGR_PLLMUL12 );
5
  RCC_PLLCmd( ENABLE );
6
  while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET );
7
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  // Select the PLL as clock source.
8
  SystemCoreClockUpdate();
OP #6027228
Lesenswert?

Ingo L. schrieb:
> Also das sollte funktionieren, damit läuft der µC auf 48MHz aus
> dem
> internen Oszillator:  // Enable PLL as Clocksource
>   FLASH_SetLatency( FLASH_Latency_1 );
>   RCC_DeInit();
>   RCC_PLLConfig( RCC_PLLSource_HSI_Div2, RCC_CFGR_PLLMUL12 );
>   RCC_PLLCmd( ENABLE );
>   while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET );
>   RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  // Select the PLL as clock
> source.
>   SystemCoreClockUpdate();

Das schreibe ich dann in die SystemClock_Config?
#6027282
Lesenswert?

Tim K. schrieb:
> Das schreibe ich dann in die SystemClock_Config?
Nein, anstelle der SystemClock_Config

Stefan F. schrieb:
> Ich würde das lieber in CubeMX ändern, weil dieser Codeabschnitt von
> CubeMX überschrieben wird,
Keine Ahnung was Cube da veranstaltet, versuch macht kluch

Tim K. schrieb:
> Reicht es wenn ich die Einstellung bei System Clock Mux auf HSI ändere?
Dann läuft er vermutlich halt nur auf 8MHz (HSI)
Gast #6027317
Lesenswert?

Aus Spaß habe ich mir mal das "Motor Control Workbench" angesehen.

Auf dem Übersichtsbildchen gibt es "Control Unit" mit einen Knopf
"MCU und Clock Freq.".

Mit 2 Clicks kannst Du dort alles einstellen, fertig.
OP #6027347
Lesenswert?

pegel schrieb:
> Aus Spaß habe ich mir mal das "Motor Control Workbench" angesehen.
>
> Auf dem Übersichtsbildchen gibt es "Control Unit" mit einen Knopf
> "MCU und Clock Freq.".
>
> Mit 2 Clicks kannst Du dort alles einstellen, fertig.

Das habe ich total übersehen. Anscheinend ist da der interne Oszi schon 
eingestellt. Dann verstehe ich aber nicht, warum der Chip nicht 
eigenständig läuft.
OP #6028063
Lesenswert?

Cyblord -. schrieb:
> Tim K. schrieb:
>> Ja, habe ich und das Board funktioniert auch. Mir geht es darum, dass
>> das Board nur funktioniert, solange eine USB Verbindung besteht. Ich
>> möchte das Board auch ohne USB Verbindung betreiben können.
>
> Und was hat das mit der Taktquelle zu tun?

Weil ich noch nicht verstehe, warum das Board nicht läuft, wenn ich nur 
den STSPIN32F0 eigenständig mit einer Spannung von 8-45 V versorge.
Gast #6028075
Lesenswert?

bist du denn sicher das der µC komplett nicht läuft? Baue doch mal eine 
blinkede LED an den Anfang des main vom STSPIN32F0.
Wenn der µC läuft und nur der Motor nicht kann es noch an den 
Schutzmassnahmen in der SW liegen. Habe das nur überflogen, aber in 
mc_tasks.c ist z.B. eine Safety Task drin. Auch hier wäre sinnvoll einen 
Fehler durch eine LED anzeigen zu lassen.
OP #6028090
Lesenswert?

Johannes S. schrieb:
> bist du denn sicher das der µC komplett nicht läuft? Baue doch mal
> eine
> blinkede LED an den Anfang des main vom STSPIN32F0.
> Wenn der µC läuft und nur der Motor nicht kann es noch an den
> Schutzmassnahmen in der SW liegen. Habe das nur überflogen, aber in
> mc_tasks.c ist z.B. eine Safety Task drin. Auch hier wäre sinnvoll einen
> Fehler durch eine LED anzeigen zu lassen.

Ich werde es gleich mal testen.
Gast #6028097
Lesenswert?

das ist doch schonmal eine gute Erkenntniss.
Dann ist da eine Kommunikation via RS232 mit einem PC Programm zur 
Parametrierung vorgesehen? Ist die eine serielle Schnittstelle 
angeklemmt über die der PC mit dem Board kommunizieren kann? Hoffentlich 
nicht über die virtuelle COM im STM32F103...
Gast #6028142
Lesenswert?

Immer diese Anfänger :-)

Also versuchen wir es mal wie Profis:

Wie werden die 3V3 des Mikrocontrollers "hergestellt"? -> Schaltplan 
anschauen, danach wieder hier zurückmelden.

Deine Hausaufgaben musst du schon selber machen...
#6028152
Lesenswert?

Johannes S. schrieb:
> das ist schlecht. Also langsam schrittweise voran, Spannungen am Chip
> prüfen, Pegel am Resetpin. Eigenes einfaches Blinky flashen.

Das liegt an den ganzen fertigen Boards mit Programmer. Da geht jeder 
talentfreie Frickler her, steckt USB an und klickt sich was zusammen.
Aber dann scheitert es an den elementarsten Dingen, wenn das Teil mal 
produktiv laufen soll, wie Spannungsversorgung, Resetbeschaltung, 
BOOT-Pin usw.
Und man hat ein Realtime OS am laufen bevor man auch nur mal ein Blinky 
gesehen hat. Bei der Fehlersuche steht man dann dumm da. Keinerlei 
logisch strukturierte Vorgehensweise. Grundlagenwissen fehlt an 
kritischen stellen.

Da wird das Pferd halt mal wieder falsch rum aufgezäumt. Die Basics 
sollte man zuerst betrachten.
OP #6028159
Lesenswert?

Du H

Dennis schrieb:
> Immer diese Anfänger :-)
>
> Also versuchen wir es mal wie Profis:
>
> Wie werden die 3V3 des Mikrocontrollers "hergestellt"? -> Schaltplan
> anschauen, danach wieder hier zurückmelden.
>
> Deine Hausaufgaben musst du schon selber machen...

Es gibt zwei Controller auf dem Board. Einmal den STSTPIN32F0A Chip mit 
einem integrierten STM32F031, der die 3,3 V über einen DC/DC-Wandler aus 
der Eingangsspannung zwischen 8 und 45 V bekommt und den STM32F013, mit 
dem man den STSPIN32F0A programmieren kann. Dieser bekommt die 3,3 V 
über die USB-Verbindung.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren