Forum: Mikrocontroller und Digitale Elektronik Welche Möglichkeiten gibt es bem STM 32 F407-Board einen Ausgangspuls definierter Länge auszugeben?


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 timjk (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Es handelt sich um einen digitalen Ausgang, der im Open-Drain-Modus 
läuft und der für einen Trigger mindestens 4 Mikrosekunden lang auf LOW 
schalten muss..

Wie realisiere ich das am Besten? Ich möchte ungerne einen Timer 
aktivieren, da der Ausgang ohnehin schon durch ein Interrupt ausgelöst 
wird. Gibt es spezielle Konfigurationen für z.B. Rechtecksignale am 
Ausgang? Werde aus dem Datenblatt diesbezüglich nicht schlau

Danke im Voraus für Hilfe jeder Art ;)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Bewertung
0 lesenswert
nicht lesenswert
timjk schrieb:
> Ich möchte ungerne einen Timer
> aktivieren

Aber die Unmenge an Timer, die der Chip hat, bieten sich doch gerade an. 
Dein Interupt startet einen Timer, der nur einmal durchläuft und ein CC 
Register hat. Ich müsste jetzt mal nachschauen, wieviele Timer des F407 
PWM Ausgänge haben, aber es sind reichlich.

von Gerd E. (robberknight)


Bewertung
0 lesenswert
nicht lesenswert
timjk schrieb:
> Es handelt sich um einen digitalen Ausgang, der im Open-Drain-Modus
> läuft und der für einen Trigger mindestens 4 Mikrosekunden lang auf LOW
> schalten muss..
>
> Wie realisiere ich das am Besten? Ich möchte ungerne einen Timer
> aktivieren

Wie genau muss denn diese Triggerzeit sein?

Wenn es nicht so genau sein muss und nur die Mindestzeit von 4µs 
eingehalten werden muss, könntest Du nach dem Low-Setzen dir die 
aktuelle Systemzeit z.B. aus dem Systick-Timer holen.

Jedesmal wenn Du jetzt Deine Main-Schleife, Idle-Thread,... durchläufst, 
prüfst Du ob die 4µs schon vorbei sind. Wenn ja, dann deaktivierst Du 
das Signal.

Bessere RTOS bieten virtuelle Timer. Die sind genau für solche Dinge 
gedacht. Siehe z.B. hier:
http://www.chibios.org/dokuwiki/doku.php?id=chibios:book:kernel_vt

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Geht es wieder um die Kamera?

Ein Timer ist die beste Lösung.
Im Slave Modus wird der Timer direkt durch dem Master Interrupt 
ausgelöst, einfacher geht es kaum.

von timjk (Gast)


Bewertung
0 lesenswert
nicht lesenswert
okay die Option zum Slave-Modus ist mir schon mal bei der Konfiguration 
in CubeMX unter die Augen gekommen.

Habe das aber noch nicht gemacht. (Bisher tatsächlich nur einen 
Timer-Interrupt, also genau der umgekehrte Weg)

Wie würde das dann bei der Auslösung in Programmiersprache aussehen?
Also welchen Befehl müsste ich dann in meiner ISR machen, um das Signal 
entsprechend der Länge des Timers auszugeben? Würde vermuten eine 
if-Bedingung im Zusammenhang mit der TIM-Variable...
Verwende übrigens die HAL_Library

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das kannst du alles in CubeMX einstellen, der macht das schon.

Ich selbst habe das nur als Variante PWM Timer steuert anderen PWM Timer 
gemacht. Sollte aber so auch ähnlich sein.

von STM Apprentice (Gast)


Bewertung
1 lesenswert
nicht lesenswert
timjk schrieb:
> Wie realisiere ich das am Besten?

- Port 0 schreiben
- delay_us (4)
- Port 1 schreiben

Beitrag "stm32f103 1 us Systick-timer delay"

von Axel S. (a-za-z0-9)


Bewertung
1 lesenswert
nicht lesenswert
pegel schrieb:
> Geht es wieder um die Kamera?

Der Frage würde ich mich anschließen.

Und vorsorglich, weil die Antwort ja wohl "ja" sein wird, noch eine 
Folgefrage stellen: Auch wenn die Mindestimpulszeit der Kamera 3µs sind, 
warum machst du den Impuls mit 4µs so kurz? Nimm 4ms. Damit könntest du 
trotzdem noch über 100 mal pro Sekunde auslösen. Was die Kamera 
mußmaßlich sowieso nicht schafft.

von dingens (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Der STM32 hat Output Compare. Das würde ich mir mal ansehen. Damit 
müsste man das eigentlich lösen können.
Mit einer geschickten Kombination aus Timern und Prescalern sollte es 
möglich sein, beliebige Zeiten zu realisieren.

PS:
Warum verwenden alle immer die alten Gurken mit der schimmligen 
Peripherie wie den F407? Es gibt neuere und viel schönere STM32 
Derivate, wie den STM32F303.

Naja, wahrscheinlich wird man sonst von den Fanboys angekläfft :-(

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
dingens schrieb:
> Warum verwenden alle immer die alten Gurken mit der schimmligen
> Peripherie wie den F407?

Möglicherweise weil man den preisgünstig als Modul bekommen kann. Das 
spielt jedenfalls bei mir eine sehr grosse Rolle bei der Auswahl meiner 
Mikrocontroller.

von Seelen Forscher (Gast)


Bewertung
0 lesenswert
nicht lesenswert
dingens schrieb:
> Warum verwenden alle immer die alten Gurken mit der schimmligen
> Peripherie wie den F407?

Seltsam dass diese verschimmelten Peripherie-Teile so wunder-
bar funktionieren, vergleichsweise wenig Software-Liebe brauchen
und - wie Stefanus schon ausführte - günstig zu bekommen sind.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.