Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Jacques Labaisse
Core
Commits
73ca606e
Commit
73ca606e
authored
Jul 16, 2021
by
Clément Foucher
Browse files
Add Comparator driver module.
parent
5abdb87a
Changes
7
Hide whitespace changes
Inline
Side-by-side
zephyr/modules/owntech_comparator_driver/zephyr/CMakeLists.txt
0 → 100644
View file @
73ca606e
if
(
CONFIG_OWNTECH_COMPARATOR_DRIVER
)
# Select directory to add to the include path
zephyr_include_directories
(
./public_include
)
# Define the current folder as a Zephyr library
zephyr_library
()
# Select source files to be compiled
zephyr_library_sources
(
./src/comparator_driver.c
)
endif
()
zephyr/modules/owntech_comparator_driver/zephyr/Kconfig
0 → 100644
View file @
73ca606e
config OWNTECH_COMPARATOR_DRIVER
bool "Enable OwnTech comparator driver for STM32"
default y
zephyr/modules/owntech_comparator_driver/zephyr/module.yml
0 → 100644
View file @
73ca606e
name
:
owntech_comparator_driver
build
:
cmake
:
zephyr
kconfig
:
zephyr/Kconfig
zephyr/modules/owntech_comparator_driver/zephyr/public_include/comparator.h
0 → 100644
View file @
73ca606e
/*
* Copyright (c) 2021 LAAS-CNRS
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: LGLPV2.1
*/
/**
* @author Clément Foucher <clement.foucher@laas.fr>
*/
#ifndef COMPARATOR_H_
#define COMPARATOR_H_
#ifdef __cplusplus
extern
"C"
{
#endif
void
comparator_init
();
#ifdef __cplusplus
}
#endif
#endif // COMPARATOR_H_
zephyr/modules/owntech_comparator_driver/zephyr/src/comparator_driver.c
0 → 100644
View file @
73ca606e
/*
* Copyright (c) 2021 LAAS-CNRS
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: LGLPV2.1
*/
/**
* @author Clément Foucher <clement.foucher@laas.fr>
*/
// Zephyr
#include
<zephyr.h>
// STM32 LL
#include
<stm32_ll_comp.h>
#include
<stm32_ll_gpio.h>
#include
<stm32_ll_bus.h>
// Current file header
#include
"comparator_driver.h"
void
comparator_init
()
{
_comparator_gpio_init
();
_comparator_comp1_init
();
_comparator_comp3_init
();
}
static
void
_comparator_gpio_init
()
{
// TODO : use Zephyr gpio_pin_configure
/*
COMP1 GPIO Configuration
PA1 ------> COMP1_INP
PB8-BOOT0 ------> COMP1_OUT
COMP3 GPIO Configuration
PC1 ------> COMP3_INP
PB15 ------> COMP3_OUT
*/
LL_AHB2_GRP1_EnableClock
(
LL_AHB2_GRP1_PERIPH_GPIOA
);
LL_AHB2_GRP1_EnableClock
(
LL_AHB2_GRP1_PERIPH_GPIOB
);
LL_AHB2_GRP1_EnableClock
(
LL_AHB2_GRP1_PERIPH_GPIOC
);
// Pin A.1 (cmp 1)
LL_GPIO_SetPinPull
(
GPIOA
,
LL_GPIO_PIN_1
,
LL_GPIO_PULL_NO
);
LL_GPIO_SetPinMode
(
GPIOA
,
LL_GPIO_PIN_1
,
LL_GPIO_MODE_ANALOG
);
// Pin C.1 (cmp 3)
LL_GPIO_SetPinPull
(
GPIOC
,
LL_GPIO_PIN_1
,
LL_GPIO_PULL_NO
);
LL_GPIO_SetPinMode
(
GPIOC
,
LL_GPIO_PIN_1
,
LL_GPIO_MODE_ANALOG
);
}
static
void
_comparator_comp1_init
()
{
LL_COMP_ConfigInputs
(
COMP1
,
LL_COMP_INPUT_MINUS_DAC1_CH1
,
LL_COMP_INPUT_PLUS_IO1
);
LL_COMP_SetInputHysteresis
(
COMP1
,
LL_COMP_HYSTERESIS_NONE
);
LL_COMP_SetOutputPolarity
(
COMP1
,
LL_COMP_OUTPUTPOL_NONINVERTED
);
LL_COMP_SetOutputBlankingSource
(
COMP1
,
LL_COMP_BLANKINGSRC_NONE
);
k_busy_wait
(
LL_COMP_DELAY_VOLTAGE_SCALER_STAB_US
);
LL_EXTI_DisableEvent_0_31
(
LL_EXTI_LINE_21
);
LL_EXTI_DisableIT_0_31
(
LL_EXTI_LINE_21
);
LL_COMP_Enable
(
COMP1
);
}
static
void
_comparator_comp3_init
()
{
LL_COMP_ConfigInputs
(
COMP3
,
LL_COMP_INPUT_MINUS_DAC3_CH1
,
LL_COMP_INPUT_PLUS_IO2
);
LL_COMP_SetInputHysteresis
(
COMP3
,
LL_COMP_HYSTERESIS_NONE
);
LL_COMP_SetOutputPolarity
(
COMP3
,
LL_COMP_OUTPUTPOL_NONINVERTED
);
LL_COMP_SetOutputBlankingSource
(
COMP3
,
LL_COMP_BLANKINGSRC_NONE
);
k_busy_wait
(
LL_COMP_DELAY_VOLTAGE_SCALER_STAB_US
);
LL_EXTI_DisableEvent_0_31
(
LL_EXTI_LINE_29
);
LL_EXTI_DisableIT_0_31
(
LL_EXTI_LINE_29
);
LL_COMP_Enable
(
COMP3
);
}
zephyr/modules/owntech_comparator_driver/zephyr/src/comparator_driver.h
0 → 100644
View file @
73ca606e
/*
* Copyright (c) 2021 LAAS-CNRS
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: LGLPV2.1
*/
/**
* @author Clément Foucher <clement.foucher@laas.fr>
*/
#ifndef COMPARATOR_DRIVER_H_
#define COMPARATOR_DRIVER_H_
#ifdef __cplusplus
extern
"C"
{
#endif
static
void
_comparator_comp1_init
();
static
void
_comparator_comp3_init
();
static
void
_comparator_gpio_init
();
#ifdef __cplusplus
}
#endif
#endif // COMPARATOR_DRIVER_H_
zephyr/prj.conf
View file @
73ca606e
...
...
@@ -46,3 +46,4 @@ CONFIG_ASSERT=y
#CONFIG_OWNTECH_DATA_ACQUISITION=n
#CONFIG_OWNTECH_VREFBUF_DRIVER=n
#CONFIG_OWNTECH_DAC_DRIVER=n
#CONFIG_OWNTECH_COMPARATOR_DRIVER=n
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment