Forum: Mikrocontroller und Digitale Elektronik Schwarmintelligenz für STM32-Projekt gesucht!


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Lien C. (lien_c)


Angehängte Dateien:

Lesenswert?

Hallo an alle,

ich bräuchte Mal euren gesammelten Hirnschmalz für mein Projekt.

Ich habe einen (bereits verbauten) STM32F410CBT3 im LQFP vorliegen und 
will damit ganz am Ende mehrere Komponenten miteinander synchronisieren. 
Dafür konkret gebraucht wird:

- 1 Master-Timer
- Erster Slave erzeugt am DAC einen Sinus
- Zweiter Slave erzeugt eine PWM mit zwei hintereinanderfolgenden 
Impulsen

Meine Idee war einen Basic Timer als Master zu verwenden, dann eben 
einen DAC-Timer und einen AC-Timer im One Pulse Mode mit einem RCR von 
1.


Soweit so gut.

Bis ich dann nach Bestückung der Platine und ALLEM drum und dran Mal auf 
die glorreiche Idee gekommen bin, für die Triggerquellen ins 
Referenzhandbuch zu schauen..... siehe Bild. Habe aber auch 
ehrlicherweise nicht mit sowas gerechnet.

Egal wie ich es drehe, ich finde einfach keine Lösung und hoffe auf eure 
Schwarmintelligenz.

TIM5 brauche ich für den DAC, da TIM6 nicht als Slave konfigurierbar. 
Hat den LPTIM als mögliche Triggerquelle.

Den AC-TIM1 kann ich nicht nehmen, da er ja nur TIM5 als Triggerquelle 
hat und der ja nur einen Sinus rausgibt. Da dachte ich, na gut, muss ich 
die zwei Impulse halt ohne RCR mit zwei Timern realisieren...

Tja, denkste. Bleibt ja nur noch Timer 9 mit ebenfalls LPTIM1 als 
mögliche Triggerquelle.

Jetzt wollte ich fragen: Fällt noch irgendjemandem etwas ein, wie ich 
meine Aufgabe realisieren könnte? Geht es vielleicht doch mit nur einem 
Timer ohne RCR? Übersehe ich eine Möglichkeit? Hat noch jemand eine 
KOMPLETT andere Idee, die eine wirklich genaue Synchronisation der 
Slaves ermöglicht? Kann ich vielleicht sogar irgendwas hardwareseitig 
pfuschen?

Dachte schon ich könnte eventuell den STM32F413CG in UFQFPN auf die 
Platine basteln (da gleiche Pinbelegung), passt aber mmn nicht auf 
meinen Footprint, Überlappung der Lötflächen einfach zu knapp....

Ich möchte aufgrund meiner Projektzeit wirklich vermeiden, auf einen 
anderen MCU umsteigen zu müssen... das wäre fatal.

Und ich bedanke mich daher schon jetzt im Voraus. Bitte meldet euch, 
wenn ihr weitere Infos braucht.

LG

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Ich würde immer mit den Anforderungen anfangen, dann kann man gucken, ob 
Dein Lösungsansatz passt und versteht das zu lösende Problem auch gleich 
viel besser.

von Hans-Georg L. (h-g-l)


Lesenswert?

Warum nimmst du nicht TIM1 als Master, damit kannst du TIM2,TIM3,TIM4 
und TIM5 als Slave triggern ?

Beitrag #7757970 wurde vom Autor gelöscht.
von Lien C. (lien_c)


Lesenswert?

Hans-Georg L. schrieb:
> Warum nimmst du nicht TIM1 als Master, damit kannst du
> TIM2,TIM3,TIM4
> und TIM5 als Slave triggern ?

Woran siehst du das? Welchen ITRx muss ich dann für die Slaves 
einstellen? Übersehe ich da komplett was?

von Lien C. (lien_c)


Lesenswert?

Torsten R. schrieb:
> Ich würde immer mit den Anforderungen anfangen, dann kann man
> gucken, ob
> Dein Lösungsansatz passt und versteht das zu lösende Problem auch gleich
> viel besser.

Ich bin mir nicht sicher, welche Anforderungen du meinst. Pulsbreite der 
PWM usw? Sorry, vielleicht könntest du das konkretisieren, dann gebe ich 
mein Bestes.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Lien C. schrieb:

> Ich bin mir nicht sicher, welche Anforderungen du meinst. Pulsbreite der
> PWM usw? Sorry, vielleicht könntest du das konkretisieren, dann gebe ich
> mein Bestes.

Was soll am Ende heraus kommen? Z.b.:
- Ein Sinus Signal mit Frequenz X und Amplitude Y.

Was soll das System können? (Nicht, wie Du das z.Z. planst zu 
implementieren)

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Lien C. schrieb:
> - 1 Master-Timer
> - Erster Slave

'Master,' 'Slave' and the Fight Over Offensive Terms in ...
Linux Foundation
https://www.linuxfoundation.org › ...
Diese Seite übersetzen
06.05.2021 — Now the organization is tackling an even thornier issue: 
getting rid of computer engineering terms that evoke racist history, 
like “master” and ...

Eine freundlicher Hinweis von der KI.

von Hans-Georg L. (h-g-l)


Lesenswert?

Lien C. schrieb:
> Hans-Georg L. schrieb:
>> Warum nimmst du nicht TIM1 als Master, damit kannst du
>> TIM2,TIM3,TIM4
>> und TIM5 als Slave triggern ?
>
> Woran siehst du das? Welchen ITRx muss ich dann für die Slaves
> einstellen? Übersehe ich da komplett was?

Die Tabelle steht im Datenblatt bzw. im Reference Manual deines Chips 
nennt sich TIMx Internal Trigger connection.

von Lien C. (lien_c)


Lesenswert?

Torsten R. schrieb:
> Lien C. schrieb:
>
>> Ich bin mir nicht sicher, welche Anforderungen du meinst. Pulsbreite der
>> PWM usw? Sorry, vielleicht könntest du das konkretisieren, dann gebe ich
>> mein Bestes.
>
> Was soll am Ende heraus kommen? Z.b.:
> - Ein Sinus Signal mit Frequenz X und Amplitude Y.
>
> Was soll das System können? (Nicht, wie Du das z.Z. planst zu
> implementieren)

Um das Sinussignal geht's ja quasi nicht, das hab ich schon. 0-3.3V, 
3kHz. Sobald der Master aktiv wird, sollen DAC und PWM-Signal synchron 
bzw. gleichzeitig starten. Das ist quasi schon alles.

von Lien C. (lien_c)


Lesenswert?

Hans-Georg L. schrieb:
> Lien C. schrieb:
>> Hans-Georg L. schrieb:
>>> Warum nimmst du nicht TIM1 als Master, damit kannst du
>>> TIM2,TIM3,TIM4
>>> und TIM5 als Slave triggern ?
>>
>> Woran siehst du das? Welchen ITRx muss ich dann für die Slaves
>> einstellen? Übersehe ich da komplett was?
>
> Die Tabelle steht im Datenblatt bzw. im Reference Manual deines Chips
> nennt sich TIMx Internal Trigger connection.

Die entsprechenden Tabellen aus dem RM habe ich oben im Ausgangspost 
eingefügt. TIM2-4 gibt's für meinen MCU nicht.

von Hans-Georg L. (h-g-l)


Lesenswert?

Lien C. schrieb:
> Hans-Georg L. schrieb:
>> Lien C. schrieb:
>>> Hans-Georg L. schrieb:
>>>> Warum nimmst du nicht TIM1 als Master, damit kannst du
>>>> TIM2,TIM3,TIM4
>>>> und TIM5 als Slave triggern ?
>>>
>>> Woran siehst du das? Welchen ITRx muss ich dann für die Slaves
>>> einstellen? Übersehe ich da komplett was?
>>
>> Die Tabelle steht im Datenblatt bzw. im Reference Manual deines Chips
>> nennt sich TIMx Internal Trigger connection.
>
> Die entsprechenden Tabellen aus dem RM habe ich oben im Ausgangspost
> eingefügt. TIM2-4 gibt's für meinen MCU nicht.

Ich habe beim 411 geschaut da habe ich das Datenblatt hier. Dann hast du 
dir den falschen herausgesucht ...

von Bauform B. (bauformb)


Lesenswert?

Mal ganz allgemein und ins Unreine: man kann den DAC auch triggern, 
indem man das SWTRIG1 Bit setzt. Per DMA kann man fast alle Bits setzen. 
Die meisten Timer können einen DMA-Transfer starten.

von Lien C. (lien_c)


Lesenswert?

Hans-Georg L. schrieb:
> Ich habe beim 411 geschaut da habe ich das Datenblatt hier. Dann hast du
> dir den falschen herausgesucht ...

Es scheint wohl so zu sein... habe wie gesagt nicht mit so viel 
reservierten Pins gerechnet. Wirklich sehr blöd gelaufen. :( Trotzdem 
danke.

von Hans-Georg L. (h-g-l)


Lesenswert?

Lien C. schrieb:
> Hans-Georg L. schrieb:
>> Ich habe beim 411 geschaut da habe ich das Datenblatt hier. Dann hast du
>> dir den falschen herausgesucht ...
>
> Es scheint wohl so zu sein... habe wie gesagt nicht mit so viel
> reservierten Pins gerechnet. Wirklich sehr blöd gelaufen. :( Trotzdem
> danke.

Das hat nichts mit reservierten Pins zu tun, das ist die chipinterne 
Verdrahtungstabelle zwischen den Timern und die ist Fix. Du hast dir nur 
einen Chip herausgesucht, der nicht zu der Tabelle passt weil es die 
Timer nicht gibt.

Ich weiß nicht was du sonst noch benötigst, vielleicht würde das hier 
passen:

https://de.aliexpress.com/item/1005001456186625.html

Damit könntest du es austesten und dann den Chip auf deiner Platine 
evtl. austauschen.

: Bearbeitet durch User
von Lien C. (lien_c)


Lesenswert?

Dieter D. schrieb:
> getting rid of computer engineering terms that evoke racist history,
> like “master” and ...

Finde ich gut. Werde Mal nach alternativen Begriffen forschen. Danke für 
den Hinweis!

von Lien C. (lien_c)


Lesenswert?

Hans-Georg L. schrieb:
> Ich weiß nicht was du sonst noch benötigst, vielleicht würde das hier
> passen:
>
> https://de.aliexpress.com/item/1005001456186625.html
>
> Damit könntest du es austesten und dann den Chip auf deiner Platine
> evtl. austauschen.

Ja, war leider blöd von mir mit der Auswahl. Machste nix, Fehler 
passieren. Die 411er würden sicherlich funktionieren, haben aber leider 
keinen DAC. Trotzdem danke. :)

von Hans-Georg L. (h-g-l)


Lesenswert?

Lien C. schrieb:
> Hans-Georg L. schrieb:
>> Ich weiß nicht was du sonst noch benötigst, vielleicht würde das hier
>> passen:
>>
>> https://de.aliexpress.com/item/1005001456186625.html
>>
>> Damit könntest du es austesten und dann den Chip auf deiner Platine
>> evtl. austauschen.
>
> Ja, war leider blöd von mir mit der Auswahl. Machste nix, Fehler
> passieren. Die 411er würden sicherlich funktionieren, haben aber leider
> keinen DAC. Trotzdem danke. :)

Der F446 hat 12 Timer und 2 DAC und den gibt es im 64 und 100 LQFP 
Gehäuse.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.