1.3 PMSM FOC using Quadrature Encoder

This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with Quadrature Encoder based Field Oriented Control (FOC) on a SAME70 Micro-controller.

Description

Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using quadrature encoder sensor. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope.

Key features enabled in this project are:

  • Dual shunt current measurement
  • Speed control loop
  • Field weakening

MCC Project Configurations

  • PMSM_FOC:

    This component configures FOC algorithm parameters, motor parameters and motor control board parameters. It connects to underlying peripheral libraries AFEC and PWM. This components auto configures ADC channels and PWM channels as per PMSM_FOC component configurations.

  • AFEC Peripheral:

    The AFEC is used to measure analog quantities. Four channels are used to measure the Phase Current U, the Phase Current V, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay).

  • PWM Peripheral:

    This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously.

  • TC QDEC Peripheral:

    TC peripheral is configured in QDEC mode. It is used to decode the rotor position and speed from quadrature encoder signals.

  • X2CScope:

    This component adds X2C scope protocol code. This uses UART to communicate to the host PC. X2CScope allows user to monitor variables runtime.

  • UART Peripheral:

    The UART is used for X2CScope communication to observe graphs and variable values in run time.

Project Details

This project has been created using Harmony QSpin Tool. For details refer Harmony QSpin.

Development Kits

MCLV2 with ATSAME70 PIM

DOWNLOADING AND BUILDING THE APPLICATION

To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions.

Path of the application within the repository is apps/mcp_pmsm_foc_encoder_sam_e70.

To build the application, refer to the following table and open the project using its IDE.

Project NameDescriptionDemo User Guide
mclv2_sam_e70_pim.XMPLABX project for MCLV2 board with ATSAME70 PIMHardware Setup and Running The Application on MCLV2 with ATSAME70 PIM

MCHV3 with ATSAME70 PIM

DOWNLOADING AND BUILDING THE APPLICATION

To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions.

Path of the application within the repository is apps/mcp_pmsm_foc_encoder_sam_e70.

To build the application, refer to the following table and open the project using its IDE.

Project NameDescriptionDemo User Guide
mchv3_sam_e70_pim.XMPLABX project for MCHV3 board with ATSAME70 PIMHardware Setup and Running The Application on MCHV3 with ATSAME70 PIM