2016年12月29日 星期四

DIY - PIC24:PIC24FJ64GA008 NOKIA 5110 LCD 模塊 SPI 電路(五十九)

DIY - PIC24PIC24FJ64GA008 NOKIA 5110 LCD 模塊 SPI 電路(五十九): 

由於在電路設計時,已經考慮到會使用串列外設介面 (Serial Peripheral Interface,縮寫:SPI)和 I/O 方式,所以要使用 SPI 方式來驅動 NOKIA 5110 PCD8544 LCD 模塊便來得簡單,電路連接是不用改,祇需要更改程式便可以用 SPI 驅動。

PIC24FJ64GA008 NOKIA 5110 LCD 模塊 SPI 電路圖
Microchip PIC24FJ64GA0081.6 NOKIA 5110 LCD 液晶屏連接:
LCD
Signal
Description
I/O Bus
MCU
Signal
1
RST
Reset (Active Low)
11
76
RE0
2
CE
Chip Enable (Active Low)
12
77
RE1
3
DC
Data/Command Selection
Low – Write Commnad
High – Write Data
13
78
RE2
4
DIN
Serial Data Input
19
43
SDO1/RF8
5
CLK
Serial Clock Input
23
45
SCK1/RF6
6
VCC
2.7 ~ 3.3V
1

+3.3V
7
BL
Backlight
15
79
RE3
8
GND
Ground
6

GND

工作原理: 
Philips PCD8544 控制器芯片與 Microchip PIC24FJ64GA008 是採用串列外設介面 (SPISerial Peripheral Interface Bus)連接,而 PCD8544 I/O 控制已經連接到 8腳的連接器,DINData Input Line - Pin 4)接至 MCU SDO1/RF8SPI Data Input 1 / RF8 - Pin 43),CLKSPI Clock Input Line - Pin 5)接至 MCU SCK1/RF6SPI Clock Output 1 /RF6 - Pin 45),RSTReset - Pin 1)接至 MCU PMD0/RE0RE0 - Pin 76),CEChip Enable - Pin 2)接至 MCU PMD1/RE1RE1 - Pin 77),D/CData / Command - Pin 3)接至 MCU PMD2/RE2RE2 - Pin 78),和BLBacklight Control - Pin 7)接至 MCU PMD3/RE3RE3 - Pin 79)。由於 SPI是引腳是可以作 SPI 和一般 I/O使用,所以可試驗 SPI 操作。

Microchip PIC24FJ64GA008 PCD8544 LCD 屏接腳 SPI 程式定義:
// Definitions for Reset pin
#define RST_TRIS_BIT       TRISEbits.TRISE0
#define RST_LAT_BIT        LATEbits.LATE0

// Definitions for CS pin
#define CS_TRIS_BIT        TRISEbits.TRISE1
#define CS_LAT_BIT         LATEbits.LATE1

// Definitions for RS pin
#define RS_TRIS_BIT        TRISEbits.TRISE2
#define RS_LAT_BIT         LATEbits.LATE2

// Definitions for Backlight enable pin
#define LED_TRIS_BIT       TRISEbits.TRISE3 // Output
#define LED_LAT_BIT        LATEbits.LATE3

// Definitions for CLK pin
#define CLK_TRIS_BIT        TRISFbits.TRISF6
#define CLK_LAT_BIT         LATFbits.LATF6

//Definition for data BUS
#define DAT_TRIS_BIT        TRISFbits.TRISF8
#define DAT_LAT_BIT         LATFbits.LATF8
#define DAT_PORT_BIT        PORTFbits.RF8

Microchip PIC24FJ64GA008 PCD8544 LCD SPI 設置程式:
void configSPI1(void) {

SPI1CON1bits.DISSDO = 0;   // bit11 Disable SDOx 1=not used 0=Used
SPI1CON1bits.MODE16 = 0;   // bit10 Word/Byte 1=16bits 0=8bits
SPI1CON1bits.SMP    = 0;   // bit19 SPI Data Input Sample Phase 1=End of data 0=Middle of data
SPI1CON1bits.CKE    = 0;   // bit8 SPI Clock Edge 1=Transition from Active to Idle
SPI1CON1bits.SSEN   = 0;   // bit7 Slave Select Enable 1= SS for Slave 0=not used
SPI1CON1bits.CKP    = 0;   // bit6 Clock Polarity 1=Active=Low, 0=Active=High
SPI1CON1bits.MSTEN  = 1;   // bit5 1=Master, 0=Slave
SPI1CON1bits.SPRE   = 0b111;  // bit2-4 111=1:1 110=2:1
SPI1CON1bits.PPRE   = 0b10;  // bit0-1 11=1:1, 10=4:1, 01=16:1, 00=64:1

SPI1CON2=0;

SPI1STATbits.SPIEN = 1; // Bit15 1=Enable SCK, SDO, SDI, SS

}

Microchip PIC24FJ64GA008 PCD8544 LCD 屏初始化程式:
void nokia_init(void)
{
AD1PCFG = 0xFFFF;
_PMPEN = 0;

// Start Reset Device
// Set I/O as Input=1/Output=0
RST_TRIS_BIT = 0;  // Reset = Output = 0
CS_TRIS_BIT  = 0;  // Chip Select = Output = 0    
RS_TRIS_BIT  = 0;  // Command/Data = Output = 0
DAT_TRIS_BIT = 0;  // Data D0~D7 = Output = 0
CLK_TRIS_BIT = 0;  // SCLK = Output = 0
LED_TRIS_BIT = 0;  // Backlight LED = Output = 0

// Backlight LED ON
LED_LAT_BIT = 1;  // Backlight LED On = 1
RS_LAT_BIT  = 1;  // Data/-Command
CS_LAT_BIT  = 0;  // Chip Select ON = 0  

// Hardward Reset LCD Device
RST_LAT_BIT = 0;  // Reset LCD On = 0 >100ms
delayms(250);
CS_LAT_BIT = 1;   // Chip Select Off = 1
RST_LAT_BIT = 1;  // Reset LCD Off = 1
delayms(200);

nokia_write_command(0x21);   // set extended instruction set
nokia_write_command(0xB1);   // 0x90 was 0xc2  LCD=;3.06+162*0.06=4.02
nokia_write_command(0x04);
nokia_write_command(0x14);   //0x13   bias   1:48 -> n=4
nokia_write_command(0x0C);   //0x13   bias   1:48 -> n=4
nokia_write_command(0x20);   // horiz mode Droite, X autoincremente
delayms(150);
nokia_write_command(0x0C);   // mod control normal change
delayms(50);
CS_LAT_BIT = 1;   // Chip Select Off = 1
}

PIC24FJ64GA008 NOKIA 5110 LCD 模塊 SPI電路試驗
2016年 12月 29日 天氣報告
氣溫:16.2@ 22:20
相對濕度:百分之 51%
天氣:大致多雲

沒有留言:

張貼留言