MCUXpresso SDK Documentation

dsc_pwm

dsc_pwm#

Overview#

The PWM project is a simple demonstration program of the SDK PWM driver. The pulse width modulator (PWM) module contains PWM submodules, each of which is set up to control a single half-bridge power stage. Fault channel support is provided. This PWM module can generate various switching patterns, including highly sophisticated waveforms. It can be used to control all known Switched Mode Power Supplies (SMPS) topologies.

The project uses eFlexPWM to generate A-phase pwm, B-phase pwm and C-phase pwm through submodule 0, submodule 1, submodule 2.

Submodule 0 can generate one complementary PWM: PWM A and PWM B. For PWM A, PWM A(1kHz 50% duty cycle) is setup, PWM A works based on SignedCenterAligned. PWM B operates in PWM A complementary mode, so the dutycycle field of PWM B does not matter. To prevent short circuits, the dead time count is set, about 650ns.

Submodule 1 and submodule 2 are set to MasterSync. This means that submodule 1 and submodule 2 are initialized synchronously from submodule 0. In MasterSync mode, submodule 0 can be used as the main module to generate control signals to control other modules.

This program is set to center-aligned PWM mode, and the duty cycle and position of the PWM can be changed by modifying the value of pwmVal in this mode.

In this project, the duty cycle of submodule 0 is pwmVal, the duty cycle of submodule 1 is pwmVal divided by 2 and the duty cycle of submodule 2 is pwmVal divided by 4. PWM_SetPwmLdok() can issue the load command to multiple submodules at the same time. The values are loaded immediately if kPWM_ReloadImmediate option was choosen during config. Else the values are loaded at the next PWM reload point.

The log below shows example output of the PWM driver demo in the oscilloscope :

^ | +——–+ | | | +-+——–+—–> submodule0 | +—+ | | | +—+—+——–> submodule1 | +-+ | | | +—-+-+———> submodule2

Supported Boards#

MC56F80000-EVK
Hardware requirements
  • Micro USB cable

  • MC56F80000-EVK board

  • Personal Computer

Board hardware common setting
  1. Power setting:

    Connect J8 pin2 and pin3 Connect J6 pin1 and pin2 Connect J5 pin1 and pin2

  2. Reset pin setting:

    Connect J11 pin2 and pin3

  3. Debugger setting:

    Connect J13 pin 1-2, 3-4, 5-6, 7-8

Board settings

No special settings are required.

Prepare the Demo
  1. Connect USB cable between the host PC and the J12 USB port on the target board. It setups Multilink and COM port in PC device manager.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board with Multilink debug configuration.

  4. Launch the debugger in your IDE to begin running the demo.

Running the demo

When the example runs successfully, the following message is displayed in the terminal:

FlexPWM driver example
~~~~~~~~~~~~~~~~~~~~~~~
The LED0, LED1, LED3, LED5 will change their brightness slowly
MC56F81000-EVK
Hardware requirements
  • 2 x Micro USB cable

  • MC56F81000-EVK board

  • Personal Computer

  • Oscilloscope

Board hardware common setting
  1. Power setting:

    Connect J8 pin2 and pin3 Connect J5 pin1 and pin2 Connect J6 pin1 and pin2

  2. Onboard PnE U-MultiLink debugger setting:

    Connet J11 pin2 and pin3 Connect J13 pin 1-2, 3-4, 5-6, 7-8, to setup onboard debugger PnE U-MultiLink. Note: when use external debugger(connected to J10), leave all J13 pins open.

Board settings
  • Connect J1-8 to J3-8(VDD) with a 10K resistor. Caution: the 10K resistor must be used in series within J1-8 and J3-8.

  • Probe the pwm signal using an oscilloscope

    • At J3-15

    • At J3-13

    • At J3-11

    • At J3-7

    All PWM signals have the same frequency. The J3-13/15 PWM signal is a pair of duty cycle constantly changing complementary signals with a fixed dead time. The J3-11 duty cycle is half of J3-15, and J3-7 duty cycle is half of J3-11.

  • Connect J1-8 to GND with a 10K resistor. Caution: the 10K resistor must be used in series within J1-8 and GND. Then J3-15/J3-11/J3-7 PWM signals will be disabled.

Prepare the Demo
  1. Connect USB cable between the host PC and the USB(J26) port on the target board to setup USB to UART bridge.

  2. Connect USB cable between the host PC and the USB(J12) port on the target baord to setup mulitlink debugger.

  3. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  4. Download the program to the target board with PnE U-MultiLink debug configuration.

  5. Either press the reset button on your board or launch the debugger in your IDE to begin running the demo. Please be noted default FCF(flash configuration field) makes the MCU boot from flash.

Running the demo

When the example runs successfully, the following message is displayed in the terminal:

FlexPWM driver example
~~~~~~~~~~~~~~~~~~~~~~~
MC56F83000-EVK
Hardware requirements
  • Micro USB cable

  • MC56F83000-EVK board

  • Personal Computer

  • Oscilloscope

Board hardware common setting
  1. Power setting:

    Connect J19 pin2 and pin3 Connect J12 pin1 and pin2 Connect J13 pin1 and pin2 Connect J15 pin1 and pin2 Connect J16 pin2 and pin3 Connect J17 pin1 and pin2

  2. Onboard OSJTAG debugger setting:

    Leave J5 open Leave J6 open Note: J6 is only used(connected) when firmware update for onboard debugger OSJTAG. Connect J11 pin 1-2, 3-4, 5-6, 7-8, to setup onboard debugger OSJTAG. Note: when use external debugger(connected to J10), leave all J11 pins open.

Board settings
  • Connect J1-16 to J3-8(VDD) with a 10K resistor. Caution: the 10K resistor must be used in series within J1-16 and J3-8.

  • Probe the pwm signal using an oscilloscope

    • At J3-15

    • At J3-13

    • At J3-11

    • At J3-7

    All PWM signals have the same frequency. The J3-13/15 PWM signal is a pair of duty cycle constantly changing complementary signals with a fixed dead time. The J3-11 duty cycle is half of J3-15, and J3-7 duty cycle is half of J3-11.

  • Connect J1-16 to GND with a 10K resistor. Caution: the 10K resistor must be used in series within J1-16 and GND. Then J3-15/J3-11/J3-7 PWM signals will be disabled.

Prepare the Demo
  1. Connect USB cable between the host PC and the JM60 USB(J8) port on the target board. It setups OSJTAG and COM port in PC device manager.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board with OSJTAG debug configuration.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the demo. Please be noted that default FCF(flash configuration field) setting makes MCU boot from bootloader. So after reset button press, it will wait 5s(wait in bootloader) to run the application code.

Running the demo

When the example runs successfully, the following message is displayed in the terminal:

FlexPWM driver example
~~~~~~~~~~~~~~~~~~~~~~~
TWR-MC56F8200
Hardware requirements
  • Mini USB cable

  • TWR-MC56F8200 board

  • Personal Computer

  • Oscilloscope

Board hardware common setting
  1. HW reworkd(workaround):

    Connect J18(the mini USB port) pin4 and pin5. Note: This is due to HW design error, correct setting should be: J18 pin4 left empty and pin5 connected GND.

  2. Power setting:

    Connect J11 pin1 and pin2 Connect J6 pin1 and J7 pin2

  3. UART setting:

    Connect J8 pin3 and pin4 Connect J9 pin3 and pin4

  4. Onboard OSJTAG debugger setting:

    Connect J20 pin1 and pin2. Leave J17 open. Note: J17 is only used(connected) when firmware update for onboard debugger OSJTAG. Connect J21 pin 1-2, 3-4, 5-6, 7-8, to setup onboard debugger OSJTAG. Note: when use external debugger(connected to J14), leave all J21 pins open

Board settings
  • Connect J501-21 to 3.3V with a 10K resistor. Caution: the 10K resistor must be used in series within J501-21 and 3.3V.

  • Probe the pwm signal using an oscilloscope

    • At J501-11

    • At J501-9

    • At J501-30

    • At J501-34

    All PWM signals have the same frequency. The J501-11/9 PWM signal is a pair of duty cycle constantly changing complementary signals with a fixed dead time. The J501-30 duty cycle is half of J501-9, and J501-34 duty cycle is half of J501-30.

  • Connect J501-21 to GND with a 10K resistor. Caution: the 10K resistor must be used in series within J501-21 and GND. Then J501-9/J501-30/J501-34 PWM signals will be disabled.

Prepare the Demo
  1. Connect USB cable between the host PC and the JM60 USB(J18) port on the target board. It setups OSJTAG and COM port in PC device manager.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board with OSJTAG debug configuration.

  4. Launch the debugger in your IDE to begin running the demo.

Running the demo

When the example runs successfully, the following message is displayed in the terminal:

FlexPWM driver example
~~~~~~~~~~~~~~~~~~~~~~~
TWR-MC56F8400
Hardware requirements
  • Mini USB cable

  • TWR-MC56F8400 board

  • Personal Computer

  • Oscilloscope

Board hardware common setting
  1. Power setting:

    Connect J11 pin1 and pin2 Connect J6 pin1 and J7 pin2

  2. UART setting:

    Connect J8 pin3 and pin4 Connect J9 pin3 and pin4

  3. Onboard OSJTAG debugger setting:

    Connect J20 pin1 and pin2. Leave J17 open. Note: J17 is only used(connected) when firmware update for onboard debugger OSJTAG. Connect J21 pin 1-2, 3-4, 5-6, 7-8, to setup onboard debugger OSJTAG. Note: when use external debugger(connected to J14), leave all J21 pins open

Board settings
  • Connect J503-4 to 3.3V with a 10K resistor. Caution: the 10K resistor must be used in series within J503-4 and 3.3V.

  • Probe the pwm signal using an oscilloscope

    • At J501-11

    • At J501-9

    • At J501-30

    • At J501-34

    All PWM signals have the same frequency. The J501-11/9 PWM signal is a pair of duty cycle constantly changing complementary signals with a fixed dead time. The J501-30 duty cycle is half of J501-9, and J501-34 duty cycle is half of J501-30.

  • Connect J503-4 to GND with a 10K resistor. Caution: the 10K resistor must be used in series within J503-4 and GND. Then J501-9/J501-30/J501-34 PWM signals will be disabled.

Prepare the Demo
  1. Connect USB cable between the host PC and the JM60 USB(J18) port on the target board. It setups OSJTAG and COM port in PC device manager.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board with OSJTAG debug configuration.

  4. Launch the debugger in your IDE to begin running the demo.

Running the demo

When the example runs successfully, the following message is displayed in the terminal:

FlexPWM driver example
~~~~~~~~~~~~~~~~~~~~~~~