Erzeugen einer Nanosekundenverzögerung in C auf STM32

8

Ich verwende den STM32F2 Controller und schließe mich an ST7036 LCD-Anzeige über 8-Bit-Parallelschnittstelle.

Das Datenblatt besagt, dass zwischen der Haltezeit und der Setup-Zeit eine Verzögerung von 20 Nanosekunden liegen sollte.

Wie erzeuge ich eine Verzögerung von 20 Nanosekunden in C?

    
pranathi 14.11.2012, 12:54
quelle

3 Antworten

11

Verwenden Sie stopwatch_delay(ticks ) unten, um Ihre Verzögerungen zu erreichen. Es verwendet das DWT_CYCCNT-Register des STM32, das speziell zum Zählen tatsächlicher Takt-Ticks entworfen wurde und sich an der Adresse 0xE0001004 befindet.

Um die Genauigkeit der Verzögerung zu überprüfen (siehe main ), können Sie STOPWATCH_START aufrufen, stopwatch_delay(ticks) ausführen, dann STOPWATCH_STOP aufrufen und mit CalcNanosecondsFromStopwatch(m_nStart, m_nStop) überprüfen. Passen Sie ticks nach Bedarf an.

%Vor%     
bunkerdive 01.10.2013 19:38
quelle
8

Die erste von Stm32f2 gefundene Spezifikation geht von einer Taktfrequenz von 120 MHz aus. Das ist ungefähr 8ns pro Taktzyklus. Sie würden etwa drei Einzelzyklusbefehle zwischen aufeinanderfolgenden Schreib- oder Lese- / Schreiboperationen benötigen. In C wird a++; wahrscheinlich tun (wenn sich a im Stapel befindet).

    
Aki Suihkonen 14.11.2012 13:24
quelle
0

Sie sollten in das FSMC-Peripheriegerät Ihres Chips schauen. Während die Konfiguration kompliziert sein kann, insbesondere wenn Sie nicht in einen Speicherbereich fallen, für den sie entworfen wurde, stellen Sie möglicherweise fest, dass Ihr parallelgeschaltetes Gerät ziemlich gut mit einem der Speicherschnittstellenmodi übereinstimmt.

Diese Arten von externen Speicher-Controllern müssen eine Reihe von konfigurierbaren Timing-Optionen haben, um den Bereich der verschiedenen Speicherchips zu unterstützen, so dass Sie in der Lage sind, die Timings Ihres Datenblattes zu garantieren.

Der schöne Vorteil, dies zu können, ist, dass Ihr LCD-Bildschirm dann wie ein altes Speicher-zugeordnetes Peripheriegerät aussieht und die untergeordneten Schnittstellen-Details abstrahiert.

    
asund 29.01.2018 17:56
quelle

Tags und Links