[conf][subsystems] more robust/configurable x_I2C_DEV

This commit is contained in:
Felix Ruess
2013-09-09 11:40:08 +02:00
parent 3651e8ceeb
commit b2e433c482
10 changed files with 214 additions and 88 deletions
@@ -7,17 +7,36 @@
#
$(TARGET).CFLAGS += -DACTUATORS
ap.srcs += subsystems/actuators/actuators_asctec.c
ACTUATORS_ASCTEC_SRCS = subsystems/actuators/actuators_asctec.c
# set default i2c device if not already configured
ifeq ($(ARCH), lpc21)
ACTUATORS_ASCTEC_I2C_DEV ?= i2c0
else ifeq ($(ARCH), stm32)
ACTUATORS_ASCTEC_I2C_DEV ?= i2c1
endif
ifndef ACTUATORS_ASCTEC_I2C_DEV
$(error Error: ACTUATORS_ASCTEC_I2C_DEV not configured!)
endif
# convert i2cx to upper/lower case
ACTUATORS_ASCTEC_I2C_DEV_UPPER=$(shell echo $(ACTUATORS_ASCTEC_I2C_DEV) | tr a-z A-Z)
ACTUATORS_ASCTEC_I2C_DEV_LOWER=$(shell echo $(ACTUATORS_ASCTEC_I2C_DEV) | tr A-Z a-z)
ACTUATORS_ASCTEC_CFLAGS += -DACTUATORS_ASCTEC_I2C_DEV=$(ACTUATORS_ASCTEC_I2C_DEV_LOWER)
ACTUATORS_ASCTEC_CFLAGS += -DUSE_$(ACTUATORS_ASCTEC_I2C_DEV_UPPER)
ifeq ($(ARCH), lpc21)
ap.CFLAGS += -DACTUATORS_ASCTEC_I2C_DEV=i2c0
ap.CFLAGS += -DUSE_I2C0 -DI2C0_SCLL=150 -DI2C0_SCLH=150
# set default i2c timing if not already configured
ACTUATORS_ASCTEC_I2C_SCL_TIME ?= 150
ACTUATORS_ASCTEC_CFLAGS += -D$(ACTUATORS_ASCTEC_I2C_DEV_UPPER)_SCLL=$(ACTUATORS_ASCTEC_I2C_SCL_TIME)
ACTUATORS_ASCTEC_CFLAGS += -D$(ACTUATORS_ASCTEC_I2C_DEV_UPPER)_SCLH=$(ACTUATORS_ASCTEC_I2C_SCL_TIME)
endif
ifeq ($(ARCH), stm32)
ap.CFLAGS += -DACTUATORS_ASCTEC_I2C_DEV=i2c1
ap.CFLAGS += -DUSE_I2C1
endif
ap.CFLAGS += $(ACTUATORS_ASCTEC_CFLAGS)
ap.srcs += $(ACTUATORS_ASCTEC_SRCS)
# Simulator
@@ -7,17 +7,37 @@
#
$(TARGET).CFLAGS += -DACTUATORS
ap.srcs += subsystems/actuators/actuators_asctec_v2.c
ACTUATORS_ASCTEC_SRCS = subsystems/actuators/actuators_asctec_v2.c
# set default i2c device if not already configured
ifeq ($(ARCH), lpc21)
ACTUATORS_ASCTEC_V2_I2C_DEV ?= i2c0
else ifeq ($(ARCH), stm32)
ACTUATORS_ASCTEC_V2_I2C_DEV ?= i2c1
endif
ifndef ACTUATORS_ASCTEC_V2_I2C_DEV
$(error Error: ACTUATORS_ASCTEC_V2_I2C_DEV not configured!)
endif
# convert i2cx to upper/lower case
ACTUATORS_ASCTEC_V2_I2C_DEV_UPPER=$(shell echo $(ACTUATORS_ASCTEC_V2_I2C_DEV) | tr a-z A-Z)
ACTUATORS_ASCTEC_V2_I2C_DEV_LOWER=$(shell echo $(ACTUATORS_ASCTEC_V2_I2C_DEV) | tr A-Z a-z)
ACTUATORS_ASCTEC_V2_CFLAGS += -DACTUATORS_ASCTEC_V2_I2C_DEV=$(ACTUATORS_ASCTEC_V2_I2C_DEV_LOWER)
ACTUATORS_ASCTEC_V2_CFLAGS += -DUSE_$(ACTUATORS_ASCTEC_V2_I2C_DEV_UPPER)
ifeq ($(ARCH), lpc21)
ap.CFLAGS += -DACTUATORS_ASCTEC_V2_I2C_DEV=i2c0
ap.CFLAGS += -DUSE_I2C0 -DI2C0_SCLL=150 -DI2C0_SCLH=150
# set default i2c timing if not already configured
ACTUATORS_ASCTEC_V2_I2C_SCL_TIME ?= 150
ACTUATORS_ASCTEC_V2_CFLAGS += -D$(ACTUATORS_ASCTEC_V2_I2C_DEV_UPPER)_SCLL=$(ACTUATORS_ASCTEC_V2_I2C_SCL_TIME)
ACTUATORS_ASCTEC_V2_CFLAGS += -D$(ACTUATORS_ASCTEC_V2_I2C_DEV_UPPER)_SCLH=$(ACTUATORS_ASCTEC_V2_I2C_SCL_TIME)
endif
ifeq ($(ARCH), stm32)
ap.CFLAGS += -DACTUATORS_ASCTEC_V2_I2C_DEV=i2c1
ap.CFLAGS += -DUSE_I2C1
endif
ap.CFLAGS += $(ACTUATORS_ASCTEC_V2_CFLAGS)
ap.srcs += $(ACTUATORS_ASCTEC_V2_SRCS)
# Simulator
@@ -22,23 +22,37 @@
# max command = 255
$(TARGET).CFLAGS += -DACTUATORS
ap.srcs += subsystems/actuators/actuators_mkk.c
ACTUATORS_MKK_SRCS = subsystems/actuators/actuators_mkk.c
ifeq ($(ARCH), lpc21)
# set default i2c timing if not already configured
ifeq ($(MKK_I2C_SCL_TIME), )
MKK_I2C_SCL_TIME=150
endif
ap.CFLAGS += -DACTUATORS_MKK_I2C_DEV=i2c0
ap.CFLAGS += -DUSE_I2C0 -DI2C0_SCLL=$(MKK_I2C_SCL_TIME) -DI2C0_SCLH=$(MKK_I2C_SCL_TIME)
ACTUATORS_MKK_I2C_DEV ?= i2c0
else ifeq ($(ARCH), stm32)
ap.CFLAGS += -DACTUATORS_MKK_I2C_DEV=i2c1
ap.CFLAGS += -DUSE_I2C1
ACTUATORS_MKK_I2C_DEV ?= i2c1
endif
ifndef ACTUATORS_MKK_I2C_DEV
$(error Error: ACTUATORS_MKK_I2C_DEV not configured!)
endif
# convert i2cx to upper/lower case
ACTUATORS_MKK_I2C_DEV_UPPER=$(shell echo $(ACTUATORS_MKK_I2C_DEV) | tr a-z A-Z)
ACTUATORS_MKK_I2C_DEV_LOWER=$(shell echo $(ACTUATORS_MKK_I2C_DEV) | tr A-Z a-z)
ACTUATORS_MKK_CFLAGS += -DACTUATORS_MKK_I2C_DEV=$(ACTUATORS_MKK_I2C_DEV_LOWER)
ACTUATORS_MKK_CFLAGS += -DUSE_$(ACTUATORS_MKK_I2C_DEV_UPPER)
ifeq ($(ARCH), lpc21)
# set default i2c timing if not already configured
ACTUATORS_MKK_I2C_SCL_TIME ?= 150
ACTUATORS_MKK_CFLAGS += -D$(ACTUATORS_MKK_I2C_DEV_UPPER)_SCLL=$(ACTUATORS_MKK_I2C_SCL_TIME)
ACTUATORS_MKK_CFLAGS += -D$(ACTUATORS_MKK_I2C_DEV_UPPER)_SCLH=$(ACTUATORS_MKK_I2C_SCL_TIME)
endif
ap.CFLAGS += $(ACTUATORS_MKK_CFLAGS)
ap.srcs += $(ACTUATORS_MKK_SRCS)
# Simulator
nps.srcs += subsystems/actuators/actuators_mkk.c
nps.CFLAGS += -DUSE_I2C0 -DACTUATORS_MKK_I2C_DEV=i2c0
@@ -22,23 +22,36 @@
# max command = 2047
$(TARGET).CFLAGS += -DACTUATORS
ap.srcs += subsystems/actuators/actuators_mkk_v2.c
ACTUATORS_MKK_V2_SRCS = subsystems/actuators/actuators_mkk_v2.c
ifeq ($(ARCH), lpc21)
# set default i2c timing if not already configured
ifeq ($(MKK_V2_I2C_SCL_TIME), )
MKK_V2_I2C2_SCL_TIME=150
endif
ap.CFLAGS += -DACTUATORS_MKK_V2_I2C_DEV=i2c0
ap.CFLAGS += -DUSE_I2C0 -DI2C0_SCLL=$(MKK_V2_I2C_SCL_TIME) -DI2C0_SCLH=$(MKK_V2_I2C_SCL_TIME)
ACTUATORS_MKK_V2_I2C_DEV ?= i2c0
else ifeq ($(ARCH), stm32)
ap.CFLAGS += -DACTUATORS_MKK_V2_I2C_DEV=i2c1
ap.CFLAGS += -DUSE_I2C1
ACTUATORS_MKK_V2_I2C_DEV ?= i2c1
endif
ifndef ACTUATORS_MKK_V2_I2C_DEV
$(error Error: ACTUATORS_MKK_V2_I2C_DEV not configured!)
endif
# convert i2cx to upper/lower case
ACTUATORS_MKK_V2_I2C_DEV_UPPER=$(shell echo $(ACTUATORS_MKK_V2_I2C_DEV) | tr a-z A-Z)
ACTUATORS_MKK_V2_I2C_DEV_LOWER=$(shell echo $(ACTUATORS_MKK_V2_I2C_DEV) | tr A-Z a-z)
ACTUATORS_MKK_V2_CFLAGS += -DACTUATORS_MKK_V2_I2C_DEV=$(ACTUATORS_MKK_V2_I2C_DEV_LOWER)
ACTUATORS_MKK_V2_CFLAGS += -DUSE_$(ACTUATORS_MKK_V2_I2C_DEV_UPPER)
ifeq ($(ARCH), lpc21)
# set default i2c timing if not already configured
ACTUATORS_MKK_V2_I2C_SCL_TIME ?= 150
ACTUATORS_MKK_V2_CFLAGS += -D$(ACTUATORS_MKK_V2_I2C_DEV_UPPER)_SCLL=$(ACTUATORS_MKK_V2_I2C_SCL_TIME)
ACTUATORS_MKK_V2_CFLAGS += -D$(ACTUATORS_MKK_V2_I2C_DEV_UPPER)_SCLH=$(ACTUATORS_MKK_V2_I2C_SCL_TIME)
endif
ap.CFLAGS += $(ACTUATORS_MKK_V2_CFLAGS)
ap.srcs += $(ACTUATORS_MKK_V2_SRCS)
# Simulator:
nps.srcs += subsystems/actuators/actuators_mkk_v2.c
nps.CFLAGS += -DUSE_I2C0 -DACTUATORS_MKK_V2_I2C_DEV=i2c0
@@ -17,20 +17,39 @@
# command_laws section to map motor_mixing commands to servos
#
# set default i2c timing if not already configured
ifeq ($(SKIRON_I2C_SCL_TIME), )
SKIRON_I2C_SCL_TIME=150
$(TARGET).CFLAGS += -DACTUATORS
ACTUATORS_SKIRON_SRCS = subsystems/actuators/actuators_skiron.c
# set default i2c device if not already configured
ifeq ($(ARCH), lpc21)
ACTUATORS_SKIRON_I2C_DEV ?= i2c0
else ifeq ($(ARCH), stm32)
ACTUATORS_SKIRON_I2C_DEV ?= i2c1
endif
$(TARGET).CFLAGS += -DACTUATORS
ap.srcs += subsystems/actuators/actuators_skiron.c
ifndef ACTUATORS_SKIRON_I2C_DEV
$(error Error: ACTUATORS_SKIRON_I2C_DEV not configured!)
endif
# convert i2cx to upper/lower case
ACTUATORS_SKIRON_I2C_DEV_UPPER=$(shell echo $(ACTUATORS_SKIRON_I2C_DEV) | tr a-z A-Z)
ACTUATORS_SKIRON_I2C_DEV_LOWER=$(shell echo $(ACTUATORS_SKIRON_I2C_DEV) | tr A-Z a-z)
ACTUATORS_SKIRON_CFLAGS += -DACTUATORS_SKIRON_I2C_DEV=$(ACTUATORS_SKIRON_I2C_DEV_LOWER)
ACTUATORS_SKIRON_CFLAGS += -DUSE_$(ACTUATORS_SKIRON_I2C_DEV_UPPER)
ifeq ($(ARCH), lpc21)
ap.CFLAGS += -DACTUATORS_SKIRON_I2C_DEV=i2c0
ap.CFLAGS += -DUSE_I2C0 -DI2C0_SCLL=$(SKIRON_I2C_SCL_TIME) -DI2C0_SCLH=$(SKIRON_I2C_SCL_TIME)
# set default i2c timing if not already configured
ACTUATORS_SKIRON_I2C_SCL_TIME ?= 150
ACTUATORS_SKIRON_CFLAGS += -D$(ACTUATORS_SKIRON_I2C_DEV_UPPER)_SCLL=$(ACTUATORS_SKIRON_I2C_SCL_TIME)
ACTUATORS_SKIRON_CFLAGS += -D$(ACTUATORS_SKIRON_I2C_DEV_UPPER)_SCLH=$(ACTUATORS_SKIRON_I2C_SCL_TIME)
endif
ap.CFLAGS += $(ACTUATORS_SKIRON_CFLAGS)
ap.srcs += $(ACTUATORS_SKIRON_SRCS)
# Simulator
nps.srcs += subsystems/actuators/actuators_skiron.c
nps.CFLAGS += -DUSE_I2C0 -DI2C0_SCLL=$(SKIRON_I2C_SCL_TIME) -DI2C0_SCLH=$(SKIRON_I2C_SCL_TIME) -DACTUATORS_SKIRON_I2C_DEV=i2c0
nps.CFLAGS += -DUSE_I2C0 -DACTUATORS_SKIRON_I2C_DEV=i2c0
@@ -7,14 +7,29 @@ IMU_ASPIRIN2_SRCS = $(SRC_SUBSYSTEMS)/imu.c \
$(SRC_MODULES)/sensors/imu_aspirin2.c
IMU_ASPIRIN2_CFLAGS += -DUSE_I2C
ifeq ($(ARCH), stm32)
IMU_ASPIRIN2_CFLAGS += -DUSE_I2C2
IMU_ASPIRIN2_CFLAGS += -DPPZUAVIMU_I2C_DEV=i2c2
else ifeq ($(ARCH), lpc21)
IMU_ASPIRIN2_CFLAGS += -DUSE_I2C0
IMU_ASPIRIN2_CFLAGS += -DPPZUAVIMU_I2C_DEV=i2c0
# set default i2c bus
ifeq ($(ARCH), lpc21)
IMU_ASPIRIN2_I2C_DEV ?= i2c0
else ifeq ($(ARCH), stm32)
IMU_ASPIRIN2_I2C_DEV ?= i2c2
endif
ifndef IMU_ASPIRIN2_I2C_DEV
$(error Error: IMU_ASPIRIN2_I2C_DEV not configured!)
endif
# convert i2cx to upper/lower case
IMU_ASPIRIN2_I2C_DEV_UPPER=$(shell echo $(IMU_ASPIRIN2_I2C_DEV) | tr a-z A-Z)
IMU_ASPIRIN2_I2C_DEV_LOWER=$(shell echo $(IMU_ASPIRIN2_I2C_DEV) | tr A-Z a-z)
IMU_ASPIRIN2_CFLAGS += -DIMU_ASPIRIN2_I2C_DEV=$(IMU_ASPIRIN2_I2C_DEV_LOWER)
IMU_ASPIRIN2_CFLAGS += -DUSE_$(IMU_ASPIRIN2_I2C_DEV_UPPER)
ap.CFLAGS += $(IMU_ASPIRIN2_CFLAGS)
ap.srcs += $(IMU_ASPIRIN2_SRCS)
#
# NPS simulator
#
include $(CFG_SHARED)/imu_nps.makefile
@@ -44,29 +44,46 @@ IMU_ASPIRIN_SRCS += peripherals/itg3200.c
#IMU_ASPIRIN_SRCS += peripherals/hmc5843.c $(SRC_ARCH)/peripherals/hmc5843_arch.c
IMU_ASPIRIN_SRCS += peripherals/hmc58xx.c
# set default i2c bus
ifeq ($(ARCH), lpc21)
IMU_ASPIRIN_CFLAGS += -DUSE_SPI_SLAVE0
IMU_ASPIRIN_CFLAGS += -DASPIRIN_SPI_SLAVE_IDX=SPI_SLAVE0
IMU_ASPIRIN_CFLAGS += -DASPIRIN_SPI_DEV=spi1
IMU_ASPIRIN_CFLAGS += -DUSE_SPI1
ifndef ASPIRIN_I2C_DEV
ASPIRIN_I2C_DEV=i2c0
endif
ASPIRIN_I2C_DEV ?= i2c0
else ifeq ($(ARCH), stm32)
IMU_ASPIRIN_CFLAGS += -DUSE_SPI2
ASPIRIN_I2C_DEV ?= i2c2
endif
ifndef ASPIRIN_I2C_DEV
$(error Error: ASPIRIN_I2C_DEV not configured!)
endif
# convert i2cx to upper/lower case
ASPIRIN_I2C_DEV_UPPER=$(shell echo $(ASPIRIN_I2C_DEV) | tr a-z A-Z)
ASPIRIN_I2C_DEV_LOWER=$(shell echo $(ASPIRIN_I2C_DEV) | tr A-Z a-z)
IMU_ASPIRIN_CFLAGS += -DASPIRIN_I2C_DEV=$(ASPIRIN_I2C_DEV_LOWER)
IMU_ASPIRIN_CFLAGS += -DUSE_$(ASPIRIN_I2C_DEV_UPPER)
# set default SPI device and slave index
ifeq ($(ARCH), lpc21)
ASPIRIN_SPI_DEV ?= spi1
ASPIRIN_SPI_SLAVE_IDX ?= SPI_SLAVE0
else ifeq ($(ARCH), stm32)
ASPIRIN_SPI_DEV ?= spi2
# Slave select configuration
# SLAVE2 is on PB12 (NSS) (ADXL345 CS)
IMU_ASPIRIN_CFLAGS += -DUSE_SPI_SLAVE2
ifndef ASPIRIN_I2C_DEV
ASPIRIN_I2C_DEV=i2c2
endif
ASPIRIN_SPI_SLAVE_IDX ?= SPI_SLAVE2
endif
# convert i2cx to upper case
ASPIRIN_I2C_DEV_UPPER=$(shell echo $(ASPIRIN_I2C_DEV) | tr a-z A-Z)
# convert spix to upper/lower case
ASPIRIN_SPI_DEV_UPPER=$(shell echo $(ASPIRIN_SPI_DEV) | tr a-z A-Z)
ASPIRIN_SPI_DEV_LOWER=$(shell echo $(ASPIRIN_SPI_DEV) | tr A-Z a-z)
IMU_ASPIRIN_CFLAGS += -DASPIRIN_SPI_DEV=$(ASPIRIN_SPI_DEV_LOWER)
IMU_ASPIRIN_CFLAGS += -DUSE_$(ASPIRIN_SPI_DEV_UPPER)
IMU_ASPIRIN_CFLAGS += -DASPIRIN_SPI_SLAVE_IDX=$(ASPIRIN_SPI_SLAVE_IDX)
IMU_ASPIRIN_CFLAGS += -DUSE_$(ASPIRIN_SPI_SLAVE_IDX)
IMU_ASPIRIN_CFLAGS += -DASPIRIN_I2C_DEV=$(ASPIRIN_I2C_DEV)
IMU_ASPIRIN_CFLAGS += -DUSE_$(ASPIRIN_I2C_DEV_UPPER)
#
# NPS simulator
@@ -38,19 +38,24 @@ IMU_ASPIRIN_SRCS += peripherals/itg3200.c
# Magnetometer
IMU_ASPIRIN_SRCS += peripherals/hmc58xx.c
# set default i2c bus
ifndef ASPIRIN_I2C_DEV
ifeq ($(ARCH), lpc21)
ASPIRIN_I2C_DEV=i2c0
ASPIRIN_I2C_DEV ?= i2c0
else ifeq ($(ARCH), stm32)
ASPIRIN_I2C_DEV=i2c2
endif
ASPIRIN_I2C_DEV ?= i2c2
endif
# convert i2cx to upper case
ifndef ASPIRIN_I2C_DEV
$(error Error: ASPIRIN_I2C_DEV not configured!)
endif
# convert i2cx to upper/lower case
ASPIRIN_I2C_DEV_UPPER=$(shell echo $(ASPIRIN_I2C_DEV) | tr a-z A-Z)
ASPIRIN_I2C_DEV_LOWER=$(shell echo $(ASPIRIN_I2C_DEV) | tr A-Z a-z)
IMU_ASPIRIN_CFLAGS += -DASPIRIN_I2C_DEV=$(ASPIRIN_I2C_DEV)
IMU_ASPIRIN_CFLAGS += -DASPIRIN_I2C_DEV=$(ASPIRIN_I2C_DEV_LOWER)
IMU_ASPIRIN_CFLAGS += -DUSE_$(ASPIRIN_I2C_DEV_UPPER)
include $(CFG_SHARED)/imu_nps.makefile
@@ -53,18 +53,21 @@ IMU_DROTEK_2_SRCS += peripherals/hmc58xx.c
# set default i2c bus
ifndef DROTEK_2_I2C_DEV
ifeq ($(ARCH), lpc21)
DROTEK_2_I2C_DEV=i2c0
DROTEK_2_I2C_DEV ?= i2c0
else ifeq ($(ARCH), stm32)
DROTEK_2_I2C_DEV=i2c2
endif
DROTEK_2_I2C_DEV ?= i2c2
endif
# convert i2cx to upper case
ifndef DROTEK_2_I2C_DEV
$(error Error: DROTEK_2_I2C_DEV not configured!)
endif
# convert i2cx to upper/lower case
DROTEK_2_I2C_DEV_UPPER=$(shell echo $(DROTEK_2_I2C_DEV) | tr a-z A-Z)
DROTEK_2_I2C_DEV_LOWER=$(shell echo $(DROTEK_2_I2C_DEV) | tr A-Z a-z)
IMU_DROTEK_2_CFLAGS += -DDROTEK_2_I2C_DEV=$(DROTEK_2_I2C_DEV)
IMU_DROTEK_2_CFLAGS += -DDROTEK_2_I2C_DEV=$(DROTEK_2_I2C_DEV_LOWER)
IMU_DROTEK_2_CFLAGS += -DUSE_$(DROTEK_2_I2C_DEV_UPPER)
@@ -23,19 +23,20 @@ IMU_GL1_SRCS += peripherals/l3g4200.c
IMU_GL1_SRCS += peripherals/hmc58xx.c
ifeq ($(ARCH), lpc21)
ifndef GL1_I2C_DEV
GL1_I2C_DEV=i2c0
endif
GL1_I2C_DEV ?= i2c0
else ifeq ($(ARCH), stm32)
GL1_I2C_DEV ?= i2c2
endif
ifndef GL1_I2C_DEV
GL1_I2C_DEV=i2c2
endif
$(error Error: GL1_I2C_DEV not configured!)
endif
# convert i2cx to upper case
# convert i2cx to upper/lower case
GL1_I2C_DEV_UPPER=$(shell echo $(GL1_I2C_DEV) | tr a-z A-Z)
GL1_I2C_DEV_LOWER=$(shell echo $(GL1_I2C_DEV) | tr A-Z a-z)
IMU_GL1_CFLAGS += -DGL1_I2C_DEV=$(GL1_I2C_DEV)
IMU_GL1_CFLAGS += -DGL1_I2C_DEV=$(GL1_I2C_DEV_LOWER)
IMU_GL1_CFLAGS += -DUSE_$(GL1_I2C_DEV_UPPER)
# Keep CFLAGS/Srcs for imu in separate expression so we can assign it to other targets