mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Olimex 2378 LCD


Autor: Sebastian W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sebastian W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Sebastian W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.
void SPIInit( void )
{
  SCS |= (1UL<<0); // set GPIOM in SCS for fast IO
  
// Assign GPIO to SSP0 - SCK, MOSI, MISO
  PINSEL3 |= 0x00000300;  // SCK0 - BIT [9:8]
  PINSEL3 |= 0x0000C000;  // MISO0 - Bit[15:14]
  PINSEL3 |= 0x00030000;  // MOSI0 - Bit [17:16]
  
  // Chip select
  FIO1DIR |= LCD_CS_MASK;    //P1.21 SSEL0
  FIO1SET |= LCD_CS_MASK;    //LCD CS set
  
  PCONP   |= (1UL<<21);    // PCPCONP Bit 21 für SSPO
  SSP0CR1 = 0;
  SSP0CR1 &= (~0x02);      // Bit 1 SSE = 0 disabled 
  SSP0CR1 &= (~0x01);      // Disable Loop Back Mode
  SSP0CR1 &= (~0x04);      // Enable Master Mode
  
  SSP0CR0 = 0;
  SSP0CR0 &= (~0x0030);    // Enable SPI Mode
  SSP0CR0 &= (~0x0040);
  SSP0CR0 &= (~0x0080);
  
  SSP0IMSC = 0;        // Disable all interrupts
  SSP0DMACR = 0;        // Disable DMA
  SSP0CR1 |= (1UL<<1);    // SSP enable
  
   for (uint32_t i = 0; i < 8; i++ )
    {
      volatile uint32_t Dummy = SSP0DR; // clear the RxFIFO
    }
  
   SSP0CPSR = 0x24;       // 2Mhz
   SSP0CR0 = ((SSP0CR0&(~0x0007))|(0x0008));  // 9 Bit Transfer Value 1000 Bit[3:0]
}


void WriteSpiCommand(volatile unsigned int command) 
{
  // wait for the previous transfer to complete
  while((SSP0SR & (1<<0)) == 0);    // wait till transmit FIFO ist empty
  //wait 5ms
  delay((void*)50);
  
  // clear bit 8 - indicates a "command"
  command = (command & ~0x0100);
  
  // send the command
  SSP0DR = command;
}

void WriteSpiData(volatile unsigned int data) 
{
  // wait for the transfer to complete
  while((SSP0SR & (1<<0)) == 0);
  //wait 5ms
  delay((void*)50);
  
  // set bit 8, indicates "data"
  data = (data | 0x0100);
  
  // send the data
  SSP0DR = data;
}


Autor: sweer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

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

Grüße

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.