Ich versuche, mit meinem Arduino über SPI mit einem Nokia 1202 LCD zu kommunizieren.
Das LCD mit dem STE2007 Controller. Gemäß dem Datenblatt hier auf Seite 12 finden Sie, dass die Mindestzeit für SCLK 250 ns => 4 MHz beträgt und kein Höchstwert aufgeführt ist. Ich verstehe also, dass dieser Treiber über SPI kommunizieren kann, wobei SCLK max. von 4MHz.
Da mein Arduino-Board mit 16 MHz läuft und ich die 'spi'-Bibliothek verwenden werde, sollte ich Folgendes tun:
Ist das richtig ?
Etwas wie ...
void setup()
{
pinMode(SPI_SS, OUTPUT);
pinMode(SPI_DC_SEL, OUTPUT);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
//set spi register to set SCLK @ 4Mhz
//SPI2X = SPR1 = SPR0 = 0
SPCR &= ~(1<<SPR1);
SPCR &= ~(1<<SPR0);
SPSR &= ~(1<<SPIX2);
}
Sie können die SPI-Geschwindigkeit (und viele andere Dinge!) mit der Arduino-SPI-Bibliothek einstellen, ohne Registerwerte anzugeben. Sie haben es bereits mit MSBFIRST getan. So:
SPI.setDataMode(SPI_MODE3);
SPI.setBitOrder(MSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV4); // 16/4 MHz
SPI.begin();
Stellt auch SPI.begin
alle Pin-Modi für Sie ein, sodass Sie dies nicht tun müssen.
Mux