1. Trang chủ
  2. » Giáo Dục - Đào Tạo

analysis of vedder electronic speed controller a software based approach

106 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Analysis of Vedder Electronic Speed Controller: A Software-based Approach
Tác giả Nguyễn Minh Hoàng, Phan Dương Thanh Sơn
Người hướng dẫn NGUYỄN TRUNG HIẾU, M. Sc.
Trường học Ho Chi Minh City University of Technology and Education
Chuyên ngành Automotive Engineering Technology
Thể loại Graduation Project
Năm xuất bản 2024
Thành phố Ho Chi Minh City
Định dạng
Số trang 106
Dung lượng 7,74 MB

Cấu trúc

  • Chapter 1: INTRODUCTION (19)
    • 1.1 Topic background (19)
    • 1.2 Related works (20)
      • 1.2.1 Research in Viet Nam (20)
      • 1.2.2 Research in foreign (20)
    • 1.3 The necessity of the topic (20)
    • 1.4 Objective (21)
    • 1.5 Research subject and research range (21)
      • 1.5.1 Research subject (21)
      • 1.5.2 Research range (21)
    • 1.6 Research method and content (22)
      • 1.6.1 Research method (22)
      • 1.6.2 Research content (22)
    • 1.7 Expected outcome (22)
  • Chapter 2: THEORETICAL BASIS (23)
    • 2.1 Electric motor (23)
      • 2.1.1 Motor construction (23)
      • 2.1.2 Working principle of the motor (23)
      • 2.1.3 Motor classification (23)
    • 2.2 Concept of BLDC (24)
      • 2.2.1 BLDC motor structure (26)
        • 2.2.1.1 Stator (26)
        • 2.2.1.2 Rotor (27)
      • 2.2.2 BLDC motor classification (28)
        • 2.2.2.1 In-runner motor (28)
        • 2.2.2.2 Out-runner motor (29)
      • 2.2.3 Sensor using in BLDC motor (29)
    • 2.3 Overview of VESC (30)
    • 2.4 Inverter (32)
    • 2.5 Motor control technique (33)
      • 2.5.1 BLDC motor principle (33)
      • 2.5.2 Mathematic of the BLDC motor (37)
      • 2.5.3 Six-step commutation (39)
      • 2.5.4 Field-oriented current control (41)
        • 2.5.4.1 Space vector (41)
        • 2.5.4.2 Clarke transform (42)
        • 2.5.4.3 Park transform (43)
      • 2.5.5 PID controller (43)
  • Chapter 3: MEASURING AND PROCEDURE BLDC MOTOR (45)
    • 3.1 Pole pair (45)
    • 3.2 Resistor of each phase and layout of stator (45)
      • 3.2.1 The delta network (48)
      • 3.2.2 Wye network (48)
    • 3.3 The induction Lq, Ld (49)
    • 3.4 Back emf (50)
    • 3.5 Motor flux linkage (51)
    • 3.6 Hall state (51)
  • Chapter 4: OVERVIEW OF VESC 75100 HARDWARE (53)
    • 4.1 Introduction to VESC75100 (53)
    • 4.2 VESC pin out (54)
    • 4.3 Microcontroller in VESC 75100 (55)
      • 4.3.1 Motor Control (57)
      • 4.3.2 Sensor Processing (58)
      • 4.3.3 Communication (58)
      • 4.3.4 Safety and Protection (59)
      • 4.3.5 Configuration and Monitoring (59)
      • 4.3.6 Firmware Updates (59)
    • 4.4 Gate driver of VESC 75100 (60)
    • 4.5 Power divider in VESC75100 (63)
  • Chapter 5: OVERVIEW OF VESC 75100 FIRMWARE (65)
    • 5.1 Flowchart FOC (65)
      • 5.1.1 Initializing parameter (65)
      • 5.1.2 Measure motor current (65)
      • 5.1.3 PI controller (65)
      • 5.1.4 The invert state (67)
    • 5.2 Firmware (68)
      • 5.2.1 Firmware Architecture (68)
      • 5.2.2 Module Configuration (69)
    • 5.3 Overview of ChibiOs (71)
      • 5.3.1 Real-time Operating system (RTOS) (71)
      • 5.3.2 Kernel (72)
      • 5.3.3 Tasks and Threads (72)
      • 5.3.4 Priorities (73)
    • 5.4 Developing VESC firmware (76)
      • 5.4.1 Introduction to Eclipse IDE (76)
      • 5.4.2 C/C++ Development with Eclipse (78)
      • 5.4.3 Programming and debugging the VESC Firmware (79)
    • 5.5 Test case: ADC toggle duty cycle (84)
      • 5.5.1 Flowchart of the main program (84)
      • 5.5.2 Flowchart of PID algorithm and ADC application (86)
  • Chapter 6: TESTING MODEL ESTABLISHMENT (89)
    • 6.1 Firmware properties (89)
    • 6.2 Power supply (90)
    • 6.3 BLDC Motor (92)
    • 6.4 Aluminum frame (94)
    • 6.5 Model control BLDC motor (95)
    • 6.6 Interfacing with VESC tool (97)
    • 6.7 Measurement by Oscilloscope (102)
  • Chapter 7: CONCLUSION AND RECOMMENDATIONS (104)

Nội dung

The primary objective of the thesis is to enhance the performance characteristics of BLDC motors in order to meet the high demands with Field Oriented Control algorithm control method..

INTRODUCTION

Topic background

In the modern industrial era with the applying electric motor in our life especially in the manufacturing industry and mobility, researching and applying BLDC motor control technology not only brings technical benefits but also significant economic and social value Below are some reasons for choosing this topic

Applicability BLDC motors are widely used in various applications such as fans, industrial machinery, electric vehicles, and many other industrial sectors Researching BLDC motor control methods will bring clear benefits to many different industries

High efficiency and energy savings by using BLDC motors typically have higher efficiency compared to other types of motors contributing to optimizing energy consumption and reducing losses during operation

Furthermore, BLDC motors are widely used in modern automotive applications such as electric drivetrains (electric cars, hybrid cars), electric steering systems, cooling fans, and electronic devices in vehicles Mastering BLDC motor control techniques will provide deep knowledge of automotive electronics technology and practical applications in improving the efficiency and energy savings of automotive systems Some electric vehicle manufacturers using BLDC motors include Nissan (Nissan Leaf), E, Vinfast (VF e34), and Tesla (Tesla Model 3) Moreover, studying BLDC motor control also opens up many research and development opportunities in the self-driving car and electric vehicle fields This technology provides precise and flexible control capabilities, optimizing drivetrain systems and enhancing vehicle safety and performance

This topic is closely related to the Industry 4.0 trend, where smart automation systems and the use of IoT (Internet of Things) play a crucial role BLDC motor control will meet the modern needs of the industry Also, this can bring opportunities for in-depth research and apply advanced control algorithms such as PID, FOC (Field Oriented Control), and many other techniques for BLDC motor control

By using the electric commutator, the BLDC motor can be applied the advanced control Using the VESC 75100 with STM32F4 microcontroller provides flexible control and interaction with BLDC motors with can using the Field Oriented Control to control the magnetic vector to lower the torque ripple, the main factor effect to the motor efficiency This platform offers many features and useful libraries for developing motor control application to analyze and optimize the power in using BLDC motor.

Related works

In Viet Nam, the paper name “ Nghiên cứu mô phỏng điều khiển động cơ không chổi than BLDC bằng công cụ Matlab – Simulink” author A.prof Dao Minh Quan and Dr Dao Khanh Quang The paper simulated a power inverter, models a Hall sensor block, simulated a switching control block for the inverter, and finally simulated a digital PID controller The paper closely followd the set speed and zero speed error The simulation resulted show that the system responds quickly and accurately to speed commands However, the application of BLDC motor the had not been mentioned in this paper

“Field Oriented Control Implementation on BLDC Motor Controller with PI and SVPWM using STM32F103C8T6” , Rofiq Cahyo Prayogo, Aris Triwiyatno and Munawar Agus Riyadi (ECE 2023) This paper applied the FOC control method to control the BLDC motor to enhance the torque ripple at low speed, have advantages in torque and current required compared to the Universal control method However the FOC control using STM32F103 still has a voltage drop when the motor reaches the given speed, MCU can not provide the precise voltage to feed the BLDC motor demand while the motor stably rotates

“An Improved Microcontroller-Based Sensorless Brushless DC (BLDC) Motor Drive for Automotive Applications”, Jianwen Shao (2006) The author applied 6-step commutation with improved back-EMF detection to control sensorless BLDC, result in minimum PWM off time and enabling a 100% duty-cyle operation wheras produces high “torque ripple”; the back-EMF in motor is not perfectly sinusoidal, leading to less efficient power conversion, especially at low speeds; sensorless method is complicated.

The necessity of the topic

Topic “Analysis of vedder electronic speed controller: an software-based approach” can be a step for research about the advance in BLDC motor control, the drawback in control to optimize the efficiency for the motor This topic also will bring clear benefits to many different industries, especially in electric bike applications a step for the electric vehicle revolution.

Objective

Understanding the operating principles and structure of BLDC motors Researching the structure and operating principles of BLDC motors, including key elements such as the rotor, stator, and magnetic system Analyzing how BLDC motors operate compared to other types of motors, particularly their advantages and limitations in automotive applications

In-depth study of Field Oriented Control methods Learning about the 6-step and Field Oriented Control (FOC) control methods, including their operating principles and implementation Evaluating the pros and cons of each control method in specific applications, such as automotive drivetrains

Using VESC to evaluate performance and accuracy Mastering the use of VESC (Vedder's Electronic Speed Controller) to collect data and analyze the performance of BLDC motors

Analyzing how the software VESC work, the firmware built in the microcontroller and the real time operating system applied Applying knowledge from simulations and analyses to improve the design and operation of BLDC motors in real-world applications, such as automotive drivetrains

Conducting experiments and evaluating the performance of new control methods and designs on actual BLDC motors.

Research subject and research range

The research range of this topic is using VESC to use the FOC algorithm to control the BLDC motor, using the ADC to toggle the direction and the speed of the motor

Research method and content

Applying the analyzing technique and summarizing the theoretical basics to have the fundamental knowledge in research this topic

Research and guideline using Esclipse software then focus on source code FOC for motor control

Consult multiple sources of related literature, from theoretical foundations to hardware implementation Particularly seek thorough guidance from your supervisor MS.c Nguyen Trung Hieu as well as engage in knowledge exchange with other groups and senior peers

With the guidance of our supervisor, we carried out the project in the following phases

Phase 1: Researching relevant literature and Eclipse software, VESC tool, studying BLDC motors, electric motor control systems, and sensors Understanding motor control and FOC control Researching necessary components for controlling BLDC motors Programming VESC to collect and process control signals on the motor

Phase 2: Designing hardware, refining software to fit the simulation results of the project Designing models and load-bearing frame parts Assembling the model and conducting test runs

Phase 3: Conducting model experiments and writing documentation

Conducting motor experiments multiple times to verify efficiency, accuracy, and stability Creating a video of the experimental process Writing documentation using Word Creating a PowerPoint presentation for the report Completing the project.

Expected outcome

THEORETICAL BASIS

Electric motor

Electric motor is an electrical machine that convert the electrical energy to the mechanical energy for using in vary purposes Electric motor is the main component of any drive and motion in industry

Construction of the motor is the stator and the rotor The stator is the fixed part The rotor is the rotating part Almost electric motors, the rotor is located inside the stator

2.1.2 Working principle of the motor

According to Ampere's Law, a current-carrying conductor experiences a force in a magnetic field When a conductor is bent into a frame in a magnetic field, opposing forces create torque, causing rotation Electric motors utilize this principle with multiple turns of wire in the armature to produce torque Magnetic fields can be generated by magnets or electromagnets, where current flowing through a coil induces a magnetic field, as per Faraday's Law of Induction

Mechanical commutator motor Electric commutator motor

Electrically excited DC motor (wound stator)

Separately excited Series Shunt Compound

(Brushless motor + electric power converter + rotor position sensor) wound rotor induction motor (Reluctance motor with salient pole rotor and with the concentrated stator winding + electric power converter + rotor position sensor)

Three phase (polyphase) squirrel cage induction motor, wound rotor induction motor Two-phase

(condenser motor) Single phase with auxiliary winding with shaded- pole with asymmetrical stator

Wound rotor synchronous motor, PMSM Hybrid SyRM Hysteresis

Concept of BLDC

The Brushless DC motor (BLDC) has long been widely used in power transmission systems with small power such as optical disk drives, computer cooling fans, office equipment In those applications, the control circuit is designed to be very simple and highly reliable With the development of semiconductor switching technology and large power inverter design technology, the advantages of transmission systems using BLDC motors compared to traditional DC motors have become more evident, especially in mobile vehicles using independent DC power sources from batteries, rechargeable batteries, or solar energy The part that cannot be overlooked is in the traction systems of electric vehicles with power ranging from several 10 to 1000 kW

The term "brushless DC motor" is used because it operates on DC power, but in reality, BLDC motors belong to the category of synchronous AC motors using permanent magnets Instead of mechanical switching (as with DC motors), which involves brushes and commutators, BLDC motors use electronic switching This eliminates the drawbacks of brush-commutator mechanisms, such as sparking and wear Therefore, BLDC motors operate more reliably than traditional DC motors and require less maintenance With the field windings placed on the stator, heat dissipation from the windings to the outer casing is facilitated, as well as the use of other forced cooling methods if necessary Hence, BLDC motors have a higher power density than traditional DC motors

Figure 2.2 LION EV 48V 1250W BLDC MOTOR

BLDC motors have several advantages over traditional DC motors and asynchronous motors, including:

- Quick response due to low inertia

- High efficiency due to the use of permanent magnet rotors, resulting in no rotor current losses

- High lifespan due to the absence of mechanical switching

- No electromagnetic interference during the operation

Unlike DC motors, BLDC motors use electronic switching instead of brush and commutator structures to switch the current supplied to the armature coils This can be called a static switching mechanism To achieve this, the armature must also be static It can be said that, in terms of structure, there is a positional exchange between the rotor and the stator in BLDC motors compared to traditional DC motors

As introduced, BLDC motors have armature coils placed on the stator (referred to as stator coils), while permanent magnets are placed on the rotor in various structural configurations

Depending on the number of stator coils, we have different types of BLDC motors: single-phase, two-phase, and three-phase, corresponding to one, two, and three coils on the stator, respectively Among them, three-phase motors are more commonly used

In traditional DC motors, the timing of switching the current between the armature coils is naturally determined by the structure and proper arrangement between the pairs of poles on the stator and the brush-commutator mechanism BLDC motors do not have a brush-commutator mechanism, so they require elements and methods to determine the position of the rotor to provide appropriate control signals for the sequential supply of power to the phase coils

The stator of a BLDC motor consists of thin, stacked laminations of electrical steel tightly packed together, along with coils of wire placed in slots along the inner surface of the stator

However, unlike asynchronous motors, the winding wires of the stator in BLDC motors are distributed with uniform density along the inner surface of the stator

With the magnetic field distribution and the arrangement of stator windings like this, BLDC motors have the trapezoidal back electromotive force and generate greater torque The manufacturing technology is simpler and cheaper compared to permanent magnet synchronous motors (PMSM), but the starting torque is also higher than that of motors with sinusoidal back electromotive force

The rotor of a BLDC motor consists of a steel core and permanent magnets arranged on it in various ways Essentially, there are two methods for arranging permanent magnets on the rotor core:

In electric motor design, surface securing permanent magnets on the rotor core is a standard procedure, particularly for medium to low-speed applications Because there is no need to incorporate magnets into the core, this technology makes production simpler It does, however, provide durability issues since the exposed magnets are more vulnerable to mechanical stress and outside pressures Over time, mechanical fasteners or adhesives used for attachment may deteriorate and increase the danger of magnet separation Surface-mounted magnets are therefore appropriate for low-stress, moderate-speed activities

In BLDC motors, axial slots in the rotor core hold permanent magnet strips, creating a robust structure suitable for high-speed applications but challenging to manufacture These magnets generate a radial magnetic field between the stator and rotor However, BLDC motors face limitations such as high-cost permanent magnet materials, speed range, efficiency, torque ripple, noise, fault tolerance, and electromagnetic interference While ferrite is commonly used for BLDC rotor magnets due to its low cost, rare earth alloy magnets offer higher magnetic density, enabling smaller and lighter designs These alloys, including Alnico, ferrite, NdFeB, and SmCo, cater to various needs but are typically reserved for high-end applications due to their expense

Figure 2.4 The surface mounted magnet and interior magnet rotor

The Brushless DC motor can be classified into 2 main types are In runner motor and Out runner motor

The stator is on the outside and the rotor rotates inside This type has a high rotational speed and low torque In-runner motors are suitable when high speed is required They are more efficient than out-runner motors at higher speeds However, due to the presence of a gearbox, it makes the motor more prone to part failures Its main characteristics are:

- High rotational speed, low torque

- More efficient than out-runner motors due to higher rotational speed

- Requires a gearbox to increase torque

- Diverse applications in the aviation industry

- Better heat dissipation on the stator

Applications: In electric car engines, power steering systems, cooling fan systems, etc

The rotor rotates on the outside and the stator is inside Out-runner motors rotate more slowly but have higher torque They are easier to use because they do not require a gearbox and operate more quietly Its main characteristics are:

- Slow rotational speed, high torque

- Less efficient than in-runner motors

Applications: Electric motorcycle engines, ceiling fans, etc

Figure 2.5 In runner and outrunner BLDC Motor

2.2.3 Sensor using in BLDC motor

Most BLDC motors utilize sensors to determine the position of the rotor Typically, Hall sensors are widely used for this purpose, with the sensors hidden inside the stator, usually at the tail end of the motor shaft (auxiliary shaft)

Each time the poles of the auxiliary magnets (mounted at the end of the rotor) pass through the Hall sensor, these sensors send corresponding high or low signals

By synthesizing these hall signals, the Hall State is obtained, enabling the determination of the appropriate switching timing

The operation of these Hall sensors is based on the Hall effect, discovered in

1879 When an electric current flows through a conductor placed in a magnetic field, the magnetic field generates a force perpendicular to the moving charges in the conductor, pushing them to one side of the conductor The number of charges pushed to one side balances the influence of the magnetic field, resulting in the appearance of a voltage difference across the conductor This phenomenon is called the Hall effect, named after its discoverer

Hall sensors require a power supply The supply voltage can range from 4 to 24V, with a current requirement of 5 to 15mA When designing the controller, it's important to consider the corresponding specifications of each type of motor to determine the exact voltage and current requirements for the Hall sensors used The output signal of Hall sensors is typically open-collector type, so a pull-up resistor is needed on the controller side Without a pull-up resistor, the signal obtained will not be a square wave signal but rather noisy.

Overview of VESC

An electronic speed control (ESC) is an electronic circuit that controls and regulates the speed of an electric motor It acts like the brain of the system by telling the motor how fast to go based on data signals it receives from the controller

The role of the ESC is to act as the regulating middleman between the battery and the electric motor It controls the rotation of the motor by delivering timed electric signals that are translated into changes in speed It uses the direct current from the battery coupled with a switch system to achieve an alternating three-phase current that is sent to the motor

Microcontroller (MCU) housing the firmware that interprets the signal from the controller and feeds it in a control loop, keeping track of the motor’s position through a sensored or sensorless system in order to ensure smooth acceleration, and sending pulses to the gate driver to achieve the desired command

Gate driver is to act as the middleman between the controller and the gate of the MOSFETs Upon receiving a low-voltage signal from the microcontroller, the gate driver amplifies the signal and delivers a high-voltage signal to the MOSFETs The driver has lower resistance than the microcontroller so can deliver higher current, which also amplifies the speed of the signal

MOSFET is the Metal Oxide Semiconductor Field Effect Transistors are the switches that strategically deliver power to the motor The ESC has six of these transistors and each wire from the motor is connected to two of them The MOSFETs receive signals from the microcontroller then deliver power to the motor so that each of its coils is in one of three phases: high voltage, low voltage, or off/ grounded As the motor rotates, the signals from the MOSFETs switch the phases of the coils so the rotor keeps spinning The ESC uses direct current coupled with the switch system to achieve an alternate three-phase current The higher the input, the faster the switching frequency, leading to a higher RPM in the motor

Figure 2.6 Opening and closing of switches in an ESC circuit

VESC is Vedder Electronic Speed Control an open source, an advanced version of an ESC, and was developed by Benjamin Vedder in 2016 It supports:

VESC programming tool with GUI interface which is available in Linux, Windows and Android

Offers user customization such as control torque of the board by adjusting current output to the motor and current input from the battery, or control methods (FOC, six-step commutation), communication protocols (USB, UART, CAN, Bluetooth), and control features (ADC, PPM, NRF, PID)

Collects real-time data and draws diagram of current or FOC parameters characteristics for analysis and experiment purposes

Provides hardware protection which has built-in temperature control, preventing the controller from over-heating

Figure 2.8 GUI of supported VESC tool

Inverter

In an electric vehicle, the energy source used for the motor is direct current (lithium-ion battery), so there needs to be a device to convert the voltage from DC to three-phase alternating current to control the three-phase asynchronous motor

This device is a three-phase inverter, which functions to vary the frequency and voltage and convert DC voltage into AC voltage

The BLDC motor is controlled by square-wave voltage as shown below combined with rotor position feedback for precise determination The magnetic field created by the stator interacts with the rotor's magnetic field (created by permanent magnets) to generate torque and motor speed

Figure 2.9 Full brigde of the inverter

The voltage must be accurately applied to 2 out of 3 phases of the motor to ensure that the angle between the two magnetic fields generated by the stator and rotor is close to 90° (this angle being 90° is to create maximum torque) Therefore, a BLDC motor needs a precise controller

A standard 3-phase H-bridge circuit is used for BLDC motors, as illustrated in the figure below The circuit utilizes 6 power MOSFET that are controlled to switch on and off.

Motor control technique

The BLDC motor is controlled by switching the current between the phase windings in a specific sequence and at specific times

The torque is generated by the interaction between two magnetic fields: the field generated by the rotor magnet and the synthesized field created by the current in the phase winding The rotor tends to rotate to a position where the two field vectors align Maximum torque occurs when the two fields are perpendicular to each other

During operation, at any given time, only two phase windings are energized, while the third winding is not energized Switching the current flow from one winding to another generates a rotating magnetic field, causing the rotor to rotate

So, the sequence of switching the current between the phase windings must depend on the direction of rotation of the rotor

The timing of switching the current from one phase to another is determined so that the torque reaches a large value We have the torque determined by the expression:

𝑒 𝑎 , 𝑒 𝑏 , 𝑒 𝑐 : are the induced EMFs of phases A, B, C (V)

𝑖 𝑎 , 𝑖 𝑏 , 𝑖 𝑐 : are the current in phases A, B, C (A)

𝜔𝑟 : the angular velocity of the rotor (Rad/s)

To achieve the above requirement, we aim to energize the coil at a time such that the current is in phase with the induced electromotive force, and adjust the current to maintain a constant level within a 120° electrical interval If not in phase with the induced electromotive force, the current will also have a large value and cause additional losses on the stator

Figure 2.11 The alternative of the Back EMF

The process of determining the timing of current switching by directly monitoring the induced phase electromotive force is called sensorless control technique Due to the relationship between the induced phase electromotive force and the position of the rotor as described above, determining the timing of energizing the coils can also be achieved by determining the position of the rotor using position sensors

In BLDC motors, position sensors such as Hall effect sensors are commonly used The Hall effect was discovered by E.H Hall in 1879 and is described as follows: when a conductor is placed in a magnetic field, the magnetic field will exert a force on the moving charges in the conductor, pushing them to one side of the conductor This is easy to imagine when the conductor is in the form of a thin plate The accumulation of charges on one side of the conductor creates a voltage between the two faces of the conductor This voltage is proportional to the magnetic field intensity and the current intensity through the conductor

The BLDC motor has three Hall effect sensors placed on the stator When the poles of the magnets on the rotor move to the position of the Hall effect sensor, the output of the sensor is either high or low logic level, depending on whether the magnet pole is N or S Based on the combination of logic signals from the three sensors, the sequence and timing of current switching between the stator phase windings are determined

Usually, there are two ways to arrange the three Hall effect sensors on the stator: spaced 600 or 1200 apart in space Each arrangement will generate different combinations of logic signals as the rotor rotates

Figure 2.13 Hall state and the value of voltage

From observing the figure, we can see that the timing of current switching occurs when one of the three Hall sensor signals changes its logic level Also, from the figure, it can be seen that within one electrical cycle, there are six logic level transitions of the three Hall sensors Therefore, this switching sequence is called a six-step commutation sequence

Mounting Hall sensors on the stator is a complex process that requires high accuracy Inaccurate placement of Hall sensors on the stator will lead to errors in determining the rotor position To overcome this, some motors have additional magnets on the rotor to aid in rotor position detection These auxiliary magnets are mounted similarly to the main magnets but are smaller and are usually placed on the rotor shaft outside the stator windings for easy adjustment This structure is similar to the brush-commutator assembly in traditional DC motors

2.5.2 Mathematic of the BLDC motor

The dynamic equations in the fixed 3-phase reference frame:

The voltage equation of the stator and rotor

The equations from stator and rotor flux linkage

𝑣 𝑐 ] is the voltage of the stator (V) [𝑣 𝐴𝐵𝐶 ] = [

𝑣 𝐶 ] is the voltage of the rotor (V)

𝑖 𝑐 ] is the current of the stator (A)

𝑖 𝐶 ] is the current of the rotor (A)

Where 𝐿 𝑡 𝑠𝑟 is the transpose matrix of 𝐿 𝑠𝑟 The rotational drive equation is according to Newton's second law

The mutual inductance matrix between the stator and rotor

The advantages of the above model are:

- Accurate calculation of instantaneous values of all electromagnetic quantities in the machine

- Consideration of the complete relationship between electrical and mechanical energy

The disadvantages of the above model are:

- The need to accurately determine the inductance coil parameters

- The parameters of the system of equations vary over time

The traditional control method for BLDC motors involves switching on and off the power switches (IGBT or MOSFET) to supply current to the stator winding based on the feedback signals from Hall sensors The basic principle of the motor control power circuit is as follows:

Figure 2.14 Hall state of each sector of rotor

Position (θ) Section Hall signal Commutation AA’ BB’ CC’

The main characteristics of the 6 Steps Commutation method are:

Simple control steps: This method switches the current direction through each of the three stator windings in a fixed sequence, creating a rotating magnetic field to drive the rotor

Six-step control: Each control cycle consists of six steps, with each step corresponding to a configuration of current flow through the windings This creates six fixed magnetic field positions around the stator

Sensorless operation: In some designs, this method does not require rotor position sensors, reducing cost and system complexity

Performance and accuracy: The 6 Step method provides a simple control approach but may not achieve high performance and accuracy compared to other methods like FOC (Field-Oriented Control)

Applications: Suitable for applications requiring simplicity and lower control cost but not demanding high performance and absolute accuracy This mode of control is called the 1200 control mode, which is the basic control mode of BLDC motors

Figure 2.15 Specification of moment and the speed of motor

Figure 2.16 Vector current in stator of the motor

Where (a, b, c) represent the three axes in the 3-phase system, the current space vector is described in the sinusoidal 3-phase system It also needs to be transformed through the d-q reference frame, which is done in two steps

The spatial vector can be described in a reference frame other than just the two orthogonal axes called (α, β) Assuming that axis a and axis α are aligned with each other, we have the vector diagram as follows

Figure 2.17 Clarke transformation of FOC

We transform the vector current 𝐼 𝑠 of stator ([𝑖 𝑎𝑏𝑐 ]) into 𝐼 𝑠𝛼 and 𝐼 𝑠𝛽 in this the coordination of 𝛼 axis is the same direction and as 𝐼 𝑎 and the 𝛽 axis is 90°counter- clockwise to 𝛼 axis

This is the most important transformation in the FOC method If we consider the d-axis aligned with the rotor flux, then we have the following diagram

Where θ determines the position of the rotor flux The components of flux and torque of the current vector are determined by the following equations

PID control is a type of feedback control where the output changes correspondingly to the change in the measured value Although PID control is not a new technique, it is the most common method used to control industrial systems such as thermal systems, speed control, position control, and torque control of AC and DC motors One of the reasons PID controllers have become so popular is their simplicity and ease of implementation on small microprocessors with limited computational power The control can be applied as P, PI, or PID control

Figure 2.19 Block Diagram of a PID Controller Where:

Kp is the proportional gain

Ki is the integral gain

Kd is the derivative gain

The tuning of PI controllers in FOC control involves adjusting to achieve the desired response This can be done using methods such as:

Manual Tuning: Iteratively adjusting the gains based on the observed performance

Ziegler-Nichols Method: Using empirical rules based on the system's response to set initial gains

Automated Tuning Tools: Utilizing software tools that can automatically tune the gains based on system identification and performance criteria

MEASURING AND PROCEDURE BLDC MOTOR

Pole pair

Normally this parameter will be provided by the motor distributor If not, or to check again, you can follow these steps:

- Apply a 1-way voltage (DC) to 2 phases of the motor (3 phases), this voltage is about 5% rated voltage (Be careful to keep the current level not exceeding the rated current of the motor)

- Mark on the rotor shaft to ensure correct 360-degree rotation

- Rotate the rotor shaft by hand and feel (at this time the 2 phases have electricity so the Stator will become electromagnet attract 1 pole of the Rotor) In 1 rotation of the rotor, you count The number of times the Stator and Rotor attract each other (harder than when rotating normally), that will be the number of pairs motor terminals.

Resistor of each phase and layout of stator

There are two ways to layout the stator of the BLDC motor There are wye network and the delta network The picture below will depict the arrangement

Figure 3.1 Motor stator windings network There are some comparison in these wiring

Table 3.1 Comparison of wye network and Delta network

Criteria Wye (Star) Connection Delta Connection

Structure Three coils connected at a common center point

Three coils connected in series to form a closed loop

Voltage & Current Higher voltage and lower current

Lower voltage and higher current

Torque Generally lower compared to delta connection

Generally higher compared to star connection

Suitable for applications requiring stability and less vibration

Suitable for applications requiring high torque

Durability Generates less heat, suitable for long-term operation

Can generate more heat, requires good cooling

Startup Gentler startup May have a more powerful startup

Complexity Simpler in terms of connections

More complex in terms of connections

The method the detect the arrangement We have 3 phase wiring of A B and C

We measure each pair randomly We have the resistances of each phases:

Figure 3.2 Measure one phase to each other Then measure 2 phase with another phase :

Figure 3.3 Measure 2 phases to each other

If B=0.5A then BLDC motor windings are connected in a triangle (Delta Network)

Use VOM to measure 2-phase resistance (in 3 phases) and wait for stable results Get that result is the value 𝑅 𝑠

If B=0.75A, then BLDC motor windings are connected to a star network (Wye Network)

Use VOM to measure 2-phase resistance (in 3 phases) and wait for stable results Take the result and divide it by 2

The induction Lq, Ld

Another significant characteristic of brushless DC (BLDC) motors is the inductances along the quadrature (q) and direct (d) axes are denoted by the symbols

Lq and Ld, respectively The dynamic behavior and control of the motor are greatly influenced by these inductances

This is the inductance measured parallel to the permanent magnet field of the rotor along the direct axis When the stator flux linkage is in line with the rotor's magnetic field, it indicates the inductance of the motor L d has an impact on the flux linkage inside the motor

Lq (Inductance on the Quadrature Axis):

This is the inductance measured perpendicular to the permanent magnet field of the rotor along the quadrature axis

When the rotor's magnetic field is perpendicular to the stator flux linkage, it symbolizes the motor's inductance

L q has an impact on the torque that the motor produces

Figure 3.4 Using VESC to measure the Lq and Ld params

A BLDC motor's direct and quadrature axis inductances are, respectively, and

L d L q Because they make it possible to separate torque and flux management, they are essential for putting Field-Oriented management (FOC) into practice and enhancing the dynamic performance of the motor For the motor to be controlled effectively, these inductances must be measured or estimated accurately.

Back emf

The generated voltage and the motor's rotational speed are related by the back EMF constant It is proportionate to the motor's speed and indicates the voltage that the motor's spin produces in the windings of the motor Ke is necessary to translate desired torque or speed inputs into equivalent signals for voltage in the Field Oriented Control

Figure 3.5 Back emf of BLDC motor

Ke is often measured by simply rotating the base (or using a drill or other mechanically coupled facility) and measuring the electrical feeling connection between phases (Voltage B-EMF) with a wave generator

Where : 𝐾 𝑒 is the back EMF constant

𝑉 𝑒𝑚𝑓 is the no load back EMF voltage

𝜔 is the corresponding angular velocity.

Motor flux linkage

Motor flux linkage is a crucial concept in understanding the behavior of electric motors The product of the magnetic flux flowing through a coil and its number of turns is known as flux linkage which creates the electromotive force (EMF) and the motor's general operation

It is the whole magnetic flux (𝛷) that connects a coil with many turns

It may be expressed mathematically as follows: a result:

𝜓 𝐴𝐵𝐶 = 𝑁𝛷 (𝑊𝑏) (21) where 𝑁 is the number of coil turns and 𝛷 is the magnetic flux

The relationship between the current in the stator windings and the flux linkage from the rotor's magnetic field determines the torque that the motor produces The d- and q-axis components of the current are controlled in FOC (Field-Oriented Control) according to how they relate to the flux linkage playing a critical role in torque production and motor control

Hall state

We using an Arduino to capture the Hall sequence, Hall sensor is significant in BLDC control due to ability of measure the angular position of the rotor

Figure 3.6 The hall sequence when rotating 360 degree

After rotating 360 from the motor we get the sequence : 1 5 4 6 2 3

Figure 3.7 The signal collected from the motor

OVERVIEW OF VESC 75100 HARDWARE

Introduction to VESC75100

The Flipsky VESC 75100 offers a feature-rich and open-source ESC designed for various electric applications Here’s is a breakdown of its specification:

- Current:100A Continuous, burst 120A (for short durations)

- Support BLDC square wave mode control and FOC sine wave mode

- Firmware: latest (firmware update supported)

- Control Interface Ports: USB, CAN, UART

- Input Set Support: PPM,ADC,NRF,UART

- Form Factor: Aluminum case with dimensions L103mm * W58mm * H18.5mm (plus an additional 5.9mm for the USB port)

Flipsky is a Chinese company specializing in electric vehicle components Below are comprehensive figures for understanding and programming of the Flipsky VESC 75100

Figure 4.1 The FSESC 75100 with Aluminum case.

VESC pin out

Figure 4.2 Available pinouts on FSESC 75100

The wiring diagram provides a roadmap for connecting the FLIPSKY ESC to a motor, battery, and other electrical components in an electric vehicle.

Microcontroller in VESC 75100

The STM32F405RGT6 is a high-performance microcontroller from STMicroelectronics, part of the STM32F4 series It is based on the ARM Cortex-M4 core and is designed for a wide range of applications requiring high computational power, advanced peripherals, and low power consumption Here are the detailed specifications of the STM32F405RGT6:

Figure 4.3 Core specifications of STM32F405RGT6 Special Features

FPU: Hardware floating-point unit for fast floating-point calculations

DSP Instructions: Extensive set of DSP instructions for digital signal processing applications

Cryptographic Hardware Accelerators: Hardware support for AES, DES, and other cryptographic algorithms

Real-Time Clock (RTC): Built-in RTC with a 32-bit programmable counter for calendar and clock function

The STM32F405RGT6 microcontroller combines high performance, advanced peripherals, and low power consumption, making it a versatile choice for various demanding applications Its integration of the ARM Cortex-M4 core with DSP and FPU capabilities allows for efficient processing of complex algorithms, which is particularly useful in applications like the VESC, including motor control, sensor processing, communication, safety monitoring, configuration, and firmware updates Its ability to perform complex control algorithms, process sensor data, and manage communication makes it a crucial component in ensuring the VESC operates efficiently, safely, and effectively

PWM Generation: The STM32F405 MCU generates Pulse Width Modulation (PWM) signals that control the speed and torque of the BLDC (Brushless DC) or FOC (Field-Oriented Control) motor It adjusts the duty cycle of these signals to vary the motor’s power

Field-Oriented Control (FOC): The MCU performs complex FOC algorithms to optimize motor efficiency and performance, ensuring smooth and precise motor control by managing the current in the motor windings

Commutation Logic: It manages the commutation process, which involves switching the power to the motor phases in the correct sequence to maintain rotation

Hall Sensors: The MCU processes signals from Hall sensors, which provide information about the rotor position This data is essential for accurate commutation and speed control

Encoder Signals: For motors equipped with encoders, the MCU reads the encoder signals to determine the exact position and speed of the rotor, enhancing control accuracy

CAN Bus: STM32F405RGT6 handles CAN bus communication, allowing multiple VESC units to communicate with each other This is crucial for applications requiring synchronized control of multiple motors

Figure 4.5 Module CAN interface MCP2551

UART/USB/Bluetooth: It manages data communication with external devices like computers, mobile devices, or other controllers via UART, USB, or Bluetooth This enables configuration, monitoring, and real-time data exchange

Current and Voltage Monitoring: The MCU continuously monitors the current and voltage levels in the motor and battery circuits It ensures that the values remain within safe limits, protecting the system from overcurrent, overvoltage, and undervoltage conditions

Temperature Monitoring: The MCU monitors the temperature of the VESC and the motor, ensuring they operate within safe thermal limits It can reduce power output or shut down the system if temperatures exceed safe thresholds

Fault Detection: It detects various faults (e.g., short circuits, open circuits, sensor failures) and takes appropriate actions, such as shutting down the motor or signaling an alert

Parameter Configuration: Through interfaces like USB or Bluetooth, the MCU allows users to configure various parameters of the VESC, including motor settings, battery limits, and control modes

Real-Time Monitoring: It provides real-time monitoring of the motor’s performance parameters, such as speed, current, voltage, and temperature This data can be viewed on connected devices for diagnostics and tuning

Bootloader Functionality: The STM32F405RGT6 includes a bootloader that allows firmware updates Users can update the VESC’s firmware via USB, Bluetooth, or other communication interfaces, ensuring the system can benefit from the latest features and improvements

Figure 4.6 Schematic of MCUs in FSESC

Gate driver of VESC 75100

A gate driver IC is a crucial component in power electronics, particularly in applications like the VESC (Vedder Electronic Speed Controller), where it is used to control the switching of MOSFETs Function of a Gate Driver IC:

Here is the half bridge of the VESC using for its gate driver:

Figure 4.7 Phase A of Inverter for BLDC output

Gate driver EG3112 designed to drive high-side and low-side MOSFETs in a half-bridge configuration It is widely used in applications like motor drives, DC-DC converters, and other power electronics systems

The EG3112 provides two gate driver outputs, one for the high-side MOSFET and one for the low-side MOSFET This enables the control of both transistors in a half-bridge or full-bridge circuit High Current Drive capability can source and sink high peak currents, allowing fast switching of large MOSFETs

Floating High-Side Driver: The high-side driver is capable of operating with a floating channel up to 600V This allows it to drive the high-side MOSFET whose source voltage varies with the switching action

- VCC: Logic and low-side driver supply voltage

- VB: High-side floating supply voltage

- VS: High-side floating supply return

- HO: High-side gate drive output

- LO: Low-side gate drive output

- HIN: High-side logic input

- LIN: Low-side logic input

Bootstrap Capacitor: The EG3112 utilizes a bootstrap capacitor to generate the gate drive voltage for the high-side MOSFET This eliminates the need for a separate high-side power supply

Bootstrap Diode: A bootstrap diode is used to charge the bootstrap capacitor during the low-side MOSFET on-time, ensuring the high-side MOSFET receives adequate gate drive voltage

Figure 4.9 Phase C of Inverter for BLDC output

Figure 4.10 Phase B of Inverter for BLDC output

Power divider in VESC75100

To divide the power supply into 12V, 5V, and 3.3V, you can utilize a voltage divider circuit along with electronic components such as resistors and possibly zener diodes for voltage regulation Here's a way to achieve this using a voltage divider in VESC75100

Figure 4.11 Voltage Regulator of 12V, 5V and 3.3V built-in hardware

Use a voltage regulator IC capable of providing a stable 12V output this circuit have a choice is the SCT2A23 voltage regulator IC

Connect the input pin of the SCT2A23 to your unregulated power supply Connect a suitable capacitor (2.2uF and 100nF) across the input and ground pins of the SCT2A23 for stability The output pin SW (pin 8) will provide a regulated 12V output Zener diodes operate in the reverse breakdown region when biased in reverse 5V and 3.3V Output:

For the 5V output, you can use another voltage regulator IC the RY8120 In there it go through a voltage divider and the diode zenner

This setup ensures that you have stable and regulated voltage outputs of 12V, 5V, and 3.3V from your unregulated power supply It's important to choose appropriate capacitors and ensure proper heat dissipation for the voltage regulator ICs to maintain stability and reliability.

OVERVIEW OF VESC 75100 FIRMWARE

Flowchart FOC

FOC method using of Clake and Park transform Beta and Alpha can be calculated by using the Clarke transform Park transform collect these 2 variables and rotor position to compute the d and q vectors To have the rotor angle we need to read position by encoder/resolver to have the accurate position for commutation

Figure 5.1 FOC with PI controller using Hall sensor

Set the value for the control parameter for PI controller proportional and integral gains (Pi and Pd) and motor parameter (Resistance, inductance, back emf constant and initial conditions)

Measure of each current of phases in BLDC motor Due to the Kirchhoff Law we have the formular

Form the Ia Ib Ic we have measured then transformed to the Clarke transform:

𝐼 𝑠𝛽 = 𝐼 𝑏 sin(120°) + 𝐼 𝑐 sin(240°) (𝐴) (24) Then form Clarke transform convert to d and q axis by the Park ‘s formula

Theta and angular velocity of the rotor is measured by the Hall sensor

Then by the create the 𝐼 𝑑 ∗ reference flux current and 𝐼 𝑞 ∗ reference torque current

In PI control of the 𝐾 𝑝 and 𝐾 𝑖 : parameter

In the FOC control In the context of the Field-Oriented Control (FOC) algorithm for a three-phase motor particularly BLDC motor, In PI controller, the parameter 𝐾p𝑑 Kid are the proportional and integral gains, respectively, for the d-axis current controller

𝐾 𝑝 : This is the proportional gain for the q-axis current controller It determines how strongly the controller responds to the difference (error) between the reference q-axis current 𝐼 𝑞 ∗ and the actual q-axis 𝐼 𝑞 A higher 𝐾 𝑝 increases the responsiveness of the controller but may cause overshooting and instability if set too high

𝐾 𝑖 : This is the integral gain for the d-axis current controller It helps eliminate steady-state error by integrating the error over time A higher 𝐾 𝑝𝑖 increases the ability to eliminate the steady-state error but may cause slower response and potential oscillations if set too high

The PI Controller Equation for d-axis Current

The control output voltage 𝑉 𝑑 for the d-axis current controller can be calculated using the following PI control law

𝐼 𝑑 ∗ is the reference d-axis current

𝐼 𝑑 is the actual d-axis current

𝐾 𝑝𝑑 is the proportional gain for the d-axis

𝐾 𝑖𝑑 is the integral gain for the d-axis

The control output voltage 𝑉 𝑞 for the d-axis current controller can be calculated using the following PI control law

𝐼 𝑞 ∗ is the reference q-axis current

𝐼 𝑞 is the actual q-axis current

𝐾 𝑝𝑞 is the proportional gain for the q-axis

𝐾 𝑖𝑞 is the integral gain for the q-axis

The proportional gain 𝐾 𝑝 and the integral gain 𝐾 𝑖 are critical parameters in the q-axis PI current controller within the FOC algorithm

The equations for the Inverse Park Transformation

𝑉 β = 𝑉 𝑑 sin(θ) + 𝑉 𝑞 cos(θ) (𝑉) (30) The equations for the Inverse Park Transformation

From the 𝑉 𝑎 𝑉 𝑏 𝑉 𝑐 needed, we normalize voltage of the DC voltage

𝑉 𝑎 𝑛𝑜𝑟𝑚 is the normalized voltage phase A

After got the normalized we got the Duty cycle for each phase by the formular

𝐷 𝑎 𝑖s the duty cycle of the voltage A

𝐷 𝑏 is the duty cycle of the voltage B

𝐷 𝑐 is the duty cycle of the voltage C

Firmware

Figure 5.2 Firmware architecture of VESC

The firmware for the BLDC motor control program is a layered system that can be divided into three main layers:

Application Layer: This layer is responsible for the high-level control of the BLDC motor It receives commands from the user and translates them into control signals for the motor driver

OS Layer: This layer provides the real-time operating system (RTOS) using ChibiOS 3.0.5 that manages the scheduling of tasks and resources for the BLDC motor control program

Hardware Abstraction Layer (HALs): This layer provides a a set of functions to interact with the corresponding hardware component without needing to directly access the low-level registers It supports the following drivers:

CAN: Enables communication with other devices on the CAN network, receiving control commands or sending motor status updates

SPI: Facilitates communication with peripherals like encoders and hall sensor

ADC: Read analog data from Hall sensors, current sensors and potentiometer, providing feedback for closed-loop control algorithms

EXTI: Handles external interrupts event-triggered

FLASH/SRAM1/SRAM2: Provides access to different memory regions for storing program code, data, and variables

UART: Enables serial communication for debugging or interfacing with other devices

TIMER: Computes precise unit of time (ticks) for RTOS and generates pulse- width modulation (PWM) output for motor control

I2C: Enables communication with additional sensors

DMA: Offloads data transfer between memory and peripherals, improving system performance

GPIO: Controls digital input/output pins

The firmware also includes JTAG/SWD and STLINK/V2, allows for communication between the microcontroller and external devices for debugging and flashing purposes

Module configuration of the sample program controlling BLDC motor using FOC algorithm and interfacing with UART protocol and ADC driver

Figure 5.3 Flowchart of the firmware Application Layer:

The “ main.c”: is the main program of the application which implements earlier initialization and interfaces user command

User interface: enables user interaction through communication interface It allows users to send commands like start/stop, desired speed, or operational mode selection

Communication threads: Handles internally and externally communication As for internal, it updates motor status and exchange data for lower-layer In terms of external, it handles communication between the device and VESC tool software via USB protocol for user commands like auto motor param detection or reading motor status

Control modules: this section handles FOC calculations, motor control PWM generation and processing user-commands from upper layer

Control threads: Are mainly responsible for executing control algorithms such as “Clarke and Park Transform’, current regulation of Lq and Ld, inverse park transform and closed-loop feedback control

Application threads: These are additional features selection for specific module configurations, in this sample is UART interface and ADC implementation

Device Layer (MCU Register Access, Inverter Driver, Sensor Driver):

MCU module: This refers to direct interaction with microcontroller via its peripherals and drivers

Sensor module: This encapsulates communication with hardware sensors such as encoders, hall to provide feedback on motor speed or rotor’s position and measures current flowing through each motor phase

Inverter module: This module sends the power directly into BLDC motor by driving inverter circuits

H/W Layer (Hardware Abstraction Layer): is a layer of software that provides a simplified view of the underlying hardware It is used to hide the complexities of the hardware and to provide a higher-level interface for the operating system to interact with.

Overview of ChibiOs

5.3.1 Real-time Operating system (RTOS)

A real-time operating system (RTOS) is an OS that guarantees real-time applications a certain capability within a specified deadline RTOS is classified into:

Soft Real Time A Soft Real Time (SRT) system is a system where not meeting a deadline can have undesirable outcome but not catastrophic effects, lead to a performance degradation

Ex: Audio/ video rendering/ streaming

Hard Real Time An Hard Real Time (HRT) system is a system where not meeting a deadline can have catastrophic effects

Ex: Vehicle engine injection; spark control system; antilock braking system (ABS)

Kernel is central component of an operating system that manages operations of computer and hardware It basically manages operations of memory and CPU time

It acts as a bridge between applications and data processing performed at hardware level using inter-process communication and system calls Kernel Functionality:

- Scheduler: Determines which task will run and when it will run

- Dispatcher: Performs the necessary operations to start a task

- Inter-task or inter-process: a mechanism for exchanging data and information between tasks

Tasks are the fundamental entities in an RTOS environment A task can be seen as a virtual CPU inside the system with its own registers bank and stack area Tasks

Figure 5.4 Time distributed in RTOS are scheduled by the RTOS based on their priority ChibiOS, use the term threads for their tasks

The Thread in ChibiOs supports the following features:

- Create Threads can be started at runtime not just declared or configured statically Note, this does not imply dynamic allocation, a thread can be statically allocated and started/terminated at runtime

- Exit Threads are able to terminate by returning an exit value, much like the value returned by a C function

- Join Threads are able to spawn other threads and then wait for the result of their execution

Figure 5.5 Tasks State in ChibiOS

- INIT The task has not yet been created

- READY The task is eligible for execution but not running

- RUNNING The task is currently running

- WAITING The task is waiting for events to resume execution

- Periodic task: is a task triggered periodically with a fixed time interval The task is mostly waiting and becomes ready for execution when its internal timer triggers it

- Non-Periodic task: tasks are triggered by an external event, for example, an ISR, or another thread

- Continuous Task: tasks that never release the CPU resource and are placed at the lowest priority level in the system, for instance, "idle task"

Scheduler always ensures the highest priority thread that can run is the thread selected to enter the Running state Threads of equal priority are transitioned into and out of the Running state in turn

- Fast Interrupts: processed by hardware interrupts

- OS Interrupts: created by OS services

- Threads: created by OS services

- Idle Thread: automatically created by calling chSysInit()

Figure 5.6 The priority of the threads

The ready list is probably the most important data structure in ChibiOS/RT It is a closed bidirectional priority-ordered list of threads representing the threads eligible for execution The list is organized as follow:

Figure 5.7 Example of Task sheduling

Figure 5.8 Description of the task

Idle Task: This task operates with the lowest priority and gets preempted whenever a higher-priority task becomes ready, such as at times t3, t5, and t9

Task 3: This is a non-periodic task with a relatively low priority, but it is still above the Idle priority It mainly stays in the Waiting state, waiting for specific events When these events occur, the task moves to the Ready state Events that trigger the task happen at t3, t5, and sometime between t9 and t12 Task 3 can use various inter-task communication mechanisms like task notifications, queues, semaphores, or event groups to handle these events The events at t3 and t5 are processed immediately since Task 3 is the highest priority task ready to run at those times The event between t9 and t12 is only processed at t12 because until then, higher-priority tasks Task 1 and Task 2 are still running At t12, both Task 1 and Task

2 are in the Waiting state, making Task 3 the highest-priority task in the Ready state

Task 2: This is a periodic task with a priority higher than Task 3 but lower than Task 1 It is scheduled to run at t1, t6, and t9 At t6, although Task 3 is running, Task

2 preempts it due to its higher priority and starts executing immediately Task 2 finishes its processing and re-enters the Waiting state at t7, allowing Task 3 to resume and complete its task Task 3 then blocks at t8

Task 1: This is another non-periodic task, but it has the highest priority of all tasks, meaning it can preempt any other task The only event for Task 1 occurs at t10, where it preempts Task 2 Task 2 can only finish its processing after Task 1 goes back to the Waiting state at t11.

Developing VESC firmware

For this project, our team will use Eclipse IDE that supports Embedded application for programming and debugging purposes because of its features and functionality assisting such jobs In addition, it also contains built-in Chibi Studio system for interfacing with RTOS which uses ChibiOs system

Eclipse is an integrated development environment (IDE) for Java and other programming languages like C, C++, PHP, and Ruby etc Development environment provided by Eclipse includes the Eclipse Java development tools (JDT) for Java, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others

The Eclipse platform itself is structured as subsystems which are implemented in one or more plug-ins The subsystems are built on top of a small runtime engine The figure below depicts a simplified view

The term Workbench refers to the desktop development environment The

Workbench aims to achieve seamless tool integration and controlled openness by providing a common paradigm for the creation, management, and navigation of workspace resources.Each Workbench window contains one or more perspectives Perspectives contain views and editors and control what appears in certain menus and tool bars More than one Workbench window can exist on the desktop at any given time

Resources is a collective term for the projects, folders, and files that exist in the Workbench The navigation views provide a hierarchical view of resources and allows you to open them for editing Other tools may display and handle these resources differently There are three basic types of resources that exist in the Workbench:

Files: Comparable to files as you see them in the file system.

Folders: Comparable to directories on a file system In the Workbench, folders are contained in projects or other folders Folders can contain files and other folders.Projects: Contain folders and files Projects are used for builds, version management, sharing, and resource organization Like folders, projects map to directories in the file system (When you create a project, you specify a location for it in the file system) A project is either open or closed When a project is closed, it cannot be changed in the Workbench The resources of a closed project will not appear in the Workbench, but the resources still reside on the local file system Closed projects require less memory Since they are not examined during builds, closing a project can improve build time.When a project is open, the structure of the project can be changed and you will see the contents

The C/C++ Development Toolkit (CDT) is a collection of Eclipse-based features that provides the capability to create, edit, navigate, build, and debug projects that use C and/or C++ as a programming language

The CDT does not include the necessary compilers and debuggers to convert C/C++ code into executable programs and to debug those programs, but it does provide the frameworks that allow such tools to be integrated in a consistent fashion This allows you to mix and match such tools depending on your project requirements

The CDT does not include the necessary compilers and debuggers to convert C/C++ code into executable programs and to debug those programs, but it does provide the frameworks that allow such tools to be integrated in a consistent fashion This allows you to mix and match such tools depending on your project requirements Each platform that runs the CDT requires different steps to acquire this toolchain

For windows, MinGW and Cygwin are the two main platform choices for acquiring the GNU toolchain It is important to understand the difference between them Cygwin produces executables that use the Cygwin POSIX runtime Note that this runtime is GPL licensed MinGW produces native Windows executables that do not require a separate runtime

For MinGW, it is recommended to use the MinGW installer, mingw-get, to manage your MinGW installation Download and run the lateset mingw-get-inst package from the MinGW Downloads page The CDT MinGW toolchain will find this install if it is located in the default C:\MinGW directory, the MinGW bin directory is placed in your path, or if the MinGW location is stored in the MINGW_HOME environment variable

Cygwin can be installed from the Cygwin site at https://www.cygwin.com You need to manually select the gcc, gdb, and make packages to install the toolchain

The Windows SDK provides the Visual C++ compiler and header files and libraries required to create Windows applications The CDT Visual C++ build integration will find these files based on where you installed the SDK No other setup is required

5.4.3 Programming and debugging the VESC Firmware

For this project, you need to install a set of toolchain below for compiling, building, and debugging the firmware

ChibiStudio is a free ARM development environment based on Open Source tools and components It has been created in order to support the development of ChibiOS itself and is now available as a free download Available download via: https://sourceforge.net/projects/chibios/files/ChibiStudio%20Windows/ChibiStudio _Windows_2023-02.7z/download

The GNU Arm Embedded Toolchain is a ready-to-use, open-source suite of tools for C, C++ and assembly programming The GNU Arm Embedded Toolchain targets the 32-bit Arm Cortex-A, Arm Cortex-M, and Arm Cortex-R processor families The GNU Arm Embedded Toolchain includes the GNU Compiler (GCC) and is available free of charge directly from Arm for embedded software development on Windows, Linux, and Mac OS X operating systems Available download via: https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

Makefiles are used to help decide which parts of a large program need to be recompiled In the vast majority of cases, C or C++ files are compiled Other languages typically have their own tools that serve a similar purpose as Make Make can also be used beyond compilation too, when you need a series of instructions to run depending on what files have changed

You can install the GNU make easily on Windows via Chocolately Firstly, open the windows powershell prompt with administration, then type the command

“choco install make”, wait for the installer to respond Finally type “yes” to install the software on your machine Note that, before using the choco command, you should install the Chocolately via https://community.chocolatey.org/

Test case: ADC toggle duty cycle

5.5.1 Flowchart of the main program

Figure below represents flowchart of controlling BLDC motor based FOC algorithm with ChibiOs for RTOS functionalities Here is a detailed explanation of the main program flow

Firstly, the program starts with Initializing Hardware Drivers This initializes necessary peripherals in microcontroller STM32f407RTG6 for the system, such as ADC, Timers, USB, UART, Clock, DMA, SPI, I2C After that, it initializes the ChibiOS RTOS, creating APIs for multitasking and managing system resources features, then initial data and motor configurations are set up which involves setting up initial values for system variables and configuring the motor parameters based on pre-defined settings or constants The next step is to run motor-detection algorithm, where the program automatically identifies the BLDC motor's electrical characteristics and parameters of hall sensors The algorithm calculates important motor parameters like inductance (Lq, Ld), resistance (R), motor flux linkage, maximum motor current, and create a hall table Then, the parameters identified by the motor-detection algorithm are used to update the motor configuration data stored in global This ensures the FOC algorithm uses accurate motor characteristics for optimal control After finish updating, it will set init status as done indicating the program initialization process is complete and the program is ready to execute threads Finally, the program creates all the necessary threads (sub-processes) for system operation ChibiOS then takes over, scheduling and executing these threads based on their assigned priorities Each thread handles specific tasks like sensor data acquisition, FOC calculations, motor control output, and PID calculations

After the process of initialization, the program will enter execution phase of threads created by the ChibiOs where each thread will be executed based on its priority and the scheduler This process is further explained:

- Thread FOC PID, is to calculate the proportional-Integral-Derivative (PID) controller used within the FOC algorithm for controlling the motor speed which calculates the error between the desired motor speed reference from motor speed sensor then output suitable Iq current

- Thread StatCounter deals with statistical counters for system data flow It collects data needed for other threads and updates motor configurations as it varies during execution

- Thread APP ADC is responsible for reading values from the Analog-to-Digital Converter (ADC) peripheral It reads the potentiometer values from the ADC in order to set a desired duty cycle output for the system

- Thread Main Periodic, it collects data requested from user and send the data to computer via USB protocol for interfacing with GUI (VESC tool) which later be used for drawing important diagrams

- Thread FOC timer is a timer specifically used for the FOC algorithm which triggers the FOC calculations and motor control updates at a specific frequency determined by the FOC control loop requirements It calculates the Clark-Park and Inverse Park transformations based on sensor readings to convert between the three- phase AC measurements and the two-phase reference frame used for FOC control Finally, it generates PWM outputs applying for inverter switching

Figure 5.17 Flowchart of Main program

5.5.2 Flowchart of PID algorithm and ADC application

The flowchart on the left-hand side involved in the PID control loop for the BLDC motor using the FOC method

It starts with reading reference speed for the BLDC motor This reference speed is provided by the user or by control configuration of the system Then it reads the actual speed of the BLDC motor which comes from the sensor feedback The difference between the reference speed and the actual speed is calculated This error signal represents how much the motor speed needs to be adjusted to reach the desired speed Next, it limits the speed error to a predefined maximum and minimum value This helps prevent excessive control outputs from the PID controller in case of large errors After that, it calculates P term by multiplying the current speed error by the proportional gain A higher (Kp) value results in a larger proportional term and a stronger corrective action to the motor control signal based on the current error Then, it integrates the speed error with respect to time (dt) This essentially accumulates the historical error over time A higher integral gain (Ki) will lead to a stronger corrective action based on the accumulated error The integrator output should be limited limited to a predefined maximum and minimum value This prevents integrator windup, a situation where the integrator keeps accumulating error even when the actual speed reaches the reference speed Next, the derivative term of the PID controller is calculated by multiplying the rate of change of the speed error (Δω/dt) by the derivative gain (Kd) This term helps anticipate future errors and adjust the motor control signal accordingly A higher Kd value results in a larger derivative term and a stronger corrective action based on how quickly the error is changing Finally, it calculates PID output y summing the proportional term (KpΔω), the integral term (ΣΔωdt), and the derivative term (KdΔω/dt) This combined output represents the Iq current needed to the motor driver to adjust the motor speed This output should be limited to a valid pre-defined range This ensures the motor control signal stays within acceptable limits to prevent motor damage This process repeats at each iteration of the PID control loop, continuously adjusting the motor control signal based on the latest error and system dynamics

The flowchart on the right-hand side is the steps involved in the ADC application for the BLDC motor using the FOC method

Firstly, the ADC converts an analog voltage input signal from a potentiometer into a digital value The raw ADC output is between 0 and maximum of ADC resolution (4095 or 12-bit ADC) which then be processed to be mapped to voltage reference range between 0 volts and 3.3 volts Then the program checks whether the mapped voltage (output) is lower than a predefined center voltage value

If yes, it maps the output to between 0 and 0.5; If not the output is mapped to 0.5 to 1.0 This remapping process is used to convert the voltage reading from the potentiometer into a more suitable range for further calculations After that, if the current control mode is "CONTROL MODE DUTY" and microcontroller state is

"MC_STATE RUNNING", it finally assigns the duty setpoint to a new desired duty cycle according to the output The calculated duty cycle can now be used by other parts of the program to control the system's operation

Figure 5.18 Flowchart of PID algorithm and ADC application

TESTING MODEL ESTABLISHMENT

Firmware properties

This is a table that represents pins mapping on MCU (STM32F405RTG6) used in FSESC 75100 with peripherals applied in our program This table also points out the features that are configured on each peripheral

Timers PA8 (HI) – TIM1_CH1 Clock input: 84Mhz

Prescaler: 1 PWM - Up-down counting Auto-reload value (ARR): 5600 PWM frequency: 7.5Mhz Duty cycle: 0.1 – 99%

PA9 (HI) - TIM1_CH2 PA10 (HI) - TIM1_CH3 PB13 (HI) - TIM1_CH1 PB14 (HI) - TIM1_CH2 PB15 (HI) - TIM1_CH3 GPIO PC6 – Hall 1

Digitial input pull up PC7 – Hall 2

USB PA11 - OTG_FS_DM

USB Protocol Communication PA12 - OTG_FS_DP

This is a table that represents all ADC mapping on our application for MCU (STM32F407RTG6), including symbol labeled on FSESC 75100 schematic, description for meaning of the symbol, its pin mapping and features which are configured on ADC

Description Symbol Pin Mapping Feature

EXT_ADC1 PA5 - ADC1_CH5 Vref: 3.3V

DMA supported Trigger event: TIM2

EXT_ADC2 PA6 - ADC2_CH6

PB_V PA1 - ADC2_CH1 Sample time: 15 cycles

Tripple ADC Regular simultaneous mode

TEMP_MOS PA3 - ADC3_CH3

TEMP_MOS2 PB0 - ADC1_CH8 TEMP_MOS3 PB1 - ADC2_CH9

TEMP_MOTOR PC4 - ADC1_CH14

Power supply

In model BLDC motor control, we use The power supply we used for this project is ABC The input voltage can vary from 100-240V AC (at 50Hz), and the output voltage is maintained at a constant 24V with a maximum current of 5A

Table 6.3 Specification of power supply

Input Voltage Range AC110/220VAC ± 15%

Overload Protection > 25% of rated power

Figure 6.1 Specification of Power supply

Figure 6.2 Power supply in Inventor

The dimensions of a power switching are described in the table below:

Table 6.4 Dimensions of a power switching

BLDC Motor

In model we use the motor D2BLD75-24A-30S with the parameter in the table below

Figure 6.3 BLDC motor in model The wiring of the BLDC is depicted in the table below:

Table 6.6 Wiring of the BLDC in color

Red Yellow Black Red Black Hall A Hall B Hall C

Figure 6.4 BLDC motor in Inventor The dimensions of a BLDC motor are described in the table below

Aluminum frame

The aluminum frame is the load-bearing part for us to make and install the appropriate model Proper placement and design of the aluminum frame are important to have a balanced model

The dimensions of an aluminum frame are described in the table below:

Table 6.8 Dimensions of a aluminum frame

Model control BLDC motor

The design of the installation layout drawing includes power switching, BLDC motor, VESC controller, power switch, name label, potentiometer Furthermore, in the design also has the jack signal out of the VESC includes: Phase Voltage, Hall Sensor, High Out, Low Out…etc By the software these value are filtered so these signal can present the pure value of the controller

Figure 6.7 Design of the model

Interfacing with VESC tool

This section is to give instructions on how to interact and control with VESC firmware via VESC tool installed from https://vesc-project.com/vesc_tool After successful installation, open the VESC start setup process of motor

As you can see on figure 5.19, it is a welcome page of VESC tool On this window, there are options for “Auto Connect”, “Setup Motors FOC”, and “Setup input” that would be taken into account for our application

First of all, right click on “Auto Connect” option to automatically connect VESC hardware to VESC tool via USB connector This is possible because we already have uploaded the bootloader on the STM32F405RTG6 embedded on the hardware so that the vesc tool could now write a binary program (elf file) onto the MCU via USB protocol or communicate the MCU (read data from MCU to the app and vice versa send data to the MCU)

Figure 6.9 VESC tool welcome page

After a successful connection with the VESC hardware, right click on the “Setup Motors FOC” option in order to let the tool automatically run detection algorithms to recognize all necessary characteristics of BLDC motor such as inductance (Lq, Ld), resistance (R), motor flux linkage, maximum motor current, and create a hall table

In addition, It also takes in predefined user input information of BLDC motor

Figure 6.10 Success Motor Detection Finally, right click on “Setup input” to configure ADC input using potentiometer for our specific application This program divides ADC input into 3 setpoints including “start voltage” – the maximum speed that motor rotates in a forward direction; “center voltage" – the point in which the motor stop rotating; “end voltage" – the maximum speed that motor rotates in a reverse direction

Below figures are steps to configure above described ADC application in order

Figure 6.11 Choose type of ADC input

Figure 6.13 Select control type of ADC input

Figure 6.14 Success ADC configuration window

After successful setup of ADC configuration, we could now test the application by trying to rotate the potentiometer on the left and then on the right direction Turn on Real-time Diagrams for FOC and Motor RPM, we could notice real-time data of

Iq and Id currents similar to below figure as we rotate the potentiometer

Figure 6.15 FOC Real-time Diagram

Figure 6.16 Motor RPM Real-time Diagram

As we rotates the potentiometer on the left to its start voltage, the motor rotates the maximum speed in a forward direction at (Iq = 0.25A and RPM = 3300) Next, we change the potentiometer to its end voltage, motor rotates the maximum speed in a reverse direction at (Iq = -0.25A and RPM = -2300)

In this diagram, we have the param Vq (Orange line) the component of the quadrature voltage which presents for the voltage applied for the rotation, have the equivalent diagram to the speed of the rotor

However the Vd components occurs when the motor changes the speed This is the voltage generated by the magnets flux through the coil windings in a time This component opposed the change speed of the rotor

The Id current always fluctuates at 0 which means we are using FOC control algorithm.

Measurement by Oscilloscope

In measurement, we use the Oscilloscope Hantek6022BE to capture the PWM of the MOSFETs during the operation of the motor

The value of the High side Out of MOSFET phase B (green) and phase C (yellow) in VESC, the value of the voltage is around 36V including the 12V of the gate driver and the charged bootstrap capacitor voltage

Figure 6.17 PWM of High side Out phase B and phase C of the MOSFET

The value of the Low side Out of the MOSFET phase C, the voltage around 12V, the PWM with the frequency of 12.5kHz

Figure 6.18 Low side Out of phase B and phase C measured by oscilloscope

We continue to conduct measure the Hall sensor of 2 phases B and C, each high digital wave from is 180 degrees the difference of the 120 degrees depicted in the figure below

Figure 6.19 Hall Sensor of phase B and phase C

CONCLUSION AND RECOMMENDATIONS

Overall, during the implementation process, we have achieved some initial objectives while doing the project with Vedder Electronic Speed Controller:

Understanding the structure and operating principles of the brushless DC motor, and understanding the reasons why this type of motor is more durable and efficient than traditional brushed motors

Measuring some necessary parameters of the motor to serve the purpose of controlling the motor using more advanced methods which helps the motor run smoothly and have archived the gain input

Build the firmware for the microcontroller and contribute the algorithm to control the BLDC motor Have knowledge of the real time operating system, and apply in the source code to read the accurate angular position of the BLDC rotor

Observing and monitoring the operating parameters of the motor through communication in the Eclipse software to know the specified threads each time However, there are some objectives that we could not fully achieve:

Because of the failure in measuring the PWM of the half bridge, the short circuit happen and damage our MCU so we can not show the PWM out of the MCU to the MOSFET for control the phase of the BLDC motor In this time, we are trying to replace the MCU of the board and check the damaged component to repair

Apply the load in the rotor to calculate the torque generated by motor and the torque ripple happen during the operation

In the future, brushless DC motors, with their superior advantages over brushed motors and a wide power range, are favored in many industrial fields that require high precision and efficiency Therefore, developing control software and operating algorithms, as well as simplifying the motor control process, is extremely important, the FOC (Field-Oriented Control) method will yield better efficiency in systems using large motors or facing energy consumption issues

[1] T Instruments, "Field Orientated Control of 3-Phase," 1998

[2] L M.-P Bharatiraja Chokkalingam, "Critical Aspects of Electric Motor Drive,"

[3] L M.-P Bharatiraja Chokkalingam, "A Review of BLDC Motor: State of Art, Advanced, Control technique and Application," IEEE Open Access, 2022

[4] H S B R U O Antun Skuric, "SimpleFOC: A Field Oriented Control (FOC) Library for Controlling Brushless Direct Current (BLDC) and Stepper.,"

Journal of Open Source Software , 2022

[5] C A D H S M Shanthar Rajinth, "Design of a Sensorless Field Oriented Control Drive for Brushless," International Conference of Control, Dynamic Systems, and Robotics , p 180 , 2022

[6] D COSTANZO and G FORTE, "STM32 PMSM SDK 4.0," STM32, 2018

[7] E Solution, "About Motor," 2023 [Online] Available: https://about- motors.com/motorcontrol/motor/

[8] T Mao, "ĐIỀU KHIỂN ĐỘNG CƠ DC KHÔNG CHỔI QUÉT BẰNG PHƯƠNG PHÁP FOC," Truong Dai Hoc Su Pham Ky Thuat , 2015

[9] P Đ M QUÂN và T Q KHANH, “Nghiên cứu mô phỏng điều khiển động cơ không chổi than BLDC bằng công cụ Matlab - Simulink,” Khoa Hoc Cong Nghe, p 93, 2022

[10] J Shao, "An Improved Microcontroller-Based Sensorless Brushless DC (BLDC) Motor Drive for Automotive Applications," IEEE TRANSACTIONS

Ngày đăng: 26/09/2024, 10:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] T. Instruments, "Field Orientated Control of 3-Phase," 1998 Sách, tạp chí
Tiêu đề: Field Orientated Control of 3-Phase
[2] L. M.-P. Bharatiraja Chokkalingam, "Critical Aspects of Electric Motor Drive," Open Access Journal , 2022 Sách, tạp chí
Tiêu đề: Critical Aspects of Electric Motor Drive
[3] L. M.-P. Bharatiraja Chokkalingam, "A Review of BLDC Motor: State of Art, Advanced, Control technique and Application," IEEE Open Access, 2022 Sách, tạp chí
Tiêu đề: A Review of BLDC Motor: State of Art, Advanced, Control technique and Application
[4] H. S. B. R. U. O. Antun Skuric, "SimpleFOC: A Field Oriented Control (FOC) Library for Controlling Brushless Direct Current (BLDC) and Stepper.,"Journal of Open Source Software , 2022 Sách, tạp chí
Tiêu đề: SimpleFOC: A Field Oriented Control (FOC) Library for Controlling Brushless Direct Current (BLDC) and Stepper
[5] C. A. D. H. S. M. Shanthar Rajinth, "Design of a Sensorless Field Oriented Control Drive for Brushless," International Conference of Control, Dynamic Systems, and Robotics , p. 180 , 2022 Sách, tạp chí
Tiêu đề: Design of a Sensorless Field Oriented Control Drive for Brushless
[6] D. COSTANZO and G. FORTE, "STM32 PMSM SDK 4.0," STM32, 2018 Sách, tạp chí
Tiêu đề: STM32 PMSM SDK 4.0
[7] E. Solution, "About Motor," 2023. [Online]. Available: https://about- motors.com/motorcontrol/motor/ Sách, tạp chí
Tiêu đề: About Motor
[8] T. Mao, "ĐIỀU KHIỂN ĐỘNG CƠ DC KHÔNG CHỔI QUÉT BẰNG PHƯƠNG PHÁP FOC," Truong Dai Hoc Su Pham Ky Thuat , 2015 Sách, tạp chí
Tiêu đề: ĐIỀU KHIỂN ĐỘNG CƠ DC KHÔNG CHỔI QUÉT BẰNG PHƯƠNG PHÁP FOC
[9] P. Đ. M. QUÂN và T. Q. KHANH, “Nghiên cứu mô phỏng điều khiển động cơ không chổi than BLDC bằng công cụ Matlab - Simulink,” Khoa Hoc Cong Nghe, p. 93, 2022 Sách, tạp chí
Tiêu đề: Nghiên cứu mô phỏng điều khiển động cơ không chổi than BLDC bằng công cụ Matlab - Simulink,” "Khoa Hoc Cong Nghe
[10] J. Shao, "An Improved Microcontroller-Based Sensorless Brushless DC (BLDC) Motor Drive for Automotive Applications," IEEE TRANSACTIONS ON INDUSTRY APPLICATIONS, p. 1216, 2006 Sách, tạp chí
Tiêu đề: An Improved Microcontroller-Based Sensorless Brushless DC (BLDC) Motor Drive for Automotive Applications
[11] A. T. a. M. A. R. Rofiq Cahyo Prayogo, "Field Oriented Control Implementation on BLDC Motor Controller with PI and SVPWM using STM32F103C8T6," Journal of Physics: Conference, 2023 Sách, tạp chí
Tiêu đề: Field Oriented Control Implementation on BLDC Motor Controller with PI and SVPWM using STM32F103C8T6
[12] Esclipse, "Eclipse documentation - Current Release," 03 2024. [Online]. Available: https://help.eclipse.org/latest/index.jsp Sách, tạp chí
Tiêu đề: Eclipse documentation - Current Release
[13] G. D. Sirio, "ChibiOS Embeddedware," ChibiOS, 2024. [Online]. Available: https://www.chibios.org/dokuwiki/doku.php Sách, tạp chí
Tiêu đề: ChibiOS Embeddedware
[14] "Mastering the FreeRTOS™ Real Time Kernel," 2024. [Online]. Available: https://freertos.gitbook.io/mastering-the-freertos-tm-real-time-kernel Sách, tạp chí
Tiêu đề: Mastering the FreeRTOS™ Real Time Kernel
[15] I. Amazon Web Services, "FreeRTOS," 2024. [Online]. Available: https://www.freertos.org/ Sách, tạp chí
Tiêu đề: FreeRTOS

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w