Interface design between OLED display module and AT91RM9200

Publisher:知识的海洋Latest update time:2012-06-09 Source: 单片机及嵌入式系统应用Keywords:OLED  AT91RM9200 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

OLED stands for Organic Light-Emitting Diode, which refers to the technology that organic semiconductor materials and luminescent materials can emit light and realize display under the drive of electric current. Compared with LCD, OLED has many advantages: ultra-light, ultra-thin (thickness can be less than 1 mm), high brightness, large viewing angle (up to 170°), light emitted by the pixel itself without the need for a backlight, low power consumption, fast response speed (about 1,000 times the speed of LCD), high clarity, low heat generation, excellent shock resistance, low manufacturing cost, and bendability. Therefore, OLED is more capable of displaying perfect videos, and with low power consumption, it can be used as a display screen for mobile phones, digital TVs and other products. It is recognized by the industry as the most promising next-generation display technology.

1 Characteristics of P13501 display module

The P13501 launched by Taiwan ReTron Corporation is a 128×64 dot matrix monochrome, character, and graphic display module. It has the following main features: blue luminous color; 128×64 dot matrix; built-in driver IC is SSD1303; contrast ratio is 500:1; viewing angle is 160°; interface is 6800 series parallel interface, 8-bit Intel 8080 series parallel interface and serial external interface; operating temperature is -20~+70℃.

2 Controller and structure block diagram of display module

OLED display screen P13501 mainly includes SSD1303 built-in controller and OLED display panel produced by Solomon Company in Taiwan.

The controller is an OLED driver chip integrating row driver, column driver and controller. The 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 operating logic voltage is 2.4 to 3.5 V; it has rich software functions, supports 4 color selections and 64-level control for each color, and its software contrast has 256-level control; the embedded 132×64-bit graphic dynamic random access memory (GDDRAM) provides row remapping, column remapping, vertical scrolling and partial display functions, making the driver suitable for a variety of OLED displays with different pixel sizes and colors. The

SSD1303 controller has two sets of timing circuits in the interface control circuit, and the corresponding settings of the timing adaptation circuit are used to meet different timing requirements. The setting ends of the timing adaptation circuit are BS1 and BS2, and its timing settings are listed in Table 1.

Click to browse products in a new window

The structural block diagram of the module is shown in Figure 1.

Click to browse products in a new window

3 Interface design between display module and AT91RM9200

The interface of SSD1303 includes data input buffer, data output latch, instruction register and decoder, busy state trigger and timing control circuit, etc. It has high-performance interface control circuit. The computer can access SSD1303 at any time without judging its current state. Since OLED adopts Intel 8080 timing, BS1 and BS2 are both connected to high level; and since there is no command/data selection line in AT91RM9200, one line PB10 in its general port PB is used as the command/data selection line of OLED. When PB1O is low level, it means that the data written to OLED is a command word; when it is high level, it means that the data written to OLED is a data word. OLED's 16-pin RES is the reset pin, which can be directly connected to the reset circuit of ARM, but in order to facilitate the reset control of OLED, another line PB11 is used as its reset control. The chip select signal USER1_CS of OLED is generated by 38 decoder decoding of NCS4 and address lines A25, A23, A22 of AT91RM9200. Its physical address is 0x52800000 after calculation. The interface circuit design of OLED and AT91RM9200 is shown in Figure 2. [page]

Click to browse products in a new window

4 OLED driver programming

One of the functions of the operating system is to shield the particularity of the hardware from the user, so that the application has nothing to do with the underlying specific physical devices. The device driver is the bridge between the application and the specific hardware. Linux supports three types of hardware devices: character devices, block devices and network devices, and their writing methods are roughly the same. Among them, character devices and block devices can be accessed like files. The main difference between character devices and block devices is that every I/O operation of the application on the character device will be directly passed to the corresponding driver of the system kernel; while the operation of the application on the block device must be passed to the driver for processing indirectly through the system buffer management. Here, OLED belongs to the character device.

Usually, the character device provides a process control interface to the application, mainly including open, close (or release), read, write, ioctl, poll and mmap. Adding a character device driver to the system is actually adding corresponding code to the above operations. For character devices and block devices, the Linux kernel has unified these operations and defines them in the structure file_operations. For most character devices, only some of the operations need to be completed for the driver to work well.

As required, the OLED device driver only implements some device operations and declares its file_operations structure in a tokenized format, as follows:

Click to browse products in a new window

oled_write is responsible for displaying the data to be displayed on the OLED screen; oled_ioctl is used to implement various control commands for the OLED; oled_open is responsible for opening the OLED display; oled_release is responsible for closing the OLED display. Here we mainly introduce the specific implementation of oled_write. Other implementations can refer to oled_write according to actual needs. The specific procedures for implementing oled_write are as follows:

Click to browse products in a new window

Click to browse products in a new window

5 Compilation of

driver program After the driver program is written, it needs to be compiled. There are generally two ways to compile the driver in the Linux operating system, namely static compilation and dynamic compilation. In static compilation, the driver program is directly compiled into the kernel and can be freely cut when configuring the kernel. Assuming that the driver program of P13501 is myoled.c, the specific operations to compile it statically into the kernel are as follows: [page]

① Copy myoled.c to the drivers/char directory and modify the drivers/char/Config.in file. Add the following code to it:
dep_tristate my oled support\' CONFIG_MY_OLED
$CONFIG_ARCH_AT91RM9200
The meaning is: as long as CONFIG_ARCH_AT91RM9200 is defined as y or m, when configuring the kernel (such as "make menuconfig"), the my oled support option will appear under the Character devices category, which corresponds to the definition of CONFIG_MY_OLED. In order to link the driver program to the kernel, CONFIG_MY_OLED should be defined as y.
② Add the following code to the Makefile in the drivers/char directory:
obj-$(CONFIG_MY_OLED)+=myoled.o
Makefile will compile and link the corresponding code according to obj-m and obj-y.
During dynamic compilation, the driver is compiled into a module, and then the device driver module is dynamically loaded and unloaded. By using the module loading method, the module can be repeatedly debugged and modified without restarting the system, which can conveniently and effectively debug the driver. In practice, in the initial stage of writing a driver, it is often compiled into a module, repeatedly loaded and unloaded, and the original code of the driver is modified until the entire driver meets the requirements, and then it is statically compiled into the kernel. During dynamic compilation
, the method is as follows:
/usr/local/arm/2.95.3/bin/arm-linux-gcc-O2-DMODULE-D__KERNEL__-I/home/sum/linux-2.4.19/include-c myoled.c
Here, it is assumed that the cross compiler path is: /usr/local/. The storage path of the kernel is: /home/sum/linux-2.4.19. If there is no error during compilation, the myoled.o file will be generated after completion. Copy it to a directory in the embedded system (for example: /home), and then it can be dynamically loaded:
insmod myoled.o
Generate device number:
mknod/dev/fftoled c 254 O
In this way, the driver of P13501 is dynamically loaded into the kernel, and the application can display output on the OLED.
The operation when the module is unloaded is as follows:
rmmod myoled
Repeated loading and unloading can complete the debugging of the OLED driver.

6 Conclusion

This paper introduces the interface circuit design of the OLED display module P13501 and AT91RM9200, as well as the writing, compilation and loading of the OLED driver under embedded Linux. The circuit and driver have been successfully applied to the display of system parameters in a control system with good results; with a simple matrix scanning keyboard, related parameter settings can also be performed. Due to the many characteristics of Linux and the many advantages of OLED display technology, I believe that their combination will have broad application prospects in consumer electronics, industrial control, and even all aspects of life.

Keywords:OLED  AT91RM9200 Reference address:Interface design between OLED display module and AT91RM9200

Previous article:Design of digital PDA system based on STM32 processor
Next article:ARM9 Remote Bus Monitoring System Based on Linux

Recommended ReadingLatest update time:2024-11-16 16:48

Breaking the domestic OLED barriers, Xiahe Technology's 1.05 billion yuan investment in the industrialization of new OLED materials
On October 23, the groundbreaking ceremony for Xiahe Technology's new OLED material industrialization and mass production project was held in Taixing Economic Development Zone, Jiangsu. Xiahe Technology's new OLED material industrialization and mass production project, with a total investment of 1.05 billion yuan, is
[Mobile phone portable]
Will BOE supply OLED screens for two new iPhone 12 series models?
According to the Science and Technology Innovation Board Daily, it was learned from the supply chain that, except for the iPhone 12 Pro series, the two new phones will be supplied with OLED screens by BOE. Apple said on Tuesday that it will hold its second special fall new product launch this year at 10 a.m. Pacific
[Mobile phone portable]
Royole Technology received a large order of 600 million yuan and will provide customers with flexible OLED display modules
On November 10, Royole Technology announced that it had signed a large order contract totaling RMB 600 million. According to the agreement, Royole will provide customers with its independently developed and produced flexible OLED display modules, which will be shipped in 2022 and all orders will be delivered within
[Mobile phone portable]
IPS, LED and OLED: Analysis of new technologies for flat panel displays
  For many years, fluorescent screens were the gold standard for precision quality control of display systems, but these days they are hard to find. New technology has introduced flat panel displays, changing (but not eliminating) the need for calibrated displays, resulting in flat panel LCD monitors becoming the most
[Power Management]
IPS, LED and OLED: Analysis of new technologies for flat panel displays
Samsung Display has increased QD-OLED panel yield to 85%
Samsung Display President Choi Joo-sun said at a meeting with executives and employees at Giheung Campus in Yongin, Gyeonggi Province, South Korea, earlier this month that the company has increased the yield of its quantum dot (QD)-based organic light-emitting diode (OLED) panels to 85%. In addition, in the first half
[Semiconductor design/manufacturing]
Samsung Display has increased QD-OLED panel yield to 85%
The difference between OLED and TFT
OLED, or Organic Light-Emitting Diode, is also known as Organic Electroluminesence Display (OELD). Since 2003, this display device has been widely used in MP3 players due to its thinness, lightness and power saving. For DC and mobile phones, which are also digital products, engineering samples using OLED screens h
[Power Management]
The difference between OLED and TFT
Japan-South Korea relations have reached a low point. Does the US government want to mediate?
Starting from July 4, Japan will restrict exports of semiconductor materials, OLED materials, etc. to South Korea and begin imposing economic sanctions on South Korea.   In addition, according to a report by Japan's Kyodo News on July 26, the Japanese government is coordinating and plans to make a formal decision at a
[Embedded]
Japan-South Korea relations have reached a low point. Does the US government want to mediate?
TCL Technology: Guangdong Juhua, a subsidiary of TCL, has successfully manufactured 32-inch printed OLED products
On December 16, TCL Technology stated on its investor interaction platform that Guangdong Juhua, a subsidiary of the company, is the only national-level flexible display innovation platform. It has successfully manufactured 32-inch printed OLED products and integrated resources from all links of the industrial chain f
[Mobile phone portable]
TCL Technology: Guangdong Juhua, a subsidiary of TCL, has successfully manufactured 32-inch printed OLED products
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
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号