Forum: Mikrocontroller und Digitale Elektronik Olimex 2378 LCD


von Sebastian W. (Gast)


Lesenswert?

Hallo.
Bin auf den ARM umgestiegen und habe mir dazu das Olimex Board mit dem 
LPC2378 zugelegt. So weit so gut. Habe mich nun in Yagarto eingearbeitet 
und auch die ersten Sachen zum Laufen gebracht. Aber das IAR Beispiel 
für das Display ist ja Hammer. Zig Dateien die da eingebunden sind und 
und und. Das zu portieren damit ich es unter Eclipse zum laufen bekomme 
übersteigt momentan noch mein Wissen. :(

Hat jemand schon das LCD auf dem besagten Board zum laufen bekommen mit 
WinArm oder für Yagarto? Oder kennt wer nenn Link wo man etwas findet? 
Bin ein wenig am verzweifeln. Google Suche hat mich auch nicht 
weitergebracht, möglicherweise falsch gesucht.

Hoffe jemand kann mir helfen.
Danke

Sebastian

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Der IAR/Olimex Originalcode unterliegt einem relativ restriktiven 
Copyright und ich wurde gebeten, keine Portierungen ohne Einverständnis 
von IAR zu veröffentlichen. Dies habe ich bisher nicht "beantragt". Die 
Anpassung des IAR/Olimex-Codes an gcc ist in der Tat nicht ganz simpel, 
da eine IAR-Erweiterung genutzt wird, um Bitfelder auf Register zu 
"mappen", die man für gcc in "Bitmanipulation" umschreiben musste. Kann 
ich in dieser Stelle nur anbieten, bei konkreten Problemen 
weiterzuhelfen. Weiterhin ist die Ansteuerung der Displays auch im 
"Nokia Tutorial" von Jim Lynch beschrieben. Zwar in Verbindung zur 
AT91SAM7 aber Anpassung nach LPC2k sollte relativ simpel sein.

von Sebastian W. (Gast)


Lesenswert?

Danke für die Antwort.
Dann werde ich mich mal mit dem Tutorial von Jim Lynch 
auseinandersetzen. Ist denke ich eine sehr gute Basis für den Start. 
(zumindestens weiß ich schonmal dass es sich um ein Nokia Display 
handelt).

von Sebastian W. (Gast)


Lesenswert?

Habe versucht das Display zum Laufen zu bekommen, mit Hilfe des besagten 
Tutorials und des Beispiels von IAR. Leider ohne Erfolg. Habe nun 
nochmals von vorne begonnen, jede Hilfe wird dankbar angenommen, also 
wenn jemand auf die SPI Initialsierung und die SPI-Write-Data und 
SPI-WRite-Command Anweisungen nen Blick werfen könnte.
Schonmal viele Dank.

Sebastian.
1
void SPIInit( void )
2
{
3
  SCS |= (1UL<<0); // set GPIOM in SCS for fast IO
4
  
5
// Assign GPIO to SSP0 - SCK, MOSI, MISO
6
  PINSEL3 |= 0x00000300;  // SCK0 - BIT [9:8]
7
  PINSEL3 |= 0x0000C000;  // MISO0 - Bit[15:14]
8
  PINSEL3 |= 0x00030000;  // MOSI0 - Bit [17:16]
9
  
10
  // Chip select
11
  FIO1DIR |= LCD_CS_MASK;    //P1.21 SSEL0
12
  FIO1SET |= LCD_CS_MASK;    //LCD CS set
13
  
14
  PCONP   |= (1UL<<21);    // PCPCONP Bit 21 für SSPO
15
  SSP0CR1 = 0;
16
  SSP0CR1 &= (~0x02);      // Bit 1 SSE = 0 disabled 
17
  SSP0CR1 &= (~0x01);      // Disable Loop Back Mode
18
  SSP0CR1 &= (~0x04);      // Enable Master Mode
19
  
20
  SSP0CR0 = 0;
21
  SSP0CR0 &= (~0x0030);    // Enable SPI Mode
22
  SSP0CR0 &= (~0x0040);
23
  SSP0CR0 &= (~0x0080);
24
  
25
  SSP0IMSC = 0;        // Disable all interrupts
26
  SSP0DMACR = 0;        // Disable DMA
27
  SSP0CR1 |= (1UL<<1);    // SSP enable
28
  
29
   for (uint32_t i = 0; i < 8; i++ )
30
    {
31
      volatile uint32_t Dummy = SSP0DR; // clear the RxFIFO
32
    }
33
  
34
   SSP0CPSR = 0x24;       // 2Mhz
35
   SSP0CR0 = ((SSP0CR0&(~0x0007))|(0x0008));  // 9 Bit Transfer Value 1000 Bit[3:0]
36
}
1
void WriteSpiCommand(volatile unsigned int command) 
2
{
3
  // wait for the previous transfer to complete
4
  while((SSP0SR & (1<<0)) == 0);    // wait till transmit FIFO ist empty
5
  //wait 5ms
6
  delay((void*)50);
7
  
8
  // clear bit 8 - indicates a "command"
9
  command = (command & ~0x0100);
10
  
11
  // send the command
12
  SSP0DR = command;
13
}
14
15
void WriteSpiData(volatile unsigned int data) 
16
{
17
  // wait for the transfer to complete
18
  while((SSP0SR & (1<<0)) == 0);
19
  //wait 5ms
20
  delay((void*)50);
21
  
22
  // set bit 8, indicates "data"
23
  data = (data | 0x0100);
24
  
25
  // send the data
26
  SSP0DR = data;
27
}

von sweer (Gast)


Lesenswert?

hi,

ist ja schon ne weile her, aber hast dus zum laufen bekommen? ich hab 
exakt das gleiche problem wie du (:

Grüße

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.