
GPM1306-st7586s-160x120屏
简介
GPM1306的特殊屏160X130驱动板,, 可正常亮点,驱动有些有小问题,请大神赐教~
简介:GPM1306的特殊屏160X130驱动板,, 可正常亮点,驱动有些有小问题,请大神赐教~开源协议
:GPL 3.0
描述
近期开始学习arduino,手上有存了很久的GPM1306屏,这货是ST7586s驱动,显示效果还是错的。
本来ST7586S是能渠道384X160的屏,而且是4级灰度显示,结果封装了一个160X120的屏,将先根据网上原画图发板打板。
这个屏在封装上就是采用非常规的模式:
网上找的演示代码如下:
/* GPM1306.c
* Created on: 2016-10-19
* ┌─────────────────────────────────────────────┬───────────────┐
* PIN_NO : 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
* NAME : BK-K BK-A NC SCL SDA A0 RST nCS NC VDD C1 VSS VDD C2 C31 C32 C4
* CONN : GND VCC P1.4 P1.3 P1.2 P1.1 P1.0 VDD │ │VSS │VDD │ │ │ │
* │ │ │ │ │ │ │ │
* │ C1-C5=1uF 25V 0805 ─── │ ─── ─── │ │ ───
* │ 120x160pix ─── │ ─── ─── └─│ │-┘ ───
* │ ┌──────────┐ │C1 │ │C5 │C2 C3 │C4
* └────┤ R1=3R3 ├────────────────────────────────────────┴───┴─────┴──────┴────────────────┘
* └──────────┘
*==================================================NOTICE==================================================
*这个程序仅供评估,没有任何技术支持。如有疑问,请仔细阅读压缩包中的PDF文件或者联系芯片/模块厂家。
*这个模块还有很多功能没有在这个程序中体现出来,具体请参阅压缩包中的PDF文件或者联系芯片/模块厂家。
*推荐使用TI的LaunchPad验证,如果使用别的板子/芯片,请根据具体情况修改移植源文件。
**************************************************移植参考**************************************************
*使用MSP430系列芯片可以直接使用或者修改一下脚位既可以。注意主频要和 #define Fosc 中定义保持一致。
*移植至别的芯片请注意初始化IO和修改延时参数,修改脚位并注意void LCDInit(void)中有直接控制引脚的指令,需要一并修改。
*祝大家玩的开心。
*/
#include "msp430g2553.h"
---由于长度有限,详细见附件下载。。。
实际测试图片只能正常显示一部份,其它是乱码。
后来对根据定义接上arduino,经过几天的尝试,最终采用u8g2库的u8x8_d_st7586s_jlx384160点亮,当然对修改了初始化代码。
这个库能正确的将3个灰度的像素转化成单色进行160X120显示,不然其它只会53X120,字体粗大的惨不忍睹!
修改后的代码初始化驱动库代码如下:
static const uint8_t u8x8_d_st7586s_jlx384160_init_seq[] = {
U8X8_START_TRANSFER(),/* enable chip */
U8X8_END_TRANSFER(),/* disable chip */
// U8G_ESC_RST(15), /* hardware reset */
U8X8_DLY(60), /* Delay 60 ms */
U8X8_START_TRANSFER(),/* enable chip */
U8X8_C(0x001), // Soft reset
U8X8_DLY(60), // Delay 120 ms
U8X8_C(0x011), // Sleep Out
U8X8_C(0x028), // Display OFF
U8X8_DLY(25), // Delay 50 ms
//U8X8_CAA(0x0C0,0x0E5,0x00),// Vop = F0h in trace a bit too dark
U8X8_CAA(0x0C0,0x0EE,0x00),// Vop = 136h data sheet suggested 0x0145 but this caused streaks
U8X8_CA(0x0C3,0x004), // BIAS = 1/10 0x04 in trace
U8X8_CA(0x0C4,0x005), // Booster = x6 0x05 in trace
U8X8_CA(0x0D0,0x01D), // Enable Analog Circuit
U8X8_CA(0x0B3,0x000), // Set FOSC divider
U8X8_CA(0x0B5,0x08B), // N-Line = 0
U8X8_C(0x039), // 0x39 Monochrome mode. 0x38 - gray Mode
U8X8_C(0x03A), // Enable DDRAM Interface
U8X8_A(0x002), // monochrome and 4-level
U8X8_C(0x036), // Scan Direction Setting
U8X8_A(0x0C8), // COM159 -> COM0 SEG384 -> SEG0
// U8X8_A(0x088), // COM159 -> COM0 SEG0-> SEG384
// 设置起点行
U8X8_C(0x037), // Set start line --ROW
U8X8_A(0x029),
U8X8_C(0x0B1), // First output COM
U8X8_A(0x000), //
U8X8_C(0x0B0), // Duty Setting (num rows - 1)
U8X8_A(0x09f), // 160-1
U8X8_C(0x020), // Display inversion off
// U8X8_C(0x02A), // Column Address Setting
// U8X8_A(0x000), // COL0 -> COL127
// U8X8_A(0x000), //
// U8X8_A(0x000), //
// U8X8_A(0x035), // 128*3=384 pixels
// U8X8_C(0x02B), // Row Address Setting
// U8X8_A(0x000), // ROW0 -> ROW135
// U8X8_A(0x000), //
// U8X8_A(0x000), //
// U8X8_A(0x077), // 160 pixels
// U8X8_C(0x0F1), // Frame rate monochrome
// U8X8_A(0x00C), // The factory firmware set this to 49.0 Hz 0x07
// U8X8_A(0x00C), // This caused a shimmer under 50Hz LED lights
// U8X8_A(0x00C), // 69.0 Hz (0x0C) fixes this and should avoid the
// U8X8_A(0x00C), // issue in the US too
U8X8_C(0x029), // Display ON
U8X8_END_TRANSFER(),/* disable chip */
U8X8_END() /* end of sequence */
};
main.cpp如下:
#include
#include
//U8G2_ST7586S_ERC240160_1_4W_SW_SPI u8g2(U8G2_MIRROR, 13, 11, 10, 9, 8);
//修改过的库文件,原点(0,0)起始坐标是(80,0)
U8G2_ST7586S_JLX384160_1_4W_SW_SPI u8g2(U8G2_MIRROR, 13, 11, 10, 9, 8);
---由于长度有限,详细见附件下载。。。
图片取模软件,相比PCtoLCD2002更精细,这是最终测试可以显示的设置:
代码例子可以正常显示NTC的温度及图片,但现在的问题是:
1、采用U8G2库显示,需要采用镜像模式(U8G2_ST7586S_JLX384160_1_4W_SW_SPI u8g2(U8G2_MIRROR, 13, 11, 10, 9, 8);)才能显示正常;
2、驱动默认起始行坐标不是(0.0),通过调节起始行后,坐标是(80,0),意思就是每次显示必须要对坐标进行转换。将X坐标加上80才能显示到。
在此请教各位大神,是否有完美的驱动或者修改方法,此屏采用非镜像及将坐标调整到(0,0);
本人也在学习图片及字体显示方法,奈何U8G2库太庞大,关联太多,网上没有详细教程,
是否有大神可以展示完整的显示字体及图片的代码及注明说明的教程,
不甚感谢!
设计图

BOM


评论