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.

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.

STM32 vs Arduino

STM32 vs Arduino

Check out our Control Board!

 

Arduino

Arduino is more creative, it weakens the operation of specific hardware, its functions and syntax are very simple, and it is very “dumb”.

Most of Arduino’s main control is AVR microcontroller. The advantage of Arduino is that it has high code encapsulation and fewer sentences, which reduces the difficulty of software development.

Arduino is relatively easy to get started, as long as you understand a little hardware and C++, you can develop.

Most of the functions of Arduino have well-built libraries, so it is very simple to use, but the controllability of slightly more complicated functions is poor. 

 

STM32

STM32 pays more attention to engineering practice. In fact, there are many simple instruments in the factory, such as temperature controllers, ordinary motor controllers, low-end PLCs, and some civilian toys, game controllers, wired keyboards and mice, and other peripherals and so on are very practical.

STM32 is mainly used as products for professional developers, which requires certain professional knowledge, but at the same time, it is relatively complicated to write code to realize functions. For example, the serial port outputs a simple string. For Arduino, it may start from a new project and it can be realized with 10 lines of code. However, if you use STM32 development tools such as Keil, it may require hundreds of lines of code or more.

In terms of open source: things made with STM32 can be open source if you want to open source, and you can not publish anything if you don’t want open source.

 

Conclusion

 

Here are some suggestions for choosing:

If you are an ordinary student below the university level who does not have a deep understanding of programming languages, it is recommended to get started with Arduino. If the C skills are weak and come up with STM32, you will soon have the idea of giving up.

If you only study for employment, decisively STM32 microcontroller.

If you are learning just for fun and you are not a major in electronics and have no confidence, Arduino is recommended.

If you have good programming skills, STM32 is recommended. After you get it done, you can take a look at the things made by the Arduino open-source community, and you can easily get it done with STM32.

Of course, if you have the ability, you can make contact with both. Generally, you can master the basic features of Arduino in less than a week. If you need it in the future, you can freely transplant the Arduino code to MCU platforms such as STM32.

In fact, the two are actually aimed at slightly different directions. Arduino is the choice of general electronics hobbyists and DIY, while STM32 is often used for the development and manufacturing of actual products.