LCD Controller S1D13781 über SPI mit STM32F407-DISC1

OP #7682939
Lesenswert?
• ▲
▼

Hallo, mein Problem ist ein kleiner jedoch grundlegender Teil eines größeren Projekts. Es geht darum, mit dem STM32F407-Disc1 über SPI mit dem LCD-Controller S1D13781 zu kommunizieren. Ich bin gleich zu Beginn gescheitert, d.h. ich kann zwar Daten wie Datenblatt des S1D13781 beschrieben an den Controller senden, bekomme jedoch keine Antwort über die MISO-Leitung. Dieser bleibt durchgehend LOW. Danke im Voraus!

Verbindungen:

3,3V und GND für S1D13781 vom STM32-Disc gezogen

S1D13781 -> STM32F407-DISC1

CLK -> CLK

MOSI -> MOSI

MISO -> MISO

CS -> beliebiger GPIO Output

Umgebung:

STM32CubeIDE (SPI2 mit PB13, PB14 und PB15), der SPI und GPIO initialisieren sich von selbst durch "Generate Code", so dass ich da eher keine Probleme vermute.

Mein Funktionen zum Lesen von Registern (das Wichtigste):

1
uint32_t seReadReg16(uint32_t Index)
2

3
{
4

5
  uint32_t addr = Index |= 0x60800;  
6

7

8
// hier in dem Beispiel Index =0x02 zum Auslesen des Product Codes der 0x0050 zurückgeben soll (siehe Anhang)
9

10
  uint32_t value;
11

12
  Chip_Select(0);
13

14
  SET_ADDR(addr);
15

16
  value = GET_DATA();
17

18
  Chip_Select(1);
19

20
  return value;
21

22
}
23

24
void SET_ADDR(uint32_t addr)
25

26
{
27

28
  addr &= 0x00FFFFFF;
29

30
  addr |= 0xC0000000;
31

32
  uint8_t data[4];
33

34
  data[0] = (uint8_t)(addr >> 24);
35

36
  data[1] = (uint8_t)(addr >> 16);
37

38
  data[2] = (uint8_t)(addr >> 8);
39

40
  data[3] = (uint8_t)(addr);
41

42
  uint8_t dummy = 0;
43

44
  uint8_t received;
45

46
  HAL_SPI_TransmitReceive(&hspi2, data, &received, 4, HAL_MAX_DELAY);
47

48
  HAL_SPI_TransmitReceive(&hspi2, &dummy, &received, 1, HAL_MAX_DELAY);
49

50
}
51

52
uint16_t GET_DATA(void)
53

54
{
55

56
            uint32_t val;
57

58
      uint8_t received;
59

60
      uint8_t dummy = 0;
61

62
      HAL_SPI_TransmitReceive(&hspi2, &dummy, &received, 1, HAL_MAX_DELAY);
63

64
      val = (uint32_t) received;
65

66

67
      HAL_SPI_TransmitReceive(&hspi2, &dummy, &received, 1, HAL_MAX_DELAY);
68

69
      val |= (uint32_t) received << 8;
70

71
      return (uint16_t)val;
72
}
Angehängte Dateien:

Antwort schreiben

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.

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.