| BlueNRG-1 Peripherals drivers Examples

- Main Page
- Modules
- Classes
- Files

- File List
- File Members

Macros | Functions | Variables
MFT_Mode_2_main.c File Reference

This example demonstrate the possibility of multi-function timers configured in mode 2 (dual-input capture mode) to measure input signal frequency. More...

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

Go to the source code of this file.

## Macros

#define | IO_CAPTURE_PIN_MFT1_TIMERA 2 /* IO2 */
#define | IO_CAPTURE_PIN_MFT1_TIMERB 3 /* IO3 */

## Functions

void | MFT_Configuration ()
| MFT_Configuration. More...
int | main (void)
| Main program code. More...

## Variables

FlagStatus | fA_found = RESET
FlagStatus | fB_found = RESET

## Detailed Description

This example demonstrate the possibility of multi-function timers configured in mode 2 (dual-input capture mode) to measure input signal frequency.

# 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_2\MDK-ARM\Mode_2.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_2\EWARM\Mode_2.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

In mode 2 (dual-input capture mode) the Timer/Counter 1 counts down with the selected clock. TnA and TnB pins function as capture inputs. A transition received on TnA pin causes a transfer of timer content to the TnCRA register. Similarly, a transition received on the TnB pin causes a transfer of the timer content to the TnCRB register. Timer/Counter 2 counts down with selected clock and can generate interrupt upon underflow.

In this example, MFT1 is used. CPU clock is selected as clock signal for Timer/Counter 1. Prescaled clock is used as clock source for Timer/Counter 2.

Sensitivity to falling edge is selected for TnA and TnB inputs. Counter preset to 0xFFFF is disabled for both inputs.

The IO2 pin is internally connected to TnA input (MFT1). The IO3 pin is internally connected to TnB input (MFT1).

Interrupts TnA and TnB are enable. These interrupts occur at transition on TnA or TnB. In the interrupt routine value of TnCRA or TnCRB is saved. At each second interrupt the period of input signal is calculated. Interrupt TnC is enabled. This interrupt occurs at each underflow of Timer/Counter1 and increment underflow counter variables which are used for calculation of input signal period.

The LED DL1 is toggle ON if a frequency of about 1 kHz is detected on IO2. The LED DL2 is toggle ON if a frequency of about 10 kHz is detected on IO3.

Definition in file MFT_Mode_2_main.c.