IRPyro Micro controller template only
Routines to enable the MCU to use the USART and the I2C
Micro_controller_template.h
Go to the documentation of this file.
1 /**
2 ******************************************************************************
3 * @file Micro_controller_template.h
4 * @author _KEMET, Ltd
5 * @date March 2018
6 * @version Release 1.0.6
7 * @copyright (c) 2018 _KEMET, Ltd
8 * @brief Public functions of Micro controller specific code to access the IRPyro sensor.
9 * @verbatim
10 ===============================================================================
11  ##### How to use this template #####
12 ===============================================================================
13 [..]
14  This functions are referred on the IRPyro API, changing the names
15  disables the API.
16 [..]
17 
18 @endverbatim
19 ******************************************************************************
20  @attention <h2><center>&copy; COPYRIGHT 2018 _KEMET, Ltd</center></h2>
21 
22  @verbatim
23  Copyright (c) 2018, _KEMET, Ltd
24  All rights reserved.
25 
26  THIS SOFTWARE IS PROVIDED BY _KEMET, Ltd ''AS IS'' AND ANY
27  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29  DISCLAIMED. IN NO EVENT SHALL _KEMET, Ltd BE LIABLE FOR ANY
30  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
31  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
32  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
33  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  @endverbatim
37 ******************************************************************************
38 */
39 /* Includes ------------------------------------------------------------------*/
40 #include <stddef.h>
41 #include <stdio.h>
42 #include <stdarg.h>
43 #include "stm32f30x.h"
44 #include "stm32f30x_exti.h"
45 #include "stm32f30x_gpio.h"
46 #include "stm32f30x_i2c.h"
47 #include "stm32f30x_syscfg.h"
48 #include "stm32f30x_usart.h"
49 
50 /* Micro_controller_template function prototypes -----------------------------*/
52 void Micro_controller_delay_ms(uint32_t time_ms);
53 void Micro_controller_delay_us(uint32_t time_us);
54 void Micro_controller_timeout_set(uint32_t timeout);
55 uint32_t Micro_controller_timeout_get(void);
56 void Micro_controller_delay_set(uint32_t delay);
57 uint32_t Micro_controller_delay_get(void);
58 
59 /* GPIO Control Functions prototypes ******************************************/
60 uint8_t INT_pin_read(uint8_t port, uint8_t pin);
61 void CS_pin_set(uint8_t port, uint8_t pin, uint8_t value);
62 void power_set(uint8_t port, uint8_t pin);
63 
64 typedef void (*EXTernal_callback)(void);
65 uint8_t EXTI_detected(uint8_t exti_line);
67 
68 /* I2C Control Functions prototypes *******************************************/
69 uint8_t i2c_Write(uint8_t DeviceAddr , uint8_t Command, uint8_t* pBuffer, uint8_t len);
70 uint8_t i2c_Read(uint8_t DeviceAddr, uint8_t Command, uint8_t* pBuffer, uint16_t len);
71 
72 /* USART Control Function prototype *******************************************/
73 typedef void (*USART_callback)(void);
76 uint8_t UART_byte_get(void);
77 void UART_stream_binary_send(uint8_t *DataS);
78 void UART_stream_char_send(uint32_t *channel_value, uint8_t channel_saturation);
79 void UART_PutString(USART_TypeDef* USARTx, uint8_t * str);
80 void UART_PutNumber(USART_TypeDef* USARTx, uint32_t number);
81 
82 /* Backplane Board control functions prototype *******************************************/
83 void Emitter_control(uint8_t *EmitterStatus, uint8_t EmitterONTime, uint8_t EmitterOFFTime);
84 void LED_READY(uint8_t LED_ready);
85 
86 /* TIM control functions prototype *******************************************/
87 typedef void (*TIM_callback)(void);
88 void Micro_controller_sample_period_timer_set(uint32_t count_value);
90 void TIM_Callback_Setup(TIM_callback Callback);
91 /* ********** Copyright (c) 2018 _KEMET, Ltd. **********END OF FILE************/
EXTernal_callback
void(* EXTernal_callback)(void)
Definition: Micro_controller_template.h:64
Micro_controller_timeout_set
void Micro_controller_timeout_set(uint32_t timeout)
Sets the tick_down to monitor a time out.
Definition: Micro_controller_template.c:328
LED_READY
void LED_READY(uint8_t LED_ready)
Control for the READY led state.
Definition: Micro_controller_template.c:1292
power_set
void power_set(uint8_t port, uint8_t pin)
Power sequence from the MCU to the IRPyro sensor.
Definition: Micro_controller_template.c:569
Micro_controller_timeout_get
uint32_t Micro_controller_timeout_get(void)
Recovers the tick_down value to check is not expired.
Definition: Micro_controller_template.c:336
EXTernal_Callback_Setup
void EXTernal_Callback_Setup(EXTernal_callback Callback)
Configures function callbacks.
Definition: Micro_controller_template.c:960
i2c_Write
uint8_t i2c_Write(uint8_t DeviceAddr, uint8_t Command, uint8_t *pBuffer, uint8_t len)
Sends data via I2C port.
Definition: Micro_controller_template.c:679
Micro_controller_template_init
void Micro_controller_template_init(void)
Groups all required initialization in one function.
Definition: Micro_controller_template.c:175
Micro_controller_delay_set
void Micro_controller_delay_set(uint32_t delay)
Sets the tick counter.
Definition: Micro_controller_template.c:345
Emitter_control
void Emitter_control(uint8_t *EmitterStatus, uint8_t EmitterONTime, uint8_t EmitterOFFTime)
Changes Emitter status and applies timing parameters.
Definition: Micro_controller_template.c:1399
EXTI_detected
uint8_t EXTI_detected(uint8_t exti_line)
This function access the status of the interrupt lines for the wake up event.
Definition: Micro_controller_template.c:1037
USART_Callback_Rx_Setup
void USART_Callback_Rx_Setup(USART_callback Callback)
Configures function callbacks.
Definition: Micro_controller_template.c:1146
i2c_Read
uint8_t i2c_Read(uint8_t DeviceAddr, uint8_t Command, uint8_t *pBuffer, uint16_t len)
Reads data via I2C port.
Definition: Micro_controller_template.c:770
UART_PutString
void UART_PutString(USART_TypeDef *USARTx, uint8_t *str)
Puts a string in the USART.
Definition: Micro_controller_template.c:1069
INT_pin_read
uint8_t INT_pin_read(uint8_t port, uint8_t pin)
Reads the status of the pin assigned to the INT line of IRPyro.
Definition: Micro_controller_template.c:503
Micro_controller_delay_us
void Micro_controller_delay_us(uint32_t time_us)
Example of delay function in micro seconds. Refer to section "12.8 Device Power Up and Reset" in the ...
Definition: Micro_controller_template.c:371
Micro_controller_sample_period_timer_set
void Micro_controller_sample_period_timer_set(uint32_t count_value)
Definition: Micro_controller_template.c:1464
CS_pin_set
void CS_pin_set(uint8_t port, uint8_t pin, uint8_t value)
ON/OFF control from the MCU to the IRPyro sensor.
Definition: Micro_controller_template.c:534
Micro_controller_delay_get
uint32_t Micro_controller_delay_get(void)
Retrieves the tick counter.
Definition: Micro_controller_template.c:353
UART_PutNumber
void UART_PutNumber(USART_TypeDef *USARTx, uint32_t number)
Puts a number in the USART.
Definition: Micro_controller_template.c:1082
USART_callback
void(* USART_callback)(void)
Definition: Micro_controller_template.h:73
Micro_controller_delay_ms
void Micro_controller_delay_ms(uint32_t time_ms)
Example of delay function.
Definition: Micro_controller_template.c:394
TIM_Callback_Setup
void TIM_Callback_Setup(TIM_callback Callback)
Configures function callbacks.
Definition: Micro_controller_template.c:1491
UART_stream_binary_send
void UART_stream_binary_send(uint8_t *DataS)
Builds a binary data packet for the channels of the sensor, frame counter and saturation byte.
Definition: Micro_controller_template.c:1219
UART_byte_get
uint8_t UART_byte_get(void)
Interface to acces uart_byte.
Definition: Micro_controller_template.c:1182
UART_stream_char_send
void UART_stream_char_send(uint32_t *channel_value, uint8_t channel_saturation)
Plain text data for the active channels of the sensor including, frame counter and saturation byte.
Definition: Micro_controller_template.c:1205
USART_Callback_Tx_Setup
void USART_Callback_Tx_Setup(USART_callback Callback)
Configures function callbacks.
Definition: Micro_controller_template.c:1120
TIM_callback
void(* TIM_callback)(void)
Definition: Micro_controller_template.h:87
Micro_controller_sample_period_timer_get
uint32_t Micro_controller_sample_period_timer_get(void)
Definition: Micro_controller_template.c:1468