LPC922 Mikrocontroller - SPI durch Softwarenachbildung möglich?

Gast #2280276
Lesenswert?

Ich habe hier im Forum bereits mehrmals gelesen das es möglich ist - 
auch wenn der verwendete Mikrocontroller keine Hardware SPI hat - eine 
SPI über die "normalen" I/O Ports mit einer "Software"-SPI zu 
realisieren. Ist dies wirklich möglich und was ist dabei zu beachten? 
Ich kann leider keine Code-Beispiele finden, wo ich mir ein Beispiel für 
den LPC922 nehmen könnte. Vielen Dank im voraus.
#2280317
Lesenswert?

Soft SPI geht auf jedem Mikrocontroller. Es werden dann die SPI Signale 
mit GPIO-Pins nachgebildet. Ist in der Regel nicht so schnell wie 
Hardware SPI, aber durchaus brauchbar.

Bsp., ein SPI-Senderoutine für 8051 (SDCC) könnte so aussehen:
1
... 
2
#define LCD_CSB  P0_1
3
#define LCD_RS   P0_2
4
#define LCD_DATA P0_3
5
#define LCD_SCK  P0_4
6

7
// ***********************************************************************
8
// Schreiben eines Zeichens an das LCD-Modul (seriell Soft-SPI Mode)
9
// Übergabe: lcd_byte : Auszugebendes Zeichen/Steuerzeichen
10
//           lcd_mode : 0 - Daten
11
//                      1 - Steuerzeichen
12
// ***********************************************************************
13
void write_lcd(byte lcd_byte, bit lcd_mode) {
14
byte stelle;
15
  LCD_CSB = 0;  // LCD-Modul freigeben
16
  if (lcd_mode) LCD_RS = 0; // Steuerzeichen
17
    else LCD_RS = 1;        // Daten
18

19
  // Byte senden seriell senden, MSB zuerst (D7 D6 D5 D4 D3 D2 D1 D0)
20
  for ( stelle = 0x80; stelle; stelle >>= 1 ) {
21
    LCD_DATA = lcd_byte & stelle;
22

23
    LCD_SCK = 0; // Takt
24
    LCD_SCK = 1;
25
    LCD_SCK = 0;
26

27
  }
28
  LCD_CSB = 1; // LCD-Modul sperren
29
}
Gast #2280326
Lesenswert?

Vielen Dank Matthias für die schnelle und gute Antwort und besonders für 
das Codebeispiel. Ich werde versuchen damit eine Verbindung aufzubauen. 
Ich wünsche dir noch einen schönen Tag.

Viele Grüße

Eric

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren