Jump to main content

# 3.4.1 Harmony 3 EMAFE Direct Transfer Mode Example

This topic provides instructions and information about the MPLAB Harmony 3 EMAFE Direct Transfer mode demonstration application, which is included in the MPLAB Harmony Smart Energy Metrology Applications distribution.

Description

This demonstration application configures the EMAFE peripheral to enable only channel 2 of the low-pass filter, which implies the activation of the V1 input signal.

Table 3-17.Input Signals Assignment
Channel | Input Signal | Data Register
--- | --- | ---
Channel 0 | Temperature sensor | EMAFE_DATA0
Channel 1 | I1 | EMAFE_DATA1
Channel 2 | V1 | EMAFE_DATA2
Channel 3 | I2 | EMAFE_DATA3
Channel 4 | V2 | EMAFE_DATA4

When enabling V1 filter, V1 filter uploads their 24-bit data in EMAFE_DATA2 register.

When a new set of data in V1 is uploaded, the flag DRDY is set in the Interrupt Status register (EMAFE_ISR). An interrupt can be triggered if the bit DRDY is written to 1 in the Interrupt Enable register (EMAFE_IER).

This application has been designed to capture 1600 samples, which supports 5 cycles of a periodic 50 Hz signal:

Fs = 16000 ksps. Fin = 50Hz. Fs/Fin = 320 samples/cycle. Total samples = 320 * 5 = 1600 samples in 5 cycles.

Where Fs is sampling frequency and Fin is input signal frequency.

All samples are captured in the EMAFE interrupt callback by reading the corresponding EMAFE_DATA register. Once all samples are captured, they are sent to the terminal console application for analysis with an external tool.

Note: It is strongly recommended to follow the below sequence of the application state diagram to ensure a correct initialization of the analog parts in the EMAFE peripheral.
Figure 3-32.Application State Diagram

Harmony MCC Component Blocks

Figure 3-33.EMAFE Direct Transfer Mode Project Graph for PIC32CXMTSH-DB

The virtual COM Port interface is enabled to provide an output console.

EMAFE component must be enabled.

Figure 3-34.PIC32CXMTSH-DB Board Configuration

Clock Configuration

Clocks are configured to match the following distribution.

Figure 3-35.PLLA Clock Configuration
Figure 3-36.PLLB Clock Configuration
Figure 3-37.PLLC Clock Configuration
Figure 3-38.PCK2 Clock Configuration
Figure 3-39.Peripherals Clock Configuration

Harmony EMAFE Code Configuration Options

EMAFE peripheral library is configured to use Direct Transfer mode by disabling the Enable DMA option.

Figure 3-40.EMAFE Configuration Options

Building the Application

This section identifies the MPLAB X IDE project name and location and lists and describes the available configurations for the demonstration.

The parent folder for these files is `smartenergy_metrology\apps\peripherals\emafe\emafe_polled`. To build this project, the user must open the `smartenergy_metrology\apps\peripherals\emafe\emafe_polled\emafe_polled_pic32cxmtsh_db.X` project file in MPLAB X IDE.

MPLAB X IDE Project Configurations

This table lists and describes the supported configurations of the demonstration, which are located within `./src/config`.

Project Name | Configuration | Description
--- | --- | ---
emafe_polled_pic32cxmtsh_db | pic32cxmtsh_db | This demonstration runs on the PI32CXMTSH Development Board

Running the Demonstration

To run this application, the PIC32CXMTSH-DB has been connected to a WECO Meter test board, and configured accordingly.
Figure 3-41.WECO Equipment Configuration
Figure 3-42.EMAFE Direct Transfer Mode Demo Application
After running the application, data samples have been represented using an external tool.
Figure 3-43.Samples Representation

Rev: E