drivers: add generic upper-half driver for Field Oriented Control (FOC)

This commit is contained in:
raiden00pl
2021-03-29 12:18:07 +02:00
committed by Alan Carvalho de Assis
parent 3a97f51a8d
commit e4c27dfdd6
13 changed files with 1426 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
menuconfig MOTOR
bool "Motor control drivers"
default n
if MOTOR
source "drivers/motor/foc/Kconfig"
endif # MOTOR
+35
View File
@@ -0,0 +1,35 @@
############################################################################
# drivers/motor/Make.defs
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
#
# 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.
#
############################################################################
# Add FOC driver
ifeq ($(CONFIG_MOTOR_FOC),y)
include motor$(DELIM)foc$(DELIM)Make.defs
endif
# Include motor drivers in the build
MOTOR_DEPPATH := --dep-path motor
MOTOR_VPATH := :motor
MOTOR_CFLAGS := ${shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)drivers$(DELIM)motr}
DEPPATH += $(MOTOR_DEPPATH)
VPATH += $(MOTOR_VPATH)
CFLAGS += $(MOTOR_CFLAGS)
+31
View File
@@ -0,0 +1,31 @@
menuconfig MOTOR_FOC
bool "FOC (Field Oriented Controller) driver support"
default n
---help---
Enables building of the "upper-half" FOC driver.
if MOTOR_FOC
config MOTOR_FOC_INST
int "FOC instances"
default 1
config MOTOR_FOC_PHASES
int "FOC phases number"
default 3
config MOTOR_FOC_SHUNTS
int "FOC number of shunts"
range 1 3
default 3
---help---
Number of shunts supported (or other types of current sensors).
Any current recontruction must be done on the lower-half side.
config MOTOR_FOC_TRACE
bool "FOC trace support"
default n
---help---
Enables FOC driver trace interface.
endif #MOTOR_FOC
+29
View File
@@ -0,0 +1,29 @@
############################################################################
# drivers/motor/foc/Make.defs
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
#
# 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.
#
############################################################################
# Include FOC driver into the build
CSRCS += foc_dev.c
# Include FOC driver build support
DEPPATH += --dep-path motor$(DELIM)foc
VPATH += :motor$(DELIM)foc
CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)$(DELIM)drivers$(DELIM)motor$(DELIM)foc}
File diff suppressed because it is too large Load Diff