STM32 Primer2, FSMC für LCD ?

OP #5155127
Lesenswert?
• ▲
▼
Hallöchen,

ich habe hier ein Primer2 das ich Schrittweise mit CubeMX und SW4STM32 
zum laufen kriegen möchte. Es blinkt auch schon ;-)

Jetzt bin ich dabei in CubeMX die LCD Belegung fest zu legen.

Allerdings sind die 8 Datenleitungen nicht an die unteren FSMC Bits 
angeschlossen, sondern an FSMC_D4 bis FSMC_D11.
Da muss ich also den 16Bit Modus nehmen.

Dummerweise sind aber auch andere FSMC Leitungen belegt.
Wenn ich diese konfiguriere ist FSMC nicht mehr aktiv.

Die Steuerleitungen passen. Siehe Bild.

Was haben die sich dabei gedacht? Lässt sich das LCD überhaupt mit FSMC 
ansteuern?

Wäre nett wenn mich jemand aufklären könnte. Danke.
Angehängte Dateien:
Gast #5155296
Lesenswert?
• ▲
▼
N. C. schrieb:
> Was haben die sich dabei gedacht? Lässt sich das LCD überhaupt mit FSMC
> ansteuern?
Für mich sieht das nicht so aus, als ob die Anschlüsse vom LCD zum FSMC 
passen. Was aber problemlos gehen sollte, die Pins als GPIO zu 
verwenden:
1
void tft_write_command( uint8_t command)
2
{
3
  clear_bit( tft_control_port, TFT_rs);
4
  tft_data_port = command << 4;
5
  clear_bit( tft_control_port, TFT_wr_n);
6
  set_bit( tft_control_port, TFT_wr_n);
7
  set_bit( tft_control_port, TFT_rs);
8
}
9

10
void tft_write_data( uint8_t data)
11
{
12
  tft_data_port = data << 4;
13
  clear_bit( tft_control_port, TFT_wr_n);
14
  set_bit( tft_control_port, TFT_wr_n);
15
}
Gast #5155389
Lesenswert?
• ▲
▼
N. C. schrieb:
> Ich fürchte sogar, ich muss jedes Bit einzeln setzen...
Da hilft Dir der STM32 mit seinem BSRR-Register:
1
tft_data_port->BSRR = ((~c)<<16) | (c);

Mit DMA wird es komplizierter, weil oft zwischen Kommando und Daten 
umgeschalten werden muss (LCD_RS-Pin). Da lohnt sich DMA nur, wenn man 
viele Daten zu schicken hat. In diesem Fall wird es mit DMA 
wahrscheinlich gar nix, da ja nach jedem Datum mit dem /WR-Pin gewackelt 
werden muss...
OP #5155398
Lesenswert?
• ▲
▼
Vielen Dank, ich muss nun die schnellste Methode heraus finden.
Die LCD Daten sind Bi-Direktional.

Mal sehen wie das mit HAL so klappt.
Vielleicht spornt mich das sogar an den Inline-Assembler zu probieren.

Ist nur Hobby und mich treibt keiner. ;-)

Für Heute ist es das gewesen.

Gute Nacht und Danke.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.