Application of ultra-thin display OLED in gyrotheodolite

Publisher:沭阳小黄同志Latest update time:2011-03-27 Keywords:OLED  SSD1303  ARM Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
The gyrotheodolite is a precision instrument that measures the true north position of the instrument installation point by sensing the horizontal component of the earth's rotation. Its working condition is similar to that of the electronic theodolite, except that the electronic theodolite can only measure the relative angle between two targets, while the gyrotheodolite can not only measure the relative angle between the targets, but also the angle between the target and the geographic north or true north position. The instrument usually works in the field, and the environmental conditions are relatively harsh. In the past, the display part was realized by liquid crystal, which brought problems such as weight and volume. Low temperature was achieved by heating, which consumed a lot of power, and field operations had high requirements for batteries . Another problem is that no measures can solve the problem that the LCD display is not clear under sunlight, which is determined by the characteristics of the LCD display itself. OLED has many attractive features in displaying information. OLED does not have the viewing angle problem of LCD and can provide full viewing angle display. Because OLED has the characteristics of self-luminescence, it is much brighter than LCD, and does not need a backlight like LCD, so it not only improves the effective power of the power supply , but also consumes only half of that of LCD, and the device thickness is also thinner than LCD. OLED response time is one thousand times faster than typical LCD. Therefore, it has the advantages of high efficiency, high contrast, wide viewing angle, low operating voltage, etc. [1-2]. The ultra-thin OLED display P09703 with embedded SSD1303 driver chip produced by Taiwan ReTel Corporation has a dot matrix of 128X64, a thickness of only 2.05 mm, a weight of only 11.1 grams, and an operating temperature of -40℃ to +85℃. The product is used in gyro theodolite to solve the display problem well. The following focuses on the implementation of circuit design. 1 Introduction to SSD1303 At present, several companies such as Solomon and Clare in the United States mainly produce OLED driver ICs. The SSD1303 launched by Solomon is an OLED driver chip that integrates row driver, column driver and controller. This driver is designed for 132 × 64 dot matrix OLED graphic display, including row driver, column driver, current reference generator, contrast control, oscillator and several MCU interface modes. The working logic voltage is 2.4V~3.5V, with rich software functions, supporting 4 color selections and 64-level control for each color. Its software contrast has 256-level control, and the embedded 132 × 64-bit graphic dynamic random access memory (GDDRAM) provides row remapping, column remapping, vertical scrolling and partial display functions. This makes the driver suitable for a variety of OLED displays with different pixel sizes and colors. 2 Hardware connection between P09703 and LPC2131 LPC2100/lLPC2105/LPC2106 series microcontrollers are microcontrollers based on 16/32-bit ARM7TDMI-S CPUs launched by Philips Semiconductors, with 128/256 kbytes (kB) of embedded high-speed Flash memory. The 128-bit wide memory interface and unique acceleration structure enable 32-bit code to run at the maximum clock rate. Applications with strict control over code size can use 16-bit Thumb mode to reduce code size by more than 30%, while performance loss is small. The LPC2100/LPC2105/LPC2106 series microcontrollers use very small 64-pin packages, extremely low power consumption, multiple 32-bit timers, 4-way 10-bit ADC PWM outputs, and up to 9 external interrupts, which makes them particularly suitable for industrial control, medical systems, access control, and electronic cash registers (POS) and other applications. Because the LPC2100 series microcontrollers do not have an external bus controller, it is not very convenient to connect them to external expansion chips. However, because of their high speed, even using software to simulate the bus external expansion chip is much faster than the ordinary 80c51, and the rich on-chip resources are not comparable to the ordinary 51. Since P09703 and P09702 have the same graphics display controller SSD1303, and the hardware interface of P09702 is suitable for experimental connection, the following takes P09702 and LPC2131 as an example for explanation. Since the logic level of the OLED display screen P09702 is 2.4V - 3.5V, we choose the ARM7TDMI-S and single-power-supply microcontroller LPC2131 produced by PHILIPS as the controller. Figure 1 shows the minimum circuit for the normal operation of an embedded processing system, including power supply, clock, reset, etc. The power supply circuit provides analog 3.3V and digital 3.3V to improve the working stability of the system. At the same time, the hardware connection method of P09702 and LPC2131 is drawn.












Application of ultra-thin display OLED in gyrotheodolite

3 Software Programming

In terms of connection with the computer, the interface of SSD1303, including data input buffer, data output latch, instruction register and decoder, busy state trigger and timing control circuit, has a high-performance interface control circuit. The computer can access SSD1303 at any time without judging its current state. Unlike the T6963C controller used before, it is not so important for SSD1303 to judge the busy state in operation, because the interface of SSD1303 can receive the computer's access in a timely manner. It is only when the computer transmits a large amount of data to the display memory that conflicts with the transmission of display data from the control unit to the drive unit, that "snowflakes" will appear on the display screen. However, due to the short interval time and the visual inertia of the human eye, the "snowflakes" phenomenon cannot be seen. Sometimes when the busy flag is judged and the display data is transmitted, the busy flag has disappeared. It is precisely because of these that the operation process of computer access to SSD1303 is very simple. But it should be noted that there are several sets of timing circuits in the interface control circuit of SSD1303 to adapt to the requirements of different computer operation timings. The setting terminals of the timing adapter circuit are BS0, BS1, and BS2. In P09703, select different connections for BS1 and BS2 to determine whether to select Intel8080 timing or M6800 timing. In P09702, since there is no selection for BS1 and BS2, it has been set to Intel8080 timing at the factory, so the following program is for Intel8080 timing.

#define AD0_PIN_NUM8 //8-bit data bus
#define DC_PIN_NUM 5 //P0.5 data/command control bit, low level - command operation, high level - data operation
#define WR_PIN_NUM 6 //P0.6 write data/command control bit, write when high level changes to low level
#define RD_PIN_NUM 7 //P0.7 read data/command control bit, low level valid
#define CS_PIN_NUM 16 //P0.16 enable bit, low level valid
void ExBusInit(void)//Initialize P09702OLED display bus
{uint32 temp;
// Set pin connection module: DC_PIN_NUM, WR_PIN_NUM, RD_PIN_NUM, CS_PIN_NUM, AD0_PIN_NUM are GPIO
PINSEL0 &= ~(3 << (2 * DC_PIN_NUM));
PINSEL0 &= ~(3 << (2 * WR_PIN_NUM));
PINSEL0 &= ~(3 << (2 * RD_PIN_NUM));
PINSEL0 &= ~(3 << (2 * (CS_PIN_NUM-16)));
for (temp= AD0_PIN_NUM; temp < 16; temp++){
PINSEL0 &= ~(3 << (2 *temp));
}
// Set the pin direction, all related pins are output
temp = 0xff << AD0_PIN_NUM;
IODIR = IODIR | temp;
IODIR = IODIR | (1 << WR_PIN_NUM) | (1 << RD_PIN_NUM) | (1 << DC_PIN_NUM) | (1 << CS_PIN_NUM);
// Set the pin output value, except for CS_PIN_NUM output is low level, the rest are high level
IOCLR = (1 << CS_PIN_NUM);
IOSET = (1 << DC_PIN_NUM) | (1 << WR_PIN_NUM) | (1 << RD_PIN_NUM);
temp = 0xff << AD0_PIN_NUM;
IOSET = IOSET | temp;
}

uint8 ReadData(void) //Read data from P09702OLED display
{ uint32 temp, temp1;
temp1 = IODIR;
IODIR = temp1 & (~(0xff << AD0_PIN_NUM)); // Set AD0_PIN_NUM as input
IOCLR = 1 << RD_PIN_NUM;
temp = IOPIN;
IOSET = 1 << RD_PIN_NUM;
IODIR = temp1 | (0xff << AD0_PIN_NUM);
temp = temp >> AD0_PIN_NUM;
return (uint8) temp;
}

void WriteCommand(uint8 Data) // Write command code to P09702OLED display
{ IOCLR = 1 << DC_PIN_NUM;
IOSET = Data << AD0_PIN_NUM;
Data = ~Data;
IOCLR = Data << AD0_PIN_NUM;
IOCLR = 1 << WR_PIN_NUM;
IOSET = 1 << WR_PIN_NUM;
IOSET = 1 << DC_PIN_NUM;
}

void WriteData(uint8 Data) //Write parameters and data to P09702OLED display
{ IOSET = Data << AD0_PIN_NUM;
Data = ~Data;
IOCLR = Data << AD0_PIN_NUM;
IOCLR = 1 << WR_PIN_NUM;
IOSET = 1 << WR_PIN_NUM;
}
main(){ int j, i;
ExBusInit(); //Initialize P09702OLED display bus
InitOled();//初始化P09702OLED显示屏,由于SSD1303软件控制指令非常丰富,该函数内容较长,在这里不做描述,详情见P09702应用笔记,这里要说明的是:InitOled()中的comm_out2()函数用WriteCommand()函数替代
for(i=0;i<8;i++)
WriteCommand (0xB0+i);//设置显示位置—行
WriteCommand (0x02); //设置显示位置—列低地址
WriteCommand (0x10); //设置显示位置—列高地址
for(j=0;j<128;j++)
WriteData((0xFF);//屏幕显示,全亮
}
}

上述仅是对P09702基本的应用,有关更多的SSD1303软件控制指令,通过该文介绍的方法,并结合SSD1303的指令集[4],读者能够对P09702应用自如。

参考文献
1 王鑫,周军,周德俭,等. 有机电致发光屏显示模块研究. 液晶与显示,2003;18(2)
2 黄锡珉. 有源矩阵OLED. 液晶与显示,2003;18(3)
3 周立功 等编著 深入浅出ARM7.北京:北京航空航天大学出版社,2005
4 SSD1303 Advance Information 132 x 64 Dot Matrix OLED/PLED Segment/Common Driver with Controller http://www.solomon-systech.com
Keywords:OLED  SSD1303  ARM Reference address:Application of ultra-thin display OLED in gyrotheodolite

Previous article:Intelligent sensors and their application in high-speed locomotive condition monitoring
Next article:Application of non-contact sensors in discrete manufacturing

Recommended ReadingLatest update time:2024-11-17 03:42

S3c2440ARM exception and interrupt system detailed explanation 6---key interrupt program example overview and initialization
In the previous video, we gave an example of a mother being interrupted by sound while reading. There are many sources of distant sound. The sound is transmitted to the ear and then to the brain. The whole process involves the sound source, the ear and the brain. In order to ensure that the mother's reading process ca
[Microcontroller]
S3c2440ARM exception and interrupt system detailed explanation 6---key interrupt program example overview and initialization
Nvidia acquires ARM, some are happy and some are worried
Nvidia has signed a definitive agreement with SoftBank to acquire ARM in a cash-and-stock deal valued at $40 billion.   The statement pointed out that SoftBank will continue to be committed to the long-term success of ARM by holding shares in Nvidia, and its shareholding is expected to be less than 10%.   Nvidia frame
[Embedded]
Nvidia acquires ARM, some are happy and some are worried
Driver design of nRF24L01 under ARM and WinCE6.0
introduction nRF24L01 is a single-chip wireless transceiver chip that works in the 2.4-2.5 GHz universal ISM frequency band. It is used in wireless data communications, wireless access control, remote sensing, industrial sensors and toys. With the development of measurement and control technology, there ar
[Microcontroller]
Driver design of nRF24L01 under ARM and WinCE6.0
Analysis of the working principle of the microcontroller P0 port
When I was learning ARM embedded systems, I found that I had forgotten a lot of the knowledge about analog and digital devices that I had learned before. According to my progress, I should have continued to study the ARM microprocessor control course, but I thought that I would encounter the same problem again later,
[Microcontroller]
Analysis of the working principle of the microcontroller P0 port
Debugging ARM assembler under Linux
I've been learning ARM assembly language recently , but ARM is not as easy to debug as x86. Fortunately, there are virtual machines and universal debuggers like GDB. After searching Google for a long time and combining it with my own practice, I finally succeeded in debugging ARM assembly. I would like to share this wi
[Microcontroller]
ARM program exception return operation
The occurrence of an exception will interrupt the normal operation of the program and transfer the control flow to the corresponding exception handling (exception response). After handling some exception (fiq, irq) events, the system also hopes to return to the source program breakpoint where it was interrupted when t
[Microcontroller]
Azure ARM (22) Create an Azure RM VM using Azure PowerShell
To obtain a VM Image in Azure China, you can execute the following script. Get-AzureRmVMImagePublisher -Location chinaeast Get-AzureRmVMImageOffer -Location chinaeast -PublisherName 'OpenLogic'  Get-AzureRmVMImagesku -Location chinaeast -PublisherName 'OpenLogic' -Offer CentOS Get-AzureRMVMImage -location chi
[Microcontroller]
Design of portable cerebral blood oxygen monitor based on ARM9 and its Ethernet interface
Oxygen is an important substance for human metabolism, and brain tissue consumes the most oxygen. If there is a lack of monitoring means for brain tissue oxygen supply during the clinical rescue and treatment of patients with cardiovascular and cerebrovascular diseases and brain trauma, it may cause loss or damage o
[Industrial Control]
Design of portable cerebral blood oxygen monitor based on ARM9 and its Ethernet interface
Latest sensor Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号