| BlueNRG-1 Peripherals drivers Examples

- Main Page
- Modules
- Classes
- Files

- File List
- File Members

Macros | Functions
MFT_Mode_1_main.c File Reference

This example demonstrate the possibility of multi-function timers configured in mode 1 (processor-independent PWM) to generate PWM signals. More...

`#include "BlueNRG1.h"`
`#include "BlueNRG1_conf.h"`
`#include "SDK_EVAL_Config.h"`

Go to the source code of this file.

## Macros

#define | PWM0_PIN GPIO_Pin_2
#define | PWM1_PIN GPIO_Pin_3

## Functions

void | GPIO_Configuration (void)
| GPIO Configuration. Configure outputs GPIO pins. More...
void | MFT_Configuration (void)
| MFT_Configuration. More...
int | main (void)
| Main program code. More...

## Detailed Description

This example demonstrate the possibility of multi-function timers configured in mode 1 (processor-independent PWM) to generate PWM signals.

# ATOLLIC project

To use the project with ATOLLIC TrueSTUDIO for ARM, please follow the instructions below:

1. Open the ATOLLIC TrueSTUDIO for ARM and select File->Import... Project menu.
2. Select Existing Projects into Workspace.
3. Select the ATOLLIC project
4. Select desired configuration to build from Project->Manage Configurations
5. Select Project->Rebuild Project. This will recompile and link the entire application
6. To download the binary image, please connect STLink to JTAG connector in your board (if available).
7. Select Project->Download to download the related binary image.
8. Alternatively, open the BlueNRG1 GUI, put the board in bootloader mode and download the built binary image.

# KEIL project

To use the project with KEIL uVision 5 for ARM, please follow the instructions below:

1. Open the KEIL uVision 5 for ARM and select Project->Open Project menu.
2. Open the KEIL project `...\Project\BlueNRG1_Periph_Examples\MFT\Mode_1\MDK-ARM\Mode_1.uvprojx`
3. Select desired configuration to build
4. Select Project->Rebuild all target files. This will recompile and link the entire application
5. To download the binary image, please connect STLink to JTAG connector in your board (if available).
6. Select Project->Download to download the related binary image.
7. Alternatively, open the BlueNRG1 GUI, put the board in bootloader mode and download the built binary image.

# IAR project

To use the project with IAR Embedded Workbench for ARM, please follow the instructions below:

1. Open the Embedded Workbench for ARM and select File->Open->Workspace menu.
2. Open the IAR project `...\Project\BlueNRG1_Periph_Examples\MFT\Mode_1\EWARM\Mode_1.eww`
3. Select desired configuration to build
4. Select Project->Rebuild All. This will recompile and link the entire application
5. To download the binary image, please connect STLink to JTAG connector in your board (if available).
6. Select Project->Download and Debug to download the related binary image.
7. Alternatively, open the BlueNRG1 GUI, put the board in bootloader mode and download the built binary image.

## Project configurations

- `Release` - Release configuration

# Boards supported

- `STEVAL-IDB007V1`

# Power configuration settings

STEVAL-IDB007V1
Jumper name |  | Description
JP1 | JP2 |
ON 1-2 | ON 2-3 | USB supply power
ON 2-3 | ON 1-2 | The supply voltage must be provided through battery pins.
ON 1-2 |  | USB supply power to STM32L1, JP2 pin 2 external power to BlueNRG1

# Jumper settings

STEVAL-IDB007V1
Jumper name | Description
JP1 | 1-2: to provide power from USB (JP2:2-3). 2-3: to provide power from battery holder (JP2:1-2)
JP2 | 1-2: to provide power from battery holder (JP1:2-3). 2-3: to provide power from USB (JP1:1-2). Pin2 to VDD to provide external power supply to BlueNRG-1 (JP1: 1-2)
JP3 | pin 1 and 2 UART RX and TX of MCU. pin 3 GND.
JP4 | Fitted: to provide VBLUE to BlueNRG1. It can be used also for current measurement.
JP5 | Fitted : TEST pin to VBLUE. Not fitted: TEST pin to GND

# Pin settings

PIN name | STEVAL-IDB007V1
ADC1 | Not Used
ADC2 | Not Used
IO0 | Not Used
IO1 | Not Used
IO11 | Not Used
IO12 | Not Used
IO13 | Not Used
IO14 | Not Used
IO2 | TnA pin
IO3 | TnB pin
IO4 | Not Used
IO5 | Not Used
IO6 | Drive the LED DL1
IO7 | Drive the LED DL2
IO8 | Not Used
TEST1 | Not Used

# LEDs description

LED name | STEVAL-IDB007V1
DL1 | Toggle
DL2 | Toggle
DL3 | Not Used
DL4 | Power

# Buttons description

BUTTON name | STEVAL-IDB007V1
PUSH1 | Not Used
PUSH2 | Not Used
RESET | Reset BlueNRG1

# Usage

Timer/Counter 1 (TnCNT1) functions as the time base for the PWM timer. TnCNT1 counts down at the clock rate selected by the Timer/Counter 1 clock selector. When an underflow occurs, the timer register is reloaded alternately from the TnCRA and TnCRB registers and counting proceeds downward from the loaded value. At the first underflow, the timer is loaded from TnCRA, the second time from TnCRB, the third time from TnCRA, and so on. In this mode of operation, Timer/Counter 2 can be used as a simple system timer, an external-event counter, or as a pulse-accumulate counter. Counter TnCNT2 counts down with the clock selected by the Timer/Counter 2 clock selector, and can be configured to generate an interrupt upon underflow.

MFT1 and MFT2 use prescaled clock as Timer/Counter 1.

The IO2 pin is configured as output generating signal with 250ms positive level and 500ms negative level via MFT1. The IO3 pin is configured as output generating signal with 50ms positive level and 100ms negative level via MFT2.

Timer/Counter 1 interrupts upon reload are enabled for MFT1. Interrupt routines toggle LED DL1 for MFT1 and LED DL2 for MFT2.

Definition in file MFT_Mode_1_main.c.