/**
******************************************************************************
* @file STM32F072B_Ex01_2TKeys_EVAL\inc\tsl_conf_stm32f0xx.h
* @author MCD Application Team
* @version V1.1.0
* @date 04-April-2014
* @brief Acquisition parameters for STM32F0xx products.
* @note This file must be copied in the application project and values
* changed for the application.
******************************************************************************
* @attention
*
*
© COPYRIGHT 2014 STMicroelectronics
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __TSL_CONF_STM32F0XX_H
#define __TSL_CONF_STM32F0XX_H
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++ COMMON PARAMETERS ++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/** @defgroup Common_Parameters Common Parameters
* @{ */
//==============================================================================
// Number of elements
//==============================================================================
/** @defgroup Common_Parameters_Number_Of_Elements 01 - Number of elements
* @{ */
/** Total number of channels in application (range=1..255)
*/
#define TSLPRM_TOTAL_CHANNELS (2)
/** Total number of banks in application (range=1..255)
*/
#define TSLPRM_TOTAL_BANKS (2)
/** Total number of "Extended" TouchKeys in application (range=0..255)
*/
#define TSLPRM_TOTAL_TOUCHKEYS (2)
/** Total number of "Basic" TouchKeys in application (range=0..255)
*/
#define TSLPRM_TOTAL_TOUCHKEYS_B (0)
/** Total number of "Extended" Linear and Rotary sensors in application (range=0..255)
- Count also the 1-channel linear sensor used as TouchKey
*/
#define TSLPRM_TOTAL_LINROTS (0)
/** Total number of "Basic" Linear and Rotary sensors in application (range=0..255)
- Count also the 1-channel linear sensor used as TouchKey
*/
#define TSLPRM_TOTAL_LINROTS_B (0)
/** Total number of sensors/objects in application (range=1..255)
- Count all TouchKeys, Linear and Rotary sensors
*/
#define TSLPRM_TOTAL_OBJECTS (2)
/** @} Common_Parameters_Number_Of_Elements */
//==============================================================================
// Optional features
//==============================================================================
/** @defgroup Common_Parameters_Options 02 - Optional features
* @{ */
/** Record the last measure (0=No, 1=Yes)
- If No the measure is recalculated using the Reference and Delta
*/
#define TSLPRM_USE_MEAS (1)
/** Zone management usage (0=No, 1=Yes)
*/
#define TSLPRM_USE_ZONE (0)
/** Proximity detection usage (0=No, 1=Yes)
*/
#define TSLPRM_USE_PROX (0)
/** Use the Timer tick callback (0=No, 1=Yes)
- When equal to 1, the function TSL_CallBack_TimerTick must be defined in
the application code. It is called for each timer interruption.
*/
#define TSLPRM_USE_TIMER_CALLBACK (0)
/** Acquisition interrupt mode (0=No, 1=Yes)
- If No the TS interrupt is not used.
- If Yes the TS interrupt is used.
*/
#define TSLPRM_USE_ACQ_INTERRUPT (0)
/** @} Common_Parameters_Options */
//==============================================================================
// Acquisition limits
//==============================================================================
/** @defgroup Common_Parameters_Acquisition_Limits 03 - Acquisition limits
* @{ */
/** Minimum acquisition measurement (range=0..65535)
- This is the minimum acceptable value for the acquisition measure.
- The acquisition will be in error if the measure is below this value.
*/
#define TSLPRM_ACQ_MIN (10)
/** Maximum acquisition measurement (range=255, 511, 1023, 2047, 8191, 16383)
- This is the maximum acceptable value for the acquisition measure.
- The acquisition will be in error if the measure is above this value.
*/
#define TSLPRM_ACQ_MAX (8191)
/** @} Common_Parameters_Acquisition_Limits */
//==============================================================================
// Calibration
//==============================================================================
/** @defgroup Common_Parameters_Calibration 04 - Calibration
* @{ */
/** Number of calibration samples (range=4, 8, 16)
- Low value = faster calibration but less precision.
- High value = slower calibration but more precision.
*/
#define TSLPRM_CALIB_SAMPLES (4)
/** Delay in measurement samples before starting the calibration (range=0..40)
- This is useful if a noise filter is used.
- Write 0 to disable the delay.
*/
#define TSLPRM_CALIB_DELAY (0)
/** @} Common_Parameters_Calibration */
//==============================================================================
// Thresholds for TouchKey sensors
//==============================================================================
/** @defgroup Common_Parameters_TouchKey_Thresholds 05 - Thresholds for TouchKey sensors
* @{ */
/** TouchKeys Proximity state input threshold (range=0..255)
- Enter Proximity state if delta is above
*/
#define TSLPRM_TKEY_PROX_IN_TH (6)
/** TouchKeys Proximity state output threshold (range=0..255)
- Exit Proximity state if delta is below
*/
#define TSLPRM_TKEY_PROX_OUT_TH (5)
/** TouchKeys Detect state input threshold (range=0..255)
- Enter Detect state if delta is above
*/
#define TSLPRM_TKEY_DETECT_IN_TH (12)//(150)
/** TouchKeys Detect state output threshold (range=0..255)
- Exit Detect state if delta is below
*/
#define TSLPRM_TKEY_DETECT_OUT_TH (8)//(100)
/** TouchKeys re-Calibration threshold (range=0..255)
- @warning The value is inverted in the sensor state machine
- Enter Calibration state if delta is below
*/
#define TSLPRM_TKEY_CALIB_TH (15)
/** TouchKey, Linear and Rotary sensors thresholds coefficient (range=0..4)
This multiplier coefficient is applied on Detect and Re-Calibration thresholds only.
- 0: feature disabled
- 1: thresholds x 2
- 2: thresholds x 4
- 3: thresholds x 8
- 4: thresholds x 16
*/
#define TSLPRM_COEFF_TH (0)
/** @} Common_Parameters_TouchKey_Thresholds */
//==============================================================================
// Thresholds for Linear and Rotary sensors
//==============================================================================
/** @defgroup Common_Parameters_LinRot_Thresholds 06 - Thresholds for Linear and Rotary sensors
* @{ */
/** Linear/Rotary Proximity state input threshold (range=0..255)
- Enter Proximity state if delta is above
*/
#define TSLPRM_LINROT_PROX_IN_TH (10)
/** Linear/Rotary Proximity state output threshold (range=0..255)
- Exit Proximity state if delta is below
*/
#define TSLPRM_LINROT_PROX_OUT_TH (5)
/** Linear/Rotary Detect state input threshold (range=0..255)
- Enter Detect state if delta is above
*/
#define TSLPRM_LINROT_DETECT_IN_TH (20)
/** Linear/Rotary Detect state output threshold (range=0..255)
- Exit Detect state if delta is below
*/
#define TSLPRM_LINROT_DETECT_OUT_TH (15)
/** Linear/Rotary re-Calibration threshold (range=0..255)
- @warning The value is inverted in the sensor state machine
- Enter Calibration state if delta is below
- A low absolute value will result in a higher sensitivity and thus some spurious
recalibration may be issued.
*/
#define TSLPRM_LINROT_CALIB_TH (20)
/** Linear/Rotary Delta normalization (0=No, 1=Yes)
- When this parameter is set, a coefficient is applied on all Delta of all sensors
in order to normalize them and to improve the position calculation.
- These coefficients must be defined in a constant table in the application (see Library examples).
- The MSB is the coefficient integer part, the LSB is the coefficient real part.
- Examples:
- To apply a factor 1.10:
0x01 to the MSB
0x1A to the LSB (0.10 x 256 = 25.6 -> rounded to 26 = 0x1A)
- To apply a factor 0.90:
0x00 to the MSB
0xE6 to the LSB (0.90 x 256 = 230.4 -> rounded to 230 = 0xE6)
- To apply no factor:
0x01 to the MSB
0x00 to the LSB
*/
#define TSLPRM_LINROT_USE_NORMDELTA (0)
/** @} Common_Parameters_LinRot_Thresholds */
//==============================================================================
// Linear/Rotary sensors used
//==============================================================================
/** @defgroup Common_Parameters_LinRot_Used 07 - Linear/Rotary sensors used
* @{ */
/** Select which Linear and Rotary sensors you use in your application.
- 0 = Not Used
- 1 = Used
LIN = Linear sensor
ROT = Rotary sensor
M1 = Mono electrodes design with 0/255 position at extremities of the sensor
M2 = Mono electrodes design
H = Half-ended electrodes design
D = Dual electrodes design
*/
#define TSLPRM_USE_3CH_LIN_M1 (0)
#define TSLPRM_USE_3CH_LIN_M2 (0)
#define TSLPRM_USE_3CH_LIN_H (0)
#define TSLPRM_USE_3CH_ROT_M (0)
#define TSLPRM_USE_4CH_LIN_M1 (0)
#define TSLPRM_USE_4CH_LIN_M2 (0)
#define TSLPRM_USE_4CH_LIN_H (0)
#define TSLPRM_USE_4CH_ROT_M (0)
#define TSLPRM_USE_5CH_LIN_M1 (0)
#define TSLPRM_USE_5CH_LIN_M2 (0)
#define TSLPRM_USE_5CH_LIN_H (0)
#define TSLPRM_USE_5CH_ROT_M (0)
#define TSLPRM_USE_5CH_ROT_D (0)
#define TSLPRM_USE_6CH_LIN_M1 (0)
#define TSLPRM_USE_6CH_LIN_M2 (0)
#define TSLPRM_USE_6CH_LIN_H (0)
#define TSLPRM_USE_6CH_ROT_M (0)
/** @} Common_Parameters_LinRot_used */
//==============================================================================
// Linear/Rotary sensors position
//==============================================================================
/** @defgroup Common_Parameters_LinRot_Position 08 - Linear/Rotary sensors position
* @{ */
/** Position resolution in number of bits (range=1..8)
- A Low value will result in a low resolution and will be less subject to noise.
- A High value will result in a high resolution and will be more subject to noise.
*/
#define TSLPRM_LINROT_RESOLUTION (7)
/** Direction change threshold in position unit (range=0..255)
- Defines the default threshold used during the change direction process.
- A Low value will result in a faster direction change.
- A High value will result in a slower direction change.
*/
#define TSLPRM_LINROT_DIR_CHG_POS (10)
/** Direction change debounce (range=0..63)
- Defines the default integrator counter used during the change direction process.
- This counter is decremented when the same change in the position is detected and the direction will
change after this counter reaches zero.
- A Low value will result in a faster direction change.
- A High value will result in a slower direction change.
*/
#define TSLPRM_LINROT_DIR_CHG_DEB (1)
/** @} Common_Parameters_LinRot_Position */
//==============================================================================
// Debounce counters
//==============================================================================
/** @defgroup Common_Parameters_Debounce 09 - Debounce counters
* @{ */
/** Proximity state debounce in samples unit (range=0..63)
- A Low value will result in a higher sensitivity during the Proximity detection but with less noise filtering.
- A High value will result in improving the system noise immunity but will increase the system response time.
*/
#define TSLPRM_DEBOUNCE_PROX (50)//(3)
/** Detect state debounce in samples unit (range=0..63)
- A Low value will result in a higher sensitivity during the detection but with less noise filtering.
- A High value will result in improving the system noise immunity but will increase the system response time.
*/
#define TSLPRM_DEBOUNCE_DETECT (63)//(7)//(3)
/** Release state debounce in samples unit (range=0..63)
- A Low value will result in a higher sensitivity during the end-detection but with less noise filtering.
- A High value will result in a lower sensitivity during the end-detection but with more noise filtering.
*/
#define TSLPRM_DEBOUNCE_RELEASE (63)//(6)//(3)
/** Re-calibration state debounce in samples unit (range=0..63)
- A Low value will result in a higher sensitivity during the recalibration but with less noise filtering.
- A High value will result in a lower sensitivity during the recalibration but with more noise filtering.
*/
#define TSLPRM_DEBOUNCE_CALIB (63)//(3)
/** Error state debounce in samples unit (range=0..63)
- A Low value will result in a higher sensitivity to enter in error state.
- A High value will result in a lower sensitivity to enter in error state.
*/
#define TSLPRM_DEBOUNCE_ERROR (3)
/** @} Common_Parameters_Debounce */
//==============================================================================
// Environment Change System (ECS)
//==============================================================================
/** @defgroup Common_Parameters_ECS 10 - ECS
* @{ */
/** Environment Change System Slow K factor (range=0..255)
- The higher value is K, the faster is the response time.
*/
#define TSLPRM_ECS_K_SLOW (10)
/** Environment Change System Fast K factor (range=0..255)
- The higher value is K, the faster is the response time.
*/
#define TSLPRM_ECS_K_FAST (20)
/** Environment Change System delay in msec (range=0..5000)
- The ECS will be started after this delay and when all sensors are in Release state.
*/
#define TSLPRM_ECS_DELAY (500)
/** @} Common_Parameters_ECS */
//==============================================================================
// Detection Time Out (DTO)
//==============================================================================
/** @defgroup Common_Parameters_DTO 11 - DTO
* @{ */
/** Detection Time Out delay in seconds (range=0..63)
- Value 0: DTO processing not compiled in the code (to gain size if not used).
- Value 1: Default time out infinite.
- Value between 2 and 63: Default time out between value n-1 and n.
- Examples:
- With a DTO equal to 2, the time out is between 1s and 2s.
- With a DTO equal to 63, the time out is between 62s and 63s.
@note The DTO can be changed in run-time by the application only if the
default value is between 1 and 63.
*/
#define TSLPRM_DTO (0)
/** @} Common_Parameters_DTO */
//==============================================================================
// Detection Exclusion System (DXS)
//==============================================================================
/** @defgroup Common_Parameters_DXS 12 - DXS
* @{ */
/** Detection Exclusion System (0=No, 1=Yes)
*/
#define TSLPRM_USE_DXS (0)
/** @} Common_Parameters_DXS */
//==============================================================================
// Miscellaneous parameters
//==============================================================================
/** @defgroup Common_Parameters_Misc 13 - Miscellaneous
* @{ */
/** Timing tick frequency in Hz (range=125, 250, 500, 1000, 2000)
- Result to a timing interrupt respectively every 8ms, 4ms, 2ms, 1ms, 0.5ms
*/
#define TSLPRM_TICK_FREQ (1000)
/** Delay for discharging Cx and Cs capacitors (range=0..65535)
- The value corresponds to the Softdelay function parameter.
- 500 gives around 53 µs delay whatever HCLK
- 1000 gives around 106 µs delay whatever HCLK
- 2000 gives around 210 µs delay whatever HCLK
*/
#define TSLPRM_DELAY_DISCHARGE_ALL (1000)
/** @} Common_Parameters_Misc */
/** @} Common_Parameters */
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++ MCU PARAMETERS ++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/** @defgroup STM32F0xx_Parameters STM32F0xx Parameters
* @{ */
//==============================================================================
// GPIO configuration
//==============================================================================
/** @defgroup STM32F0xx_Parameters_GPIO_Config 01 - TSC GPIOs Configuration
* @{ */
/** TSC GPIOs Configuration selection (range=0..1)
- 0: Manual. The TSC GPIOs configuration must be done by the application code.
- 1: Automatic. The TSLPRM_TSC_GROUPx_IOy parameters below must be filled up.
The TSC GPIOs configuration is automatically done by the STMTouch driver.
*/
#define TSLPRM_TSC_GPIO_CONFIG (1)
//+++ DO NOT CHANGE THESE VALUES +++++++++++++++++++++++++++++++++
// These defines must be applied to the TSLPRM_TSC_GROUPx_IOy parameters below.
#define NU (0) // Not Used IO
#define CHANNEL (1) // Channel IO
#define SHIELD (2) // Shield IO (= Channel IO but not acquired)
#define SAMPCAP (3) // Sampling Capacitor IO
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// If TSLPRM_TSC_GPIO_CONFIG=1 assign each TSLPRM_TSC_GROUPx_IOy parameters below.
// If TSLPRM_TSC_GPIO_CONFIG=0 these parameters are ignored.
#define TSLPRM_TSC_GROUP1_IO1 NU // PA0
#define TSLPRM_TSC_GROUP1_IO2 NU // PA1
#define TSLPRM_TSC_GROUP1_IO3 CHANNEL // PA2
#define TSLPRM_TSC_GROUP1_IO4 SAMPCAP // PA3
#define TSLPRM_TSC_GROUP2_IO1 NU//CHANNEL // PA4
#define TSLPRM_TSC_GROUP2_IO2 NU//CHANNEL // PA5
#define TSLPRM_TSC_GROUP2_IO3 NU//SAMPCAP // PA6
#define TSLPRM_TSC_GROUP2_IO4 NU // PA7
#define TSLPRM_TSC_GROUP3_IO1 NU // PC5
#define TSLPRM_TSC_GROUP3_IO2 NU // PB0
#define TSLPRM_TSC_GROUP3_IO3 NU // PB1
#define TSLPRM_TSC_GROUP3_IO4 NU // PB2
#define TSLPRM_TSC_GROUP4_IO1 NU//SHIELD // PA9
#define TSLPRM_TSC_GROUP4_IO2 NU//SAMPCAP // PA10
#define TSLPRM_TSC_GROUP4_IO3 NU // PA11
#define TSLPRM_TSC_GROUP4_IO4 NU // PA12
#define TSLPRM_TSC_GROUP5_IO1 CHANNEL // PB3
#define TSLPRM_TSC_GROUP5_IO2 SAMPCAP // PB4
#define TSLPRM_TSC_GROUP5_IO3 NU // PB6
#define TSLPRM_TSC_GROUP5_IO4 NU // PB7
#define TSLPRM_TSC_GROUP6_IO1 NU // PB11
#define TSLPRM_TSC_GROUP6_IO2 NU // PB12
#define TSLPRM_TSC_GROUP6_IO3 NU // PB13
#define TSLPRM_TSC_GROUP6_IO4 NU // PB14
// Warning: this group is available on some devices only.
#define TSLPRM_TSC_GROUP7_IO1 NU // PE2
#define TSLPRM_TSC_GROUP7_IO2 NU // PE3
#define TSLPRM_TSC_GROUP7_IO3 NU // PE4
#define TSLPRM_TSC_GROUP7_IO4 NU // PE5
// Warning: this group is available on some devices only.
#define TSLPRM_TSC_GROUP8_IO1 NU // PD12
#define TSLPRM_TSC_GROUP8_IO2 NU // PD13
#define TSLPRM_TSC_GROUP8_IO3 NU // PD14
#define TSLPRM_TSC_GROUP8_IO4 NU // PD15
/** @} STM32F0xx_Parameters_GPIO_Config */
//==============================================================================
// Charge Transfer Pulses
//==============================================================================
/** @defgroup STM32F0xx_Parameters_CT_Pulses 02 - Charge Transfer Pulses
* @{ */
/** Charge Transfer Pulse High (range=0..15)
- 0: 1 x tPGCLK
- 1: 2 x tPGCLK
- ...
- 15: 16 x tPGCLK
*/
#define TSLPRM_TSC_CTPH (1)
/** Charge Transfer Pulse Low (range=0..15)
- 0: 1 x tPGCLK
- 1: 2 x tPGCLK
- ...
- 15: 16 x tPGCLK
*/
#define TSLPRM_TSC_CTPL (1)
/** Pulse Generator Prescaler (range=0..7)
- 0: fPGCLK = fHCLK
- 1: fPGCLK = fHCLK/2
- ...
- 7: fPGCLK = fHCLK/128
*/
#define TSLPRM_TSC_PGPSC (3)
/** @} STM32F0xx_Parameters_CT_Pulses */
//==============================================================================
// IOs
//==============================================================================
/** @defgroup STM32F0xx_Parameters_IOs 03 - I/Os
* @{ */
/** TSC IOs default mode when no on-going acquisition (range=0..1)
- 0: Output push-pull low
- 1: Input floating
@note To ensure a correct operation in noisy environment, this parameter should
be configured to output push-pull low.
*/
#define TSLPRM_TSC_IODEF (0)
/** Acquisition Mode (range=0..1)
- 0: Normal acquisition mode
- 1: Synchronized acquisition mode
*/
#define TSLPRM_TSC_AM (0)
/** Synchronization Pin (range=0..1)
- 0: PB08
- 1: PB10
*/
#define TSLPRM_TSC_SYNC_PIN (0)
/** Synchronization Polarity (range=0..1)
- 0: Falling edge only
- 1: Rising edge and high level
*/
#define TSLPRM_TSC_SYNC_POL (0)
/** @} STM32F0xx_Parameters_Misc */
//==============================================================================
// Spread Spectrum
//==============================================================================
/** @defgroup STM32F0xx_Parameters_SpreadSpectrum 04 - Spread Spectrum
* @{ */
/** Use Spread Spectrum (0=No, 1=Yes)
*/
#define TSLPRM_TSC_USE_SS (0)
/** Spread Spectrum Deviation (range=0..127)
- 0: 1 x tSSCLK
- 1: 2 x tSSCLK
- ...
- 127: 128 x tSSCLK
*/
#define TSLPRM_TSC_SSD (0)
/** Spread Spectrum Prescaler (range=0..1)
- 0: fSSCLK = fHCLK
- 1: fSSCLK = fHCLK/2
*/
#define TSLPRM_TSC_SSPSC (0)
/** @} STM32F0xx_Parameters_SpreadSpectrum */
/** @} STM32F0xx_Parameters */
// DO NOT REMOVE !!!
#include "tsl_check_config.h"
#endif /* __TSL_CONF_STM32F0XX_H */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/