A first port of the excellent Adafruit ST7735 library Also supports the S6D02A1 controller (Use 1k resistors in series on all logic lines).
Fork of Adafruit_ST7735 by
Modified version of the ST7735 library to support the Samsung S6D02A1 controller. These 1.8" 128x160 displays can be purchased dirt cheap (under $5 on eBay or aliexpress with free shipping).
You must also import the Adafruit_GFX library, as this library is dependent upon it.
I've used up to 20 MHz SPI with no problem. That is hardcoded in the library, and is currently set to 4 MHz (unmodified from the original library).
The library is exactly the same for S6D02A1 and ST7735 except for the initialization routines.
Use 1k resistors in series on all 5 logic lines as 3V3 is required (display is not damaged by 5V logic, but it will not work)
Constructor pin names that match the S6D02A1: Adafruit_ST7735(DIN, NC, CLK, CD, D/C, RST) ;
Source of initialization codes for the S6D02A1: https://github.com/zigwart/Adafruit_QDTech/blob/master/Adafruit_QDTech.cpp
Revision 1:226fd3534967, committed 2013-08-15
- Comitter:
- SomeRandomBloke
- Date:
- Thu Aug 15 13:27:10 2013 +0000
- Parent:
- 0:99ee879ef5a9
- Child:
- 2:18ecda534e06
- Commit message:
- Updates to GFX constructor
Changed in this revision
Adafruit_ST7735.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/Adafruit_ST7735.cpp Tue Mar 26 23:09:06 2013 +0000 +++ b/Adafruit_ST7735.cpp Thu Aug 15 13:27:10 2013 +0000 @@ -22,7 +22,7 @@ // Constructor Adafruit_ST7735::Adafruit_ST7735(PinName mosi, PinName miso, PinName sck, PinName cs, PinName rs, PinName rst) - : lcdPort(mosi, miso, sck), _cs(cs), _rs(rs), _rst(rst) + : lcdPort(mosi, miso, sck), _cs(cs), _rs(rs), _rst(rst), Adafruit_GFX(ST7735_TFTWIDTH, ST7735_TFTHEIGHT) { } @@ -219,7 +219,6 @@ void Adafruit_ST7735::commonInit(uint8_t *cmdList) { - constructor(ST7735_TFTWIDTH, ST7735_TFTHEIGHT); colstart = rowstart = 0; // May be overridden in init func _rs = 1; @@ -227,7 +226,7 @@ // use default SPI format lcdPort.format(8,0); - lcdPort.frequency(20000000); // Lets try 8MHz + lcdPort.frequency(30000000); // Lets try 30MHz // toggle RST low to reset; CS low so it'll listen to us _cs = 0;