Unique Requirements for Touch Controllers in Two-Wheeled Electric Vehicle Touch Screens

Although countless articles about the future of transportation focus on four-wheeled electric vehicles, more and more mobility rely more heavily on economical two-wheeled electric vehicles, including scooters, heavy motorcycles, electric motorcycles, e-mopeds, and e-bikes. These two-wheeled electric vehicles are following the design trends of four-wheeled electric vehicles by incorporating touchscreens for control, replacing physical knobs, buttons, and mechanical dials.

The adoption of touchscreens enables designers of two-wheeled electric vehicles to create models with a modern appearance, flexible layouts, and stylish designs. It also allows for easy customization according to different models or even individual vehicles. User-friendly menu systems can meet the more complex control, display, and functionality requirements of two-wheeled electric vehicles while also enabling value-added features such as navigation, infotainment systems, remote payments, and vehicle security.

The touchscreens on two-wheeled electric vehicles are often exposed to harsh outdoor environments, making them vulnerable to rain, snow, dust, or sand. In hot climates, these vehicles may sometimes be parked under direct sunlight, subjected to intense UV and infrared radiation. Additionally, they are prone to accidents or deliberate damage.

Considering these factors, touchscreens for two-wheeled electric vehicles should ideally have an IP65/68 protection rating and thick cover glass to safeguard the underlying touch sensors and LCD or OLED display components. To prevent damage from sunlight and UV radiation, UV/IR filters are required, and anti-reflective/anti-glare coatings should be applied to enhance screen visibility under all lighting conditions.

Consequently, the display stack needs a thick, multi-layered design. However, each additional layer increases the distance between the finger and the capacitive touch sensor, making it more challenging to accurately detect touch inputs on the screen surface.

In cold regions, touchscreens are often operated by riders wearing thick gloves, which further increases the distance between the fingers and the touch sensor. Additionally, rain or snow on the screen in wet weather can lead to false touches or missed inputs.

A high-quality touchscreen must not only reliably track the path of a finger moving across the screen but also accurately detect multi-finger gestures made with thick gloves in wet conditions, enabling functions like navigation on maps. Touchscreens need to meet a wide range of environmental demands, placing stringent requirements on the touchscreen controller IC, which must address the following design challenges:

Thicker Display Stacks

Touchscreen controllers must support significant flexibility to accommodate various layers above the touch sensor in the display stack. Advanced technology with an equivalent thickness of 10 mm or more is required, enabling the use of anti-reflective and anti-glare coatings, along with 4 mm thick cover glass and operation with 3 mm thick gloves. Alternatively, touchscreen designers may include an air gap between the screen and glass, allowing the top glass layer to be replaced without swapping the entire display in case of damage. However, the increased thickness makes it more challenging for the touchscreen controller to accurately detect and decode touch inputs. Controllers must rise to this challenge.

Reliable Touch Performance

Two-wheeled electric vehicles are typically used outdoors for most of their lifespan. Touchscreen controller algorithms must prevent water droplets from being misinterpreted as touches, detecting only inputs from fingers or gloved hands. Capacitive sensing must also distinguish between conductive cleaning solutions (like bleach) and their mixtures with water, ensuring no false touches occur.

Functional Safety

Two-wheeled electric vehicles worldwide require functional safety features to protect riders while using the touchscreen. Features like navigation and hands-free calls during riding could pose distractions. Screens may need to comply with safety standards such as ISO 26262 (ASIL-B). Controllers must provide self-testing functions, documentation, and guidelines to support certification.

Security

In rental scenarios, touchscreens may be used to input PINs, granting vehicle access to renters. They also support contactless payments via credit cards or smartphones. Touchscreen controllers must include encryption and firmware authentication to ensure data privacy.

Noise Immunity

Powertrain circuits that drive electric motors generate radiated and conducted electromagnetic noise. Switching power supply-based chargers introduce noise into vehicle power lines, and lighting systems may cause conducted noise. Even LCD or OLED panels can emit electromagnetic interference. Without proper noise control, these sources can degrade touchscreen functionality. Controllers must include noise filtering algorithms to avoid false activations, especially during operation.

Microchip’s maXTouch® Touchscreen Controllers

Microchip’s maXTouch® series is equipped with features to meet these stringent requirements and enhance the touchscreen experience. Key capabilities include:

  • Support for screens from 2 to 34 inches with various aspect ratios.
  • Compatibility with thick cover glass up to 10 mm and air gaps of 0.2 mm or more.
  • Accurate touch detection through 5 mm thick gloves (e.g., ski or motorcycle gloves).
  • Moisture resistance, preventing false touches caused by water droplets, flows, 3.5% saline, or cleaning solutions.
  • Encrypted messages and hidden PIN configurations.
  • Interoperability with NFC( Near Field Communication) technology.
  • High conducted noise immunity (certified to Class A IEC 61000-4-6).
  • Self-diagnostic and reporting functionality.
  • Support for Linux®/Android™ operating systems.

Conclusion

Two-wheeled electric vehicle designs are complex, much like four-wheeled vehicles. Designers continuously add new features to meet evolving consumer expectations. Enhanced touchscreens, supported by capable touchscreen controllers, offer the flexibility required to integrate these features into vehicle designs. By addressing unique requirements and carefully selecting touchscreen controllers, the demands of two-wheeled electric vehicle designs can be effectively met.

What If a Display Screen Can’t be Light Up?

Summary of Steps to Resolve Issues When the Display Screen Won’t Turn On

Step 1:
Provide the schematic diagram and testing program. Generally, 95% of customers can light up the display screen with the information.

Step 2:
If the display still doesn’t turn on, the customer needs to determine whether the issue lies in the hardware or software. At this point, it’s best to provide the customer with a demo unit. This helps the customer confirm that the display itself is not damaged and significantly aids their troubleshooting process.

Step 3:
If the issue persists, the customer can share their schematic design and software with the factory engineers for review to identify any potential problems. This step should resolve 99% of issues.

Step 4:
If the display still doesn’t turn on after the previous steps, the customer can send their designed board to the factory engineers for further troubleshooting assistance.

Note: Some customers send us the MCU or evaluation kit (e.g., development board) they are using and ask us to provide design suggestions. However, this is highly challenging. The market has a vast variety of MCUs, and it is unrealistic for or engineers to be familiar with all of them.

For example, it’s similar to a scenario where our engineers are skilled at repairing Toyota cars, but a customer brings in a Tesla and asks for diagnostics. The engineers would need to spend a significant amount of time studying and understanding the new system.

Here is a detailed description of the issue:

We often receive customer emails like this:
“I have issues with getting the display to work. How can I do?”

When it comes to troubleshooting display screens that won’t turn on, the problem typically falls into two categories: hardware or software.

Hardware:

Configuration Issues

LCD screens often have many pins, and factories may have implemented specific configurations. Simply relying on the datasheet to troubleshoot can sometimes be very challenging. Customers not only need to be familiar with the LCD driver but also deal with component configurations or failures, which can sometimes drive them to frustration.

Proper documentation and detailed schematics are crucial for helping customers overcome these hardware challenges.

Since our engineers already successfully lit up the display, the simplest solution is to provide the schematic diagram of the our testing setup for the display to the customer. This makes the our approach to configuring the display and components clear at a glance.

While the customer’s MCU might differ from the one used by the factory in testing, they are often similar in functionality. Sharing this schematic helps the customer avoid unnecessary detours during troubleshooting.

The schematic typically looks like this:

When Everything Seems Correct, But the Display Still Won’t Light Up:

Sometimes, even when all configurations appear correct, the display still doesn’t turn on. This could be due to common physical issues such as:

  • Display damage (e.g., from handling or manufacturing defects).
  • FPC (Flexible Printed Circuit) tearing, which disrupts the electrical connection.
  • Electrostatic discharge (ESD) damage, which can destroy sensitive components.

For delicate and high-precision displays, it’s recommended to keep at least two spare units on hand to avoid downtime caused by damage.

If the display still doesn’t work, the customer should consider purchasing our demo board or evaluation board. These provide a pre-tested and reliable reference design, significantly shortening the customer’s development cycle and helping them identify whether the issue lies in their setup or the display itself.

 

Software (Firmware)

For some displays, the configuration can be highly complex, especially with settings like register configurations. These settings often require meticulous understanding and programming, and even factory engineers may occasionally make mistakes.

The good news is that IC manufacturers typically provide example code and library files, which handle the most intricate tasks. By including the library files, engineers can streamline their workflow:

c

Copy code

#include <LibraryFile>

This allows the IC manufacturer’s pre-defined settings to be imported into the program. Afterward, engineers only need to define the interface and desired functions.

For customers unfamiliar with the ICs we use, it’s best to provide the sample code from our product testing. This helps them avoid unnecessary detours and significantly simplifies their development process.

Sample code can be provided in formats such as .txt files, .h (hexadecimal files), or other formats, all of which are useful references for the customer.

Sample code typically looks like this:

Alternatively (when using a compiler IDE)

With the above hardware and software support, 95% of customers can resolve their issues. However, some customers may still be unable to light up the display. This could indicate a problem with the customer’s motherboard.

Supporting the customer’s motherboard is challenging for the factory, mainly because of the vast variety of controllers they use. Factory engineers would need to invest significant time in thoroughly studying the customer’s controller and PCB wiring.

That said, if the factory engineers are familiar with commonly used controllers, such as the 51 series, STM32 series, or Arduino series, they may be able to assist.

If the factory engineers have knowledge of the customer’s MCU, they can provide targeted support by offering:

  • The connection method between the MCU and the LCD (as shown in the diagram below).
  • Corresponding sample code for the specific setup.

Note:

  1. Difference Between Demo Board and Evaluation Board (Evaluation Kit):
    • Demo Board:
      Designed specifically for demonstrating display functionality by the factory. Customers cannot, or find it difficult to, modify the images or display configurations.
    • Evaluation Board:
      More flexible as it allows customers to program and upload their own images, or even modify display settings. Currently, we offer two affordable evaluation boards:

      • JAZZ-MCU-01:
        Designed to drive displays with SPI, I2C, 8-bit, or 16-bit MCU/TTL interfaces. The factory can pre-load images provided by the customer, or if the customer is familiar with AGU’s products, they can upload their own images.
      • JAZZ-HDMI-01:
        Designed to drive displays with RGB, LVDS, or MIPI interfaces. Since it uses HDMI, customers can connect it to a computer to view their desired images and videos directly.
  2. Difference Between Software (Code) and Firmware:
    • Firmware:
      Firmware is also code but is used at the hardware’s lower levels. It typically involves fundamental hardware settings that are rarely changed. For example, in touch control ICs, factory-set firmware often includes settings like touch sensitivity and temperature curves.
    • Code (Software):
      Built on top of the firmware, software enhances the hardware’s functionality by implementing advanced features. It allows for user-specific customization and higher-level operations.

Introduction to Embedded Touch Display Driver Chip (TDDI)

TDDI (Touch and Display Driver Integration) technology combines touch functionality with the display driver in a single chip, simplifying the display structure and enhancing performance. In TDDI technology, the touch sensor is typically integrated directly into the glass substrate of the display panel, creating an all-in-one touch and display solution.

Specifically, TDDI technology embeds the touch sensor between the color filter substrate and the polarizer of the display screen, positioning the touch sensor within the glass layer of the display. This high level of integration enables both display and touch functionality in a streamlined form. This design makes the display thinner, reduces bezel width, improves the screen-to-body ratio, and simplifies the supply chain. The structure is as follows:

  1. The GFF (Glass-Film-Film) solution uses a separate structure for display and touch, where display and touch are independent modules.
  2. The On-cell solution embeds the touch sensor between the color filter substrate and the polarizer of the display screen, positioning the touch sensor on the display glass. This merges the display and touch modules into one, but the IC and FPC remain separate with two distinct designs.
  3. The TDDI solution fully integrates the touch sensor into the display’s TFT panel, unifying the display and touch modules, IC, and FPC into a single design. This is a highly integrated solution for display and touch functionality.

Due to its high level of integration, the TDDI solution offers benefits such as a thinner display, cost reduction, and a simplified supply chain. It has become the mainstream solution for LCD screens in smartphones. As of 2020, the LCD TDDI solution has accounted for over 50% of applications in smartphone display and touch functionality.

The development trends in smartphone TDDI display technology include high refresh rates, narrow bezels, and high functional integration.

(1) Advantages of High Refresh Rates

  1. Reduces flickering and jitter in image display, which helps alleviate eye strain.
  2. Enhances dynamic scenes in gaming applications, reducing blur and screen tearing during fast movements.
  3. Improves smoothness during screen transitions or scrolling, minimizing blurriness and ghosting in images and videos.

Requirements for TDDI IC: To support high refresh rates, TDDI ICs need faster MIPI data reception, higher oscillation frequencies (OSC), stronger drive capabilities, and faster response and processing speeds.

FHD LTPS TDDI: Production for 144Hz displays has been achieved, but 160Hz is still in the initial RFI (Request for Information) stage, with no corresponding products yet. Additionally, demand for LCD TDDI at 160Hz remains unclear, so most manufacturers are adopting a wait-and-see approach.

HD a-Si TDDI: Production has reached 90Hz, and a new recessed bump IC now supports 120Hz. For HD 120Hz displays, there are no technical bottlenecks or additional costs. Once cost-compatible motherboard configurations become available, manufacturers plan to launch projects, potentially upgrading HD displays to 120Hz.

(2) Narrow Bezels and Ultra-Narrow Bottom Bezels for Full-Screen Design

Manufacturers are also pursuing ultra-narrow bezels, especially at the bottom, to achieve a truly full-screen experience.

Narrow Bezel Technology Solutions:

  1. Pad Arrangement:
    The interlace arrangement, compared to the no-interlace design, can reduce the bottom bezel by about 1mm without additional cost or performance impact. Thus, since 2017, interlace has replaced no-interlace as the mainstream choice.
  2. Bonding Type:
    The COF (Chip on Film) solution offers an advantage over COG (Chip on Glass) in terms of achieving narrower bezels. However, COF increases costs, making it less suitable for mid-to-low-end LCD models. Therefore, COG remains the primary bonding type for LCD TDDI solutions.
  3. Gate Design:
    Between 2018 and 2019, display and IC manufacturers introduced the dual gate design for HD a-Si displays to achieve narrower bottom bezels. However, as the dual gate design had performance issues and conflicted with the high refresh rate trend that emerged in late 2019, the market quickly abandoned it. Currently, the traditional single gate design dominates TDDI for smartphones.
  4. Bump Design:
    Following the discontinuation of the dual gate approach, glass manufacturers proposed a new recessed bump design to achieve narrower bezels. This design adds no extra cost and has no impact on other performance areas. It is expected to gradually replace the standard normal bump design, becoming the mainstream approach.

FHD LTPS: With a source demux design, the bottom bezel in the traditional normal bump configuration is already around 3.1mm. The reduction achieved by switching to recessed bump is minimal, so the demand for this change is not strong, and it remains in pre-research.

HD a-Si: The traditional normal bump design has a bottom bezel of 4.0-4.2mm, while the recessed bump design can reduce it to 3.0-3.2mm, achieving approximately a 1mm reduction. This approach is prioritized for HD products and is already in production for some smartphone models. Large-scale production is anticipated in the second half of 2022, with recessed bump expected to gradually replace normal bump as the mainstream solution.

Here are some major manufacturers of TDDI (Touch and Display Driver Integration) chips and examples of their products:

  1. Novatek:
    • NT36525: Supports high-resolution displays, suitable for smartphones and tablets.
    • NT36523: Designed for mid-to-high-end smartphones, featuring high refresh rates.
  2. FocalTech:
    • FT8756: Supports Full HD (FHD) resolution, suitable for smartphones.
    • FT8751: A cost-effective option for mid-to-low-end devices.
  3. Himax:
    • HX8399: Supports high-resolution displays, suitable for smartphones and tablets.
    • HX8394: Suitable for mid-range smartphones with good display performance.
  4. Solomon Systech:
    • SSD2010: Supports a 454RGBx454 resolution, ideal for wearable devices.
  5. Chipone:
    • ICNL9911C: Supports HD/HD+ resolution, suitable for smartphones.
  6. TDYTech:
    • TD4160: Supports high refresh rates and multi-finger touch, suitable for smartphones and tablets.
  7. Synaptics:
    • TD4303: Supports hybrid in-cell panel technology, suitable for smartphones.

These TDDI chips are widely used in smartphones, tablets, and wearable devices, offering high integration and excellent display and touch performance.

If you have any questions about Display and Touch Waterproofing Requirements, please contact Orient Display support engineers

Introduction to Cover Glass for Displays

Cover Glass (Cover Lens) is primarily used as the outermost layer of touch screens. The main raw material for these products is ultra-thin flat glass, which offers features such as impact resistance, scratch resistance, oil and fingerprint resistance, and enhanced light transmittance. It is currently widely used in various electronic consumer products with touch and display functionalities.

1. Classification of Glass

a. Soda-lime glass: Primarily composed of SiO₂, with additional content of 15% Na₂O and 16% CaO.
b. Aluminosilicate glass: Mainly composed of SiO₂ and Al₂O₃.
c. Quartz glass: Contains more than 99.5% SiO₂.
d. High-silica glass: Contains approximately 96% SiO₂.
e. Lead-silicate glass: Mainly composed of SiO₂ and PbO.
f. Borosilicate glass: Primarily made up of SiO₂ and B₂O₃.
g. Phosphate glass: Mainly composed of phosphorus pentoxide (P₂O₅).

Types c through g are rarely used in displays, so they will not be discussed here.

2. Processing Techniques for Glass Raw Materials

a. Float Glass

Float glass is produced using raw materials such as sea sand, quartz sandstone powder, soda ash, and dolomite. These materials are mixed and melted at high temperatures in a furnace. The molten glass continuously flows from the furnace and floats on the surface of a molten metal bath, forming a uniformly thick, flat glass ribbon that is flame-polished. After cooling and hardening, the glass separates from the molten metal, and it is then annealed and cut to create transparent, colorless flat glass. The forming process of float glass is completed in a tin bath with protective gas, resulting in a distinction between the tin side and the air side of the glass.

b. Overflow Process:

In the overflow process, molten glass enters the overflow channel from the feeder section and flows downward along the surface of a long overflow trough. The glass converges at the bottom tip of a wedge-shaped body under the overflow trough, forming a glass ribbon. After annealing, this process creates flat glass. This method is currently a popular technique for manufacturing ultra-thin cover glass, offering high processing yield, good quality, and overall excellent performance. Unlike float glass, overflow glass does not have a tin side or an air side.

3. Introduction to Soda-Lime Glass

a. Also known as soda glass (English: soda-lime glass), it is processed using the float method, hence also called float glass. Due to the presence of a small amount of iron ions, the glass appears green when viewed from the side, and is therefore also referred to as green glass.

b. Thickness of Soda-Lime Glass: 0.3–10.0 mm

c. Brands of Soda-Lime Glass:

  • Japanese brands: Asahi Glass Co. (AGC), Nippon Sheet Glass Co. (NSG), Central Glass (CENTRAL), etc.
  • Chinese brands: CSG Holding, Xinyi Glass, Luoyang Glass, AVIC Sanxin, Jinjing Group, etc.
  • Taiwanese brand: Taiwan Glass (TGC).

4. Introduction to High Aluminosilicate Glass (High Alumina Glass)

a. Brands of High Alumina GlassUnited States: Corning Gorilla Glass, an eco-friendly aluminosilicate glass produced by Corning Incorporated.Japan: Dragontrail Glass, produced by AGC Inc. This glass is commonly referred to as “Dragontrail Glass.”China: Panda Glass, produced by Xuhong Company, is a high alumina glass. Other manufacturers include CSG Holding and Kibing Group.

b. Cover Glass ProcessingCompanies involved in processing cover glass include Lens Technology, Boen Optics, Shenzhen Xinhao, G-Tech Optoelectronics, Jiangxi Firstar , BYD, and others.

5. Chemical Strengthening of Glass

a. Principle:

The glass is immersed in a molten salt bath (KNO₃). The high concentration of K⁺ ions penetrates the glass surface and replaces the Na⁺ ions within the glass. Since the ionic radius of K⁺ is larger than that of Na⁺, this substitution increases the surface density of the glass, generating compressive stress on the surface. This process enhances the glass’s strength through chemical reinforcement.

 

b. Test Items for Chemical Strengthening

Depth of Layer (DOL): Indicates the depth of the stress layer after the glass has been strengthened.

Compressive Stress (CS): Represents the surface compressive stress of the chemically strengthened glass.

Surface Hardness: Evaluated using a pencil hardness test.

Drop Ball Test: A destructive test to assess the glass’s impact resistance.

Note:

  1. Based on our project experience, we recommend the following:

    a. Use 1.1 mm thick glass for IK04.

    b. Use 1.8 mm thick glass for IK06.

    c. Use 3.0 mm thick glass for IK08.

    d. Use 6.0 mm thick glass for IK10.

  2. Physically tempered glass is mainly recommended when safety is a priority for the customer. This is because, when broken, physically tempered glass shatters into small granular pieces, unlike chemically tempered glass, which can break into sharp shards, posing a safety hazard.
  3. For chemically strengthened glass, to enhance safety, optical bonding or applying an anti-shatter film to the surface can prevent glass fragments from scattering upon breakage.

6. Production Process Flow for Glass Cover Lens

Cutting → CNC (shaping, drilling, edging, and chamfering) → Ultrasonic Cleaning → Chemical Strengthening → Ultrasonic Cleaning → Full Inspection of Blank Glass → Screen Printing → Baking → Full Inspection of Glass → Ultrasonic Cleaning → Surface AR Coating → AF Anti-Fingerprint Coating → Full Inspection of Glass → Film Coating and Packaging.

Key steps are explained as follows:

a. Cutting

The original glass sheet is cut with a diamond wheel cutter and then snapped into rectangular pieces that are 20-30 mm larger on each side than the final product dimensions.

b. CNC (Shaping, Drilling, Edging, and Chamfering)

Using high-hardness diamond grinding wheels rotating at high speed, the glass substrate undergoes mechanical grinding under excellent cooling and lubrication conditions to achieve the desired structural dimensions. Different tool shapes and grit sizes are designed to meet various processing requirements.

c. Chemical Strengthening

At high temperatures, an ion exchange occurs between the glass and KNO₃, where ions from KNO₃ replace the ions in the glass. Due to the larger atomic radius of the replacement ions, the surface of the glass undergoes compressive stress after tempering. When the glass is subjected to external force, this compressive layer can offset some of the tensile stress, preventing the glass from breaking. This compressive stress increases the glass’s resistance to bending and impact. Factors affecting the strength performance of chemically tempered glass (such as drop ball tests and four-point bending tests) include: 1) Tempering performance indicators of the glass (DOL, CS); 2) Internal and surface defects of the glass (micro-cracks and scratches); 3) Edge chipping and hidden damage formed during CNC processing; 4) Inherent defects in the glass raw material (impurities in the raw material, uneven areas, air bubbles, and inclusions, which are uncontrollable factors).

d. Polishing

The glass material is ground and polished using a double-sided grinder equipped with polishing pads and polishing powder. This process removes surface impurities and micro-cracks, enhancing the glass’s surface smoothness and reducing roughness. The main component of the polishing powder is cerium oxide. Cerium oxide polishing powder particles are polygonal with distinct edges, having an average diameter of about 2 microns and a hardness of Mohs 7-8. The particle size and purity of cerium oxide polishing powder directly affect the polishing outcome.

e. Ultrasonic Cleaning

When high-frequency vibrations (28–40 kHz) are transmitted to the cleaning medium, the liquid medium generates nearly vacuum-like cavitation bubbles. As these bubbles collide, merge, and dissipate, they create localized pressure bursts of several thousand atmospheres within the liquid. Such high pressure causes surrounding materials to undergo various physical and chemical changes, a process known as “cavitation.” Cavitation can break chemical bonds in material molecules, leading to physical changes (dissolution, adsorption, emulsification, dispersion) and chemical changes (oxidation, reduction, decomposition, synthesis), effectively removing contaminants and cleaning the product.

f. Printing

The principle of printing involves creating a stencil using photosensitive materials. Ink is placed in the screen frame, and a squeegee applies pressure to push the ink through the screen mesh openings onto the substrate, forming patterns and text identical to the original design.

g. Coating

Under vacuum conditions (10⁻³ Pa), an electron gun emits a high-speed electron beam to bombard and heat the coating material, causing it to evaporate and deposit onto the substrate surface, forming a thin film. Coating equipment primarily consists of a vacuum system, an evaporation system, and a film thickness monitoring system. Common coatings include functional films like AF (anti-fingerprint), AR (anti-reflective), AG (anti-glare), high-hardness films, decorative films such as NCVM (Non-Conductive Vacuum Metallization), and iridescent films.

7. IK Rating

IK ratings are an international classification that indicate the degree of protection provided by electrical enclosures against external mechanical impacts.

IK ratings are defined as IK00 to IK10. The IK rating scale identifies the ability of an enclosure to resist impact energy levels measured in joules (J) in accordance with IEC 62262 (2002).

IEC 62262 specifies how the enclosure must be mounted for testing, the atmospheric conditions required, the quantity and distribution of the test impacts and the impact hammer to be used for each level of IK rating. The test is carried out by a Charpy pendulum impact tester.

IK00 Not protected

IK01 Protected against 0.14 joules impact.
Equivalent to impact of 0.25 kg mass dropped from 56 mm above impacted surface.

IK02 Protected against 0.2 joules impact.
Equivalent to impact of 0.25 kg mass dropped from 80 mm above impacted surface.

IK03 Protected against 0.35 joules impact.
Equivalent to impact of 0.25 kg mass dropped from 140 mm above impacted surface.

IK04 Protected against 0.5 joules impact.
Equivalent to impact of 0.25 kg mass dropped from 200 mm above impacted surface.

IK05 Protected against 0.7 joules impact.
Equivalent to impact of 0.25 kg mass dropped from 280 mm above impacted surface.

IK06 Protected against 1 joules impact.
Equivalent to impact of 0.25 kg mass dropped from 400 mm above impacted surface.

IK07 Protected against 2 joules impact.
Equivalent to impact of 0.5 kg mass dropped from 400 mm above impacted surface.

IK08 Protected against 5 joules impact.
Equivalent to impact of 1.7 kg mass dropped from 300 mm above impacted surface.

IK09 Protected against 10 joules impact.
Equivalent to impact of 5 kg mass dropped from 200 mm above impacted surface.

IK10 Protected against 20 joules impact.
Equivalent to impact of 5 kg mass dropped from 400 mm above impacted surface.

 

If you have any questions about Display Cover Glass, please contact Orient Display support engineers

 

Emulating Embedded Linux Systems with QEMU

Emulating Embedded Linux Systems with QEMU

 

1. Introduction

Embedded software development relies on embedded hardware devices, such as development boards, external module devices, etc., but if the debugging work has nothing to do with peripherals, only the kernel debugging can be simulated using QEMU without purchasing hardware.

It’s available for Linux and Windows hosts and emulated PowerPC, ARM, MIPS, and SPARC targets. QEMU takes the approach of providing a minimal translation layer between the host and target processor. The host processor is the one running the emulator, and the target processor is what’s being emulated.

The following is a detailed introduction to the process of setting up QEMU development environment.

 

2. Environment

2.1 Used environment

* Ubuntu-18.04.1

OR:

* PC:Windows10

* Virtual Machine:VirtualBox-5.18

* Virtual OS:Ubuntu-18.04.1

* Simulated development board: vexpres

2.2 Tools used when setting up the environment

* qemu-4.2.0

* linux-4.14.172 (Linux Kernel)

* u-boot-2017.05

* busybox-1.31.1

* arm-linux-gnueabi-gcc

Put all related files in  /home/joe/qemu

3. Install cross-compilation tools

# sudo apt install gcc-arm-linux-gnueabi

 

Check if the installation is successful

$ arm-linux-gnueabi-gcc -v

Using built-inspecs.

COLLECT_GCC=arm-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabi/7/lto-wrapper

Target: arm-linux-gnueabi

Configured with: ../src/configure -v –with-pkgversion=’Ubuntu/Linaro 7.5.0-3ubuntu1~18.04′–with-bugurl=file:///usr

Thread model: posix

gcc version 7.5.0(Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)

 

4. Configure and Compile the Linux kernel

4.1 Download Linux Kernel

Download the required kernel version from www.kernel.org.

Here I download the relatively latest long-term supported kernel version linux-4.4.157

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.157.tar.xz  to /qemu directory

4.2 Unzip the Linux kernel

# tar xvJf linux-4.4.157.tar.xz

4.3 Compile Linux Kernel

// Enter the kernel source file directory

# cd linux-4.4.157

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm menuconfig

If running menuconfig shows that the ncurses package is missing, just run the following command to install it)

$ sudo apt-get install libncurses5-dev

Enter the menu configuration and make the following settings

Compile with cross toolchain

After successful compilation, Generate a kernel image file under the directory

arch/arm/boot, zImage and dtb can be copied into a separate folder for convenient use

 

5. Install QEMU Tools

5.1 Install QEMU

* wget https://download.qemu.org/qemu-4.2.0.tar.xz

* tar xvJf qemu-4.2.0.tar.xz

* cd qemu-4.2.0

5.2 Install dependent packages before configuring QEMU

# apt install zlib1g-dev
# apt install libglib2.0-0 libglib2.0-dev
# apt install libsdl1.2-dev
# apt install libpixman-1-dev libfdt-dev

In order to prevent the files from being messy after compilation, create the builder directory as the intermediate target path for compilation.

Configure, compile and install QEMU.

5.3 Configure QEMU to support all boards under the arm architecture

# ../configure –target-list=arm-softmmu –audio-drv-list=

If pixman is missing when the following prompt appears,

use sudo apt-get install libpixman-1-dev to install it.

5.4 View QEMU version

5.5 View development boards supported by QEMU

5.6 Run QEMU

# qemu-system-arm -M vexpress-a9 -m 512M -kernel ./zImage -dtb ./vexpress-v2p-ca9.dtb -nographic -append “console=ttyAMA0”

OR:

$pwd

/home/joe/qemu

# qemu-system-arm -M vexpress-a9 -m 512M -kernel linux-.4.157/arch/arm/boot/zImage -dtb linux-4.4.157/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append “console=ttyAMA0”

In order to better testing and start qemu, you can create the startup script start.sh, and give the script permission to run chmod +x start.sh

 

#!/bin/bash

 

qemu-system-arm \

-M vexpress-a9 \

-m 512M \

-kernel /home/joe/jemu/linux-4.4.157/arch/arm/boot/zImage \

-dtb /home/joe/jemu/linux-4.4.157/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \

-nographic \

-append “console=ttyAMA0”

 

6. Make a root file system

Use busybox to make a simple root file system.

6.1 Download busybox tool

Download busybox from https://busybox.net/downloads/

# wget https://busybox.net/downloads/busybox-1.31.1.tar.bz2

# tar xjvf busybox-1.31.1.tar.bz2

# cd busybox-1.31.1

# make defconfig

# make CROSS_COMPILE=arm-linux-gnueabi-

# make install CROSS_COMPILE=arm-linux-gnueabi-

The following information is prompted, indicating that the installation is successful.

After the installation is complete, the generated target file defaults to the ./_install directory.

 

6.2 Generate root file system

6.2.1 compile and install busybox

# mkdir rootfs

# sudo cp -r _install/* rootfs/

6.2.2 Add glibc library, add loader and dynamic library in the root file system

# sudo cp -r _install/* rootfs/

# sudo cp -p /usr/arm-linux-gnueabi/lib/* rootfs/lib/

6.2.3 Create 4 tty terminal devices (c stands for character device, 4 is the major device number, and 1~4 are the minor device numbers respectively)

 

6.3 Make SD card file system image

6.3.1 Generate an empty SD card image

# dd if=/dev/zero of=rootfs.ext3 bs=1M count=32

6.3.2 Format SD card as exts file system

# mkfs.ext3 rootfs.ext3

6.3.3 Burn rootfs to SD card

# sudo mount -t ext3 rootfs.ext3 /mnt -o loop

# sudo cp -rf rootfs/* /mnt/

# sudo umount /mnt

 

7. Verify

7.1 Start Qemu

Run the following command to test, check if the compiled kernel can run successfully

# sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel ~/qemu/zImage –dtb ~/qemu/vexpress-v2p-ca9.dtb -nographic -append “console=ttyAMA0”

Or using Script:

 

In the above test, the kernel will report panic, suggesting that we lack the root file system.

The above problem is due to the busybox tool generated inn the x86 environment.

We used make install when install busybox, so you should use

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install

 

The compilation tool generates the busybox tool used by the arm platform

# file rootfs/bin/busybox

rootfs/bin/busybox: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-, for GNU/Linux 3.2.0, BuildID[sha1]=cbcd33b8d6c946cb19408a5e8e714de554c87f52, stripped

 

7.2 Verify again

Now, Qemu has started the Linux kernel and mounted the file system successfully, and can interact with the system with simple functions through the serial terminal. The problem of not being able to run /etc/init.d/rcS in the printing process, you only need to add the /etc/init.d/rcS file. The content of the file can be a prompt statement.

 

7.3 Exit QEMU

Two ways to exit qemu

* In another terminal input: kill all qemu-system-arm

* In Qemu input:  Ctrl+ A; X

QEMU: Terminated

 

8. Start the Linux kernel through u-boot

Embedded system usually include: u-boot, kernel, rootfs, and appfs. The positional relationship of these parts on the ARM development board shown in the figure below

 

BootLoader BootParameters Kernel Rootfs Appfs

 

Rootfs can run in board or PC

 

8.1 Prepare U-boot

8.1.1 Download u-boot

http://ftp.denx.de/pub/u-boot/,   we use: u-boot-2021.01.tar.bz2

# tar -jxvf u-boot-2018.09.tar.bz2

8.1.2 Compile u-boot

# vim Makefile

CROSS_COMPILE = arm-linux-gnueabi-

# vim config.mk

ARCH = arm

# make vexpress_ca9x4_defconfig, error

Need :  sudo apt install bison

sudo apt install flex

then:     # make -j4    error

Need :   export CROSS_COMPILE=arm-linux-gnueabi-

export ARCH=arm

again:  # make vexpress_ca9x4_defconfig

# make -j4

 

 8.1.3 Test, start u-boot

$ sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel u-boot-2021.01/u-boot –nographic

 

8.2 Kernel configuration compilation

Use u-boot to boot the kernel image:

Need to compile the kernel into uImage format,

Need to specify the load address of uImage in memory

Specify when compiling the kernel: make LOADADDR=? uImage -j4

 

# cd /home/joe/qemu/linux-4.4.157

# make LOADADDR=0x60003000 uImage -j4

 

After u-boot compilation is finished, a mkimage file will be generated under the tool folder, copy this file to the bin folder under the cross compiler directory.

$ cd qemu/linux-4.4.157

Error:

$ sudo apt install u-boot-tools

Get uImage

9. QEMU network function settings

When the Qemu virtual machine starts on u-boot, uImage needs to be loaded into the memory, and uImage can be downloaded to the specified address in the memory through the TFTP server.

9.1 Check whether the host kernel supports the tun/tap module

// Install the two tools that the bridged network depends on

# sudo apt install uml-utilities bridge-utils

Create tun device file: /dev/net/tun (usually created automatically)

Modify the /etc/network/interfaces (configure the network, restart to take effect)

# sudo vim /etc/network/interfaces

auto loiface lo inet loopbackauto enp0s3          // name of virtual network cardauto br0iface br0 inet dhcpbridge_ports enp0s3

 

9.2 Reboot

# reboot

Then check Qemu’s network environment

The virtual network port br0 is the network port for the communication between the Qemu virtual machine and the Linux host.

 

10. Install TFTP server

Create a TFTP server to download uImage to the memory when launching uImage for the Qemu simulation development board

 

10.1 Install tftp tool

 

$ apt-get install tftp-hpa tftpd-hpa xinetd

 

10.2 Modify the configuration file and set the TFTP server directory

# sudo vim /etc/default/tftpd-hpa

……

TFTP_DIRECTORY=”/home/joe/tftpboot”

……

10.3 Create a tftp directory on the Linux host

# mkdir /home/joe/tftpboot

# chmod 777 /home/joe/tftpboot

 

10.4 Restart the tftp service

# sudo /etc/init.d/tftpd-hpa restart

 

10.5 Set kernel startup parameters in u-boot

copy uImage and cexpress-v2p-ca9.dtb to tftpboot

Start Qemu to verify

 

$ sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel u-boot-2021.01/u-boot –nographic -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 -sd rootfs.ext3

 

Now, the rootfs directory is a simple root file system, which can be made into a mirror file, and the mirror file can be burned to the development board, or the Linux kernel can be started by u-boot in Qemu and mounted on the mirror file. It can also be set to boot via NFS network file system.

 

11. Mount NFS file system

11.1 Install and configure NFS service

11.1.1 Install

$ sudo apt install nfs-kernel-server

 

11.1.2  Configutation

$ sudo mkdir /home/joe/qemu/rootfs

$ sudo chown nobody:nogroup /home/joe/qemu/rootfs

$ sudo chmod 777 /home/joe/qemu/rootfs

$ sudo nano /etc/exports

Add:  /home/joe/qemu/rootfs *(rw,sync,no_root_squash)

 

Restart nfs server:

$ sudo /etc/init.d/nfs-kernel-server  restart

Or: $systemctl restart nfs-kernel-server

 

Check whether the NFS shared directory is created

$ sudo showmount –e

When using the NFS network file system, the Linux host needs to close the system firewall, otherwise, abnormalities will occur when the system is running.

 

Conclusion

Hopefully, with the help of this blog, you know more about QEMU. All the techniques demonstrated above were used in various submissions to our program. There’s not a single, fixed way to emulate with QEMU. Explore different techniques and see what works for you. Familiarize yourself with the knowledge and you will be surprised at how it can help you in unexpected ways.

Introduction of Lichee Pi

Introduction of Lichee Pi

The LicheePi is a delicate, single-board computer, running on the low-cost Allwinner V3S platform which is popularity in recent years. It can be used for beginners to learn Linux or for product development. it offers a wealth of peripherals (LCD, ETH, UART, SPI, I2C, PWM, SDIO…) and powerful performance.

 

       

        Lichee Zero                                  Lichee Nano

 

 

 

       

                                 Lichee Pi Zero                                                                          Lichee Pi Nano 

 

 

Features

LICHEE PI ZERO

LICHEE PI NANO

SoC Allwinner V3S Allwinner F1C100S
CPU ARM Cortex-A7 ARM9
Operating Freq. 1.2GHz 408MHz
RAM 64MB DDR2 32MB DDR2
Storage SPI Flash/Micro-SD SPI Flash/Micro-SD

Display

 

* Universal 40P RGB LCD FPC:

* Supported resolutions: 272×480, 480×800,1024×600

* Onboard RTP chip, supports a touch screen

* Universal 40P RGB LCD FPC:

* Supported resolutions: 272×480, 480×800,1024×600

* Onboard RTP chip, supports a touch screen

Interface

 

* SDIO x2
* SPI x1
* I2C x2
* UARTx3
* 100M Ether x1(include EPHY)
* OTG USB x1
* MIPI CSI x1
* PWM x2
* LRADC x1
* Speakerx2 + Mic x1
* SDIO x1
* SPI x2
* TWIX x3
* UART x3
* OTG USB x1
* TV out* PWM x2
* LRADC x1
* Speakerx2 + Mic x1

Electrical Information

 

Micro USB 5V, 2.54mm pins 3.3V~5V power supply; 1.27mm stamp hole power supply.

1GHz linux IDLE run 90~100mA; cpu-burn run ~180mA

Storage Temperature -40~125

Operating Temperature -20~70

Micro USB 5V, 2.54mm pins 3.3V~5V power supply; 1.27mm stamp hole power supply.

408MHz linux IDLE run 90~54mA; with screen operating current ~250mA

Storage Temperature -40~125

Operating Temperature -20~70

 

The temperature when running the Linux stress test is only slightly higher than the body temperature.

 

Lichee Pi support many OS such as: Linux, RT-Tread, Xboot or no OS.

Like most MCU, the Lichee Pi can connect to several low-speed interfaces, such as GPIO, UART, PWM, ADC, I2C, SPI, and more. Moreover, it can run other high-speed peripherals such as RGB LCD, EPHY, MIPI CSI, OTG USB, and more. The Lichee Pi has an integrated codec that allows direct connection to a headphone or microphone.

 

Display Connector:

The universal 40P LCD comes with a led back light and four-wire lines, electrical resistance touch, which is very suitable for display and interaction. A13 also supports four-wire resistance touch function, can carry out two-point touch detection.

 

This interface is compatible with the interface of ORIENT DISPLAY products.

 

RGB to VGA:

 

RGB to HDMI:

 

RGB to GPIO:

 

RGB to DVP CSI:

 

Lichee Pi Link:

http://dl.sipeed.com/
Wiki:maixpy.sipeed.com
Blog:blog.sipeed.com
Telegram group: https://t.me/sipeed

Introduction to Orient Display Embedded Project

Introduction to Orient Display Embedded Project

Orient Display is one of the world’s leading display LCD display manufacturers which was founded in 1996 by executives more than 25 years of R&D and production experience. Besides display, Orient Display also focused on embedded technologies which are including ARM architecture and has accumulated rich experience in embedded products.

Now Orient Display Technical Services include hardware, software and consulting.

 

Our Hardware team make prototypes in the shortest time according to your design ideas and requirements. We specialize in the design of cost-effective or a complex high-performance board to meet your requirement for high reliability in a short development cycle.

– Schematic Design

– PCB Layout

– Industry Product Customization

 

Our Software team specializes in Linux-based ARM® designsPowerPC and x86 processor, to name a few. As a complete solution provider for Linux, Android and WinCE in embedded systems, we can solve the end-to-end system-related problems of your products.

– System migration, optimization and tailoring

– Drive development

– Kernel Tailoring

– Porting LINUX KERNEL to ARM, PPC or x86 Board

– APP development (application, Linux QT, Linux C/++)

 

Our FAE team also provide you with a full range of technologies for your products or semi-finished products.

– We provide consultation on software & hardware resources of our products;

– We solve problems encountered during the use of software & hardware manuals of our products;

– OEM and ODM after-sales technical support;

– Data maintenance and update;

– Orient Display products are backed by our Lowest Price Guarantee.

 

Development Sequence

 

1. System Requirements Analysis

* Design tasks, goals, specifications

–  This provided by our customers

* Functional and non-functional requirement

–  Include system performance, cost, power consumption, volume, weight and other factors

 

2. Architecture Design

A good architecture is the key to the success of the design. In this step, it is often necessary to do following things:

  • Select the main chip:

— ARM Cortex A, R or M,  or PowerPc or ColdFire

  • Determine the RTOS:

— Linux, uClinux, Vxworks, freeRTOS, WinCE

  • Select Display:

TFT Panel, Sunlight Readable TFT, LCD Glass Panels, Graphic LCD,  OLED Display, Touch Panels, Embedded LCD display or Custom made display by Orient Display

  • Programming language:

— c/c++, python, Java

  • Development tools:

u-boot, busybox, QT, Ubuntu, stm32CubeIde, visual studio, android studio, keil uVision, RT-Tread studio

 

3. Hardware and Software Co-design

In order to shorten the product development cycle:

Hardware:  We usually begin project from evaluation board such as orient display AIY-A002M, AIY-A003M and AIY-A005M. later will Customized board to fit project, discard parts which don’t need.

Software Development Sequence:

  • We usually choose u-boot as Bootloader, it 1)init cpu to known state 2)init memory 3)init interrupt 4)init clock 5)load kernel to running address
  • Configure Kernel:

1) configure kernel system: *memory management, *file systems, *device driver, *network stack, *I/O Systems

2) write I/O device driver *char device driver, *block device driver, *net device driver

  • Select Applications:

*Select a user library *Build user application *Configure Initialization process *Build root FS

 

4. System Integration

Integrate the system’s software, hardware and execution devices together, debug, find and improve the errors in the unit design process.

 

5. System Test

Test the designed system to see if it meets the functional requirements given in the specification. The biggest feature of the embedded system development model is the comprehensive development of software and hardware.

 

In Conclusion

Orient Display has an amazing team of talented experts with the experience and capabilities to create an embedded display module from concept through to production.

If you have any questions, please contact our engineers at: tech@orientdisplay.com.

How to select ARM Processors

How to select ARM Processors

Introduction

The widest range of microprocessor cores for almost all application markets. Explore ARM. Performance, power & cost requirements for almost all application markets, processors are crucial. The system performance depends heavily on its hardware; this article will guide you through a study of the ARM Processor and be of great assistance in your decision-making.

 

A Brief Introduction to ARM

Figure 1. ARM Processors Roadmap

 

Before 2003, there are classic ARM Processors which are including ARM7(ARMv4 Architecture), ARM9(ARMv5 Architecture), ARM11(ARMv6 Architecture).  ARM7 has no MMU (memory management unit), cannot run multi-user multi-process system such as Linux and WinCE. Only can run system such as ucOS and ucLinux which do not need MMU.  ARM9 and ARM11 are embedded CPUs with MMU, which can run Linux.

After 2003, When it came to the ARMv7 architecture, it was named after Cortex and divided into three series: Cortex-A, Cortex-R, and Cortex-M.

  • Cortex-A — application processor cores for a performance-intensive systems
  • Cortex-R – high-performance cores for real-time applications
  • Cortex-M – microcontroller cores for a wide range of embedded applications

Simply put, Cortex-A series are suitable for applications that have high computing requirements, run rich operating systems, and provide interactive media and graphics experience. Cortex-R are suitable for that require reliability, high availability, fault tolerance, maintainability and real-time response. Cortex-M series are aimed at cost and power-sensitive MCUs and end applications.

 

Cortex-A VS Cortex-R VS Cortex-M

Cortex-A

The Cortex-A category of processors is dedicated to Linux and Android devices. Any devices – starting from smartwatches and tablets and continuing with networking equipment – can be supported by Cortex-A processors.

  • Cortex-A processors (A5, A7, A8, A9, A12, A15 and A17) is based on the ARMv7-A architecture
  • The set of common features for A-processors includes a media processing engine (NEON), a tool for security purposes (Trustzone), and various supported instruction sets (ARM, Thumb, DSP etc.)
  • The main features of Cortex-A processors are top performance and brilliant power efficiency closely bundled to provide users with the best service possible

The main characteristics of Cortex-A processor:

Cortex-A5:  The Cortex A5 is the smallest and lowest power member of the Cortex A series, but it can still demonstrate multicore performance, it is compatible with A9 and A15 processors.

Cortex-A7:  The power consumption of A7 is nearly the same as A5, But the performance provided by the A7 is 20% higher than A5 as well as full architectural compatibility with Cortex-A15 and Cortex-A17. The Cortex-A7 is an ideal choice for cost -sensitive smartphone and tablet implementations.

Contrex-A15: The Cortex-A15 is the highest performance member of this series, providing twice the performance than A9.  A15 finds its application in high-end devices, low-power servers, and wireless infrastructure. This is the first processor support for data management and virtual environment solutions.

Contrex-A17: The Cortex-A17 demonstrates 60% higher performance than that of the A9. The main aim is satisfying the needs of premium-class devices.

Contrex-A50: Contrex-A50, latest series, are built on the ARMv8 architecture and bring with them support for Arch64-bit an energy-efficient system. An obvious reason for the move to 64-bit is the support of more than 4GB of physical memory, which is already achieved on Cortex-A15 and Cortex-A7.

 

Cortex-R

Cortex-R processors target high-performance real-time applications such as hard disk controllers, networking equipment media players, and other similar devices, Furthermore, it also great support for the automotive industry such as airbags, braking systems and engine management.

Cortex-R4:  Cortex-R4 is well suited for automotive applications. It can be clocked up to 600 MHz, has an 8-stage pipeline with dual-issue, pre-fetch and a low latency interrupt system making it ideal for safety critical systems.

Cortex-R5: Cortex-R5 extends features offered by R4 and adding increased efficiency, reliability and enhance error management. The dual-core implementation makes it possible to build very powerful, flexible systems with real-time responses.

Cortex-R7: The Cortex-R7 significantly extends the performance. They feature an 11-stage pipeline and enable both out-of-order execution and high-level branch prediction. Tools can be implemented for lock-step, symmetric, and asymmetric multiprocessing. The generic interrupt controller is another significant feature that should be mentioned.

 

Cortex-M

Cortex-M designed specifically to target MCU market. The Cortex-M series is built on the ARMv7-M architecture (used for Cortex-M3 and Cortex-M4), and the smaller Cortex-M0+ is built on the ARMv6-M architecture. It is safe to say that the Cortex-M has become for the 32-bit world what the 8051 is for the 8-bit – an industry-standard core supplied by many vendors. The Cortex-M series can be implemented as a soft core in an FPGA, for example, but it is much more common to find them implemented as MCU with integrated memories, clocks and peripherals. Some are optimized for energy efficiency, some for high performance and some are tailored to a specific market segment such as smart metering

For applications that are particularly cost sensitive or are migrating from 8-bit to 32-bit, the smallest member of the Cortex-M series might be the best choice.

Cortex-M0: The Cortex-M0+ uses the Thumb-2 instruction set and has a 2-stage pipeline. Significant features are the bus for single-cycle GPIO and the micro trace buffer.

Cortex-M3&M4:  The Cortex-M3 and Cortex-M4 are very similar cores. Each offers a 3-stage pipeline, multiple 32-bit busses, clock speeds up to 200 MHz and very efficient debug options. The significant difference is the Cortex-M4 core’s capability for DSP. The Cortex-M3 and Cortex-M4 share the same architecture and instruction set (Thumb-2). If your application requires floating point math, you will get this done considerably faster on a Cortex-M4 than you will on a Cortex-M3. That said, for an application that is not using the DSP or FPU capabilities of the Cortex-M4, you will see the same level of performance and power consumption on a Cortex-M3. In other words, if you need DSP functionality, go with a Cortex-M4. Otherwise, the Cortex-M3 will do the job.

 

Conclusion

Figure 2. Cortex overview

 

ARM processors offer a variety of capabilities for different purposes. With a little bit of thought and investigation, you will be able to find the right processor that suits your application needs. whether it’s for a high-end tablet or an ultra-low-cost wireless sensor node.

It is a challenge to make the right choice of Cortex core and turn the idea into reality. But a team of experienced professionals can take care of all the issues and implement concepts of any complexity.

Orient Display has focused on ARM processor-related technologies for many years, and has accumulated rich experience in the development and implementation of ARM architecture products. While continuously launching development platforms and core board that meet the general needs of the market, it also addresses the individual project needs of customers. Provide customized services.

Our hardware team can produce prototypes in the shortest time according to your design ideas and needs. Our software team can help you customize all the functions of the cutting driver layer.

Contact us and we will help to make your plans from initial idea to final product.

How to use Graphic LCD Displays with Raspberry Pi?

How to connect Graphic LCD to Raspberry PI?

The article shows how to hook up a 128×64 graphics LCD display to a Raspberry Pi.

LCD used is a 128×64 with LCD controller of ST7565. It can be powered directly from the Raspberry Pi 3.3V rail. It requires 5 GPIO pins for data.

The schematic is, CS (Chip Select), RST(Reset) and A0 (Register Select) can be connected to any 3 GPIO pins. In this example, 8,24 and 25 are default values. Different values can be specified as parameters when instantiating the ST7565 Python class. SCLK (Serial Clock) on the GLCD goes to GPIO 11 which is the Pi’s serial clock. SID (Serial Input Data) on the GLCD goes to GPIO 10 on the Pi which is MOSI. GPIO 10 and 11 must be used for SID and SCLK. Vdd is connected to a 3.3V pin on the PI and the grounds are also connected.

The LCD has a RGB backlight. The LED pins can go to GPIO’s 16,20 and 21. To control the color from the Pi, specifying RGB pins when instantiate the ST7565 class. The resistors must be placed in series to limit the current to prevent LED breakdown. The LED brightness can be changed by using different values of resistors. It will be best to adjust the current to be around 20mA, of course, different values will result in a different mix of colors. It is very difficult to mix a pure white color. Please calculate the resistor value carefully, at 40mA, the LED brightness will decrease sharply with time, with the current of close to 60mA, the LED might be breakdown and be permanently damaged.

How to program a Graphic LCD?

The display is 128 pixels horizontal by 64 pixels vertical. The LCD can be broken into 8 horizontal pages. They are numbered from 3 to 0 and 7 to 4 up to down. Each page includes 128 columns and 8 rows of pixels. To address the pixels, specifying the page and column number, and send a byte to fill 8 vertical pixels at once.

The display has SPI (Serial Peripheral Interface) to connect to Pi. SPI requires 3 lines MOSI, MISO and Clock. The Pi is the master and the GLCD is the slave. In this example, Only writing to GLCD and not ready, so the connection to MOSI and Clock lines are needed. MOSI is the output from the Pi to the GLCD and the Clock synchronizes the timing.

  1. Enable SPI on Raspberry Pi first
  2. From the raspi-config menu, select Advanced Options, then SPI. Then select Yes for “ Would like the SPI interface to be enabled”. Hit OK, Reboot. Select Yes for “ the SPI kernel module to be loaded by default”. Reboot the Pi after enabling SPI. Then test SPI using IsmodIt should return SPI_bcm2708 or spi_bcm2835 depending on the Pi version. The python SPI library requires python2.7 dev which can be installed with apt-get install:
  3. The Python SPI library is called py-spidev. It can be installed using git:GLCD Python library for the Pi can be downloaded from the GitHub site.
  4. The main ST7565 library (st7565.py) handles drawing, text & bitmaps, and a font module (xglcd_font.py) to load X-GLCD fonts. Here are the basic drawing commands which to create points, lines, rectangles, circles, ellipses, and regular polygons:For more details, please refer to the reference below or contact our engineers.

Getting started with projects based on STM32G071RB Board using STM32CubeIDE

Getting started with projects based on STM32G071RB Board using STM32CubeIDE

Check out our Control Board!

Getting started with a 32-bit ARM-based microcontroller is always a little daunting. There are too many of available microcontrollers, platforms, development boards, tools, and software. This note describes step by step how to begin a LED project.

Getting started: about Development Board STM32G071RB

Features:

  • Core: Arm® 32-bit Cortex®-M0+ CPU, frequency up to 64 MHz
  • Up to 128 Kbytes of Flash memory, 36 Kbytes of SRAM
  • 7-channel DMA controller with flexible mapping
  • 12-bit, 0.4 µs ADC (up to 16 ext. channels)
  • Two 12-bit DACs, low-power sample-and-hold
  • Two I2C, Four USARTs , one low-power UART , two SPIs

 

Getting started: Install STM32CubeIDE

You can download STM32CubeIDE from their st.com.  It’ s free. Install STM32CubeIDE following STM32CubeIDE installation guide.

 

Your first project: LED blink

Before we can start writing code we need to create a project. This is similar to most other IDEs – projects are used to bundle together all of your settings, code, and definitions into a single collection all managed from the same application.

 

 

STEP 1: Start a new project, From the top left icon ( Or under the menu File > New > STM32 Project) to get started.

 

Step 2: Project name: G0_LED, then click Finish Button.

From schematic diagram that the LED4 is controlled by STM32G071 and the port is PA5.

Step 3: From System Core > SYS, select Serial Wire, setup PA5 as GPIO_OUTPUT.

Setup use label for PA5 as LED_GREEN as below:

 

Step 4: Then Generate code.

 

CubeIDE, which this functionality is developed upon, generates C files to work with under a Src directory, and puts a HAL (Hardware Abstraction Layer) into an Includes directory. It appears CubeIDE works the exact same way. Expand the folders on the right under the project view and see what it has generated to work for you.

 

 

Step 5: Let’ s add a smidge of C code of our own now! After the Infinite Loop area, we’re going to add code to toggle the LED under section 3 as below:

 

 

Compiling the project and downloading it to the board

STM32CubeIDE actually makes it pretty easy to compile our work and get it onto the STM32 chip.  The first step is to produce the compiled .elf ( a binary version of our code).  To generate the .elf, we need to do a build. This is as easy as pressing the build button on the toolbar.

Now, build information is presented in the console at the bottom of the screen.

Now what we want to do is send this compiled binary onto the STM32 microcontroller.

Let’s plug in the dev kit:

The Red power LED (to the left of the blue switch) is lit, as is the larger communication LED (by the USB cable). Inside STM32CubeIDE, select the run button.

This will open the Run dialog ( as it’s the first time we’ve run it). The settings we choose now will be saved as a run configuration which we can re-use or edit later.

Simply press Apply and then OK and the download will proceed. The Console will now fill with some interesting text:

The LED is on and off every 500ms. you’ve got everything set up.