diff --git a/conf/airframes/examples/cube_orange.xml b/conf/airframes/examples/cube_orange.xml index c4aecd8b08..67702f9ba0 100644 --- a/conf/airframes/examples/cube_orange.xml +++ b/conf/airframes/examples/cube_orange.xml @@ -24,8 +24,8 @@ - - + + diff --git a/conf/airframes/examples/microjet_lisa_m_xsens.xml b/conf/airframes/examples/microjet_lisa_m_xsens.xml index 94ded44d88..d0b43bfdc1 100644 --- a/conf/airframes/examples/microjet_lisa_m_xsens.xml +++ b/conf/airframes/examples/microjet_lisa_m_xsens.xml @@ -15,7 +15,9 @@ - + + + diff --git a/conf/modules/actuators_ppm.xml b/conf/modules/actuators_ppm.xml deleted file mode 100644 index b87a67ec50..0000000000 --- a/conf/modules/actuators_ppm.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - Actuators Driver using PPM output - - This is used in the case where you want to directly drive a receiver which has a microcontroller - to do the decoding and driving of the servos (not a 4015 or 4017 decoder chip). - The PPM is output on the SERV_CLK pin. The PPM frame rate, pulse width, and number of channels - Can be adjusted in the "servos_ppm_hw.h" file to suit your particular receiver. - - - - actuators - actuators - -
- -
- - - - -
- diff --git a/conf/modules/radio_control_ppm.xml b/conf/modules/radio_control_ppm.xml index 4ec237e601..9a6a1adf60 100644 --- a/conf/modules/radio_control_ppm.xml +++ b/conf/modules/radio_control_ppm.xml @@ -22,6 +22,7 @@ + diff --git a/sw/airborne/arch/chibios/mcu_periph/i2c_arch.c b/sw/airborne/arch/chibios/mcu_periph/i2c_arch.c index 36eca2ce06..731e218365 100644 --- a/sw/airborne/arch/chibios/mcu_periph/i2c_arch.c +++ b/sw/airborne/arch/chibios/mcu_periph/i2c_arch.c @@ -63,6 +63,8 @@ struct i2c_init { semaphore_t sem; I2CConfig cfg; struct i2c_errors errors; + ioline_t line_sda; + ioline_t line_scl; }; @@ -71,6 +73,44 @@ static void handle_i2c_thd(struct i2c_periph *p); // Timeout for I2C transaction static const systime_t tmo = TIME_US2I(10000000 / PERIODIC_FREQUENCY); +static iomode_t palReadLineMode(ioline_t line) +{ + ioportid_t port = PAL_PORT(line); + uint8_t pad = PAL_PAD(line); + iomode_t ret = 0; + ret |= (port->MODER >> (pad*2)) & 0x3; + ret |= ((port->OTYPER >> pad)&1) << 2; + ret |= ((port->OSPEEDR >> (pad*2))&3) << 3; + ret |= ((port->PUPDR >> (pad*2))&3) << 5; + if (pad < 8) { + ret |= ((port->AFRL >> (pad*4))&0xF) << 7; + } else { + ret |= ((port->AFRH >> ((pad-8)*4))&0xF) << 7; + } + return ret; +} + +/* Clear a stuck bus */ +static void i2c_clear_bus(struct i2c_init *i) +{ + const iomode_t mode_saved = palReadLineMode(i->line_scl); + palSetLineMode(i->line_scl, PAL_MODE_OUTPUT_PUSHPULL); + for(uint8_t j = 0; j < 20; j++) { + palToggleLine(i->line_scl); + chThdSleepMicroseconds(10); + } + palSetLineMode(i->line_scl, mode_saved); +} + +static uint8_t i2c_read_sda(struct i2c_init *i) +{ + const iomode_t mode_saved = palReadLineMode(i->line_sda); + palSetLineMode(i->line_sda, PAL_MODE_INPUT); + uint8_t ret = palReadLine(i->line_sda); + palSetLineMode(i->line_sda, mode_saved); + return ret; +} + /** * main thread function * @@ -152,8 +192,13 @@ static void handle_i2c_thd(struct i2c_periph *p) break; case MSG_TIMEOUT: //if a timeout occurred before operation end - // mark as failed and restart + // mark as failed t->status = I2CTransFailed; + p->errors->unexpected_event_cnt++; + // Clear the bus if kept busy + if(i2c_read_sda(i) == 0) { + i2c_clear_bus(i); + } i2cStart((I2CDriver *)p->reg_addr, &i->cfg); break; case MSG_RESET: @@ -211,7 +256,9 @@ PRINT_CONFIG_VAR(I2C1_CLOCK_SPEED) static IN_DMA_SECTION(struct i2c_init i2c1_init_s) = { .name = "i2c1", .sem = __SEMAPHORE_DATA(i2c1_init_s.sem, 0), - .cfg = I2C1_CFG_DEF + .cfg = I2C1_CFG_DEF, + .line_sda = LINE_I2C1_SDA, + .line_scl = LINE_I2C1_SCL }; static THD_WORKING_AREA(wa_thd_i2c1, I2C_THREAD_STACK_SIZE); @@ -240,7 +287,9 @@ PRINT_CONFIG_VAR(I2C2_CLOCK_SPEED) static IN_DMA_SECTION(struct i2c_init i2c2_init_s) = { .name = "i2c2", .sem = __SEMAPHORE_DATA(i2c2_init_s.sem, 0), - .cfg = I2C2_CFG_DEF + .cfg = I2C2_CFG_DEF, + .line_sda = LINE_I2C2_SDA, + .line_scl = LINE_I2C2_SCL }; static THD_WORKING_AREA(wa_thd_i2c2, I2C_THREAD_STACK_SIZE); @@ -269,7 +318,9 @@ PRINT_CONFIG_VAR(I2C3_CLOCK_SPEED) static IN_DMA_SECTION(struct i2c_init i2c3_init_s) = { .name = "i2c3", .sem = __SEMAPHORE_DATA(i2c3_init_s.sem, 0), - .cfg = I2C3_CFG_DEF + .cfg = I2C3_CFG_DEF, + .line_sda = LINE_I2C3_SDA, + .line_scl = LINE_I2C3_SCL }; static THD_WORKING_AREA(wa_thd_i2c3, I2C_THREAD_STACK_SIZE); @@ -298,7 +349,9 @@ PRINT_CONFIG_VAR(I2C4_CLOCK_SPEED) static IN_DMA_SECTION(struct i2c_init i2c4_init_s) = { .name = "i2c4", .sem = __SEMAPHORE_DATA(i2c4_init_s.sem, 0), - .cfg = I2C4_CFG_DEF + .cfg = I2C4_CFG_DEF, + .line_sda = LINE_I2C4_SDA, + .line_scl = LINE_I2C4_SCL }; static THD_WORKING_AREA(wa_thd_i2c4, I2C_THREAD_STACK_SIZE); diff --git a/sw/airborne/arch/sim/modules/actuators/servos_ppm_hw.h b/sw/airborne/arch/sim/modules/actuators/servos_ppm_hw.h deleted file mode 100644 index 63f8d5eeda..0000000000 --- a/sw/airborne/arch/sim/modules/actuators/servos_ppm_hw.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2012 Gautier Hattenberger - * - * This file is part of paparazzi. - * - * paparazzi is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * paparazzi 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with paparazzi; see the file COPYING. If not, write to - * the Free Software Foundation, 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - */ - -#ifndef SERVOS_PPM_HW_H -#define SERVOS_PPM_HW_H - -#define SERVOS_TICS_OF_USEC(_v) (_v) - -#define ActuatorPpmSet(_i, _v) {} -#define ActuatorsPpmInit() {} -#define ActuatorsPpmCommit() {} - -#endif - - diff --git a/sw/airborne/boards/apogee/chibios/v1.0/mcuconf.h b/sw/airborne/boards/apogee/chibios/v1.0/mcuconf.h index b5e0f477f6..bbc4abce03 100644 --- a/sw/airborne/boards/apogee/chibios/v1.0/mcuconf.h +++ b/sw/airborne/boards/apogee/chibios/v1.0/mcuconf.h @@ -201,7 +201,8 @@ #else #define STM32_I2C_USE_I2C3 FALSE #endif -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) diff --git a/sw/airborne/boards/chimera/chibios/v1.0/mcuconf.h b/sw/airborne/boards/chimera/chibios/v1.0/mcuconf.h index dd52dcef29..93a7f7a587 100644 --- a/sw/airborne/boards/chimera/chibios/v1.0/mcuconf.h +++ b/sw/airborne/boards/chimera/chibios/v1.0/mcuconf.h @@ -240,7 +240,8 @@ #endif #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_USE_I2C4 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) diff --git a/sw/airborne/boards/crazyflie/chibios/v2.1/mcuconf.h b/sw/airborne/boards/crazyflie/chibios/v2.1/mcuconf.h index 0d92f7e437..20f00d65d8 100644 --- a/sw/airborne/boards/crazyflie/chibios/v2.1/mcuconf.h +++ b/sw/airborne/boards/crazyflie/chibios/v2.1/mcuconf.h @@ -189,7 +189,8 @@ #else #define STM32_I2C_USE_I2C3 FALSE #endif -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) diff --git a/sw/airborne/boards/cube/orange/mcuconf.h b/sw/airborne/boards/cube/orange/mcuconf.h index 96a2bbfb0e..91ad5461ac 100644 --- a/sw/airborne/boards/cube/orange/mcuconf.h +++ b/sw/airborne/boards/cube/orange/mcuconf.h @@ -311,7 +311,8 @@ #else #define STM32_I2C_USE_I2C4 FALSE #endif -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY diff --git a/sw/airborne/boards/holybro/kakute_f7/mcuconf.h b/sw/airborne/boards/holybro/kakute_f7/mcuconf.h index 90eba6a6eb..7a6f73a8f2 100644 --- a/sw/airborne/boards/holybro/kakute_f7/mcuconf.h +++ b/sw/airborne/boards/holybro/kakute_f7/mcuconf.h @@ -218,7 +218,8 @@ #define STM32_I2C_USE_I2C2 FALSE #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_USE_I2C4 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) diff --git a/sw/airborne/boards/lia/chibios/v1.1/mcuconf.h b/sw/airborne/boards/lia/chibios/v1.1/mcuconf.h index b5ee668eff..98957d8d5a 100644 --- a/sw/airborne/boards/lia/chibios/v1.1/mcuconf.h +++ b/sw/airborne/boards/lia/chibios/v1.1/mcuconf.h @@ -121,7 +121,8 @@ #else #define STM32_I2C_USE_I2C2 FALSE #endif -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_IRQ_PRIORITY 5 #define STM32_I2C_I2C2_IRQ_PRIORITY 5 #define STM32_I2C_I2C1_DMA_PRIORITY 3 diff --git a/sw/airborne/boards/lisa_m_common.h b/sw/airborne/boards/lisa_m_common.h index 133c8c1938..2cf0735638 100644 --- a/sw/airborne/boards/lisa_m_common.h +++ b/sw/airborne/boards/lisa_m_common.h @@ -1,6 +1,8 @@ #ifndef CONFIG_LISA_M_COMMON_H #define CONFIG_LISA_M_COMMON_H +#include "std.h" + /* SPI slave mapping */ #define SPI_SELECT_SLAVE0_PORT GPIOA @@ -105,7 +107,7 @@ * * Default is PPM config 2, input on GPIO01 (Servo pin 6) */ - +#if USE_PPM #ifndef PPM_CONFIG #define PPM_CONFIG 2 #endif @@ -147,6 +149,7 @@ #error "Unknown PPM config" #endif // PPM_CONFIG +#endif // USE_PPM /* * ADC @@ -255,7 +258,7 @@ #endif #endif -#if PPM_CONFIG == 2 && USE_PWM6 == 1 +#if (USE_PPM && PPM_CONFIG == 2) && USE_PWM6 == 1 #warning "You cannot USE_PWM6 and SERVO6 (or equivalent) at the same time" #endif diff --git a/sw/airborne/boards/lisa_mx/chibios/v2.1/mcuconf.h b/sw/airborne/boards/lisa_mx/chibios/v2.1/mcuconf.h index f5a7c28a0e..dcf313a4aa 100644 --- a/sw/airborne/boards/lisa_mx/chibios/v2.1/mcuconf.h +++ b/sw/airborne/boards/lisa_mx/chibios/v2.1/mcuconf.h @@ -209,7 +209,8 @@ #else #define STM32_I2C_USE_I2C3 FALSE #endif -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) diff --git a/sw/airborne/boards/lisa_mx_common.h b/sw/airborne/boards/lisa_mx_common.h index 822eba3a9c..d9fd1f18ec 100644 --- a/sw/airborne/boards/lisa_mx_common.h +++ b/sw/airborne/boards/lisa_mx_common.h @@ -23,6 +23,8 @@ #ifndef CONFIG_LISA_MX_COMMON_H #define CONFIG_LISA_MX_COMMON_H +#include "std.h" + #define BOARD_LISA_MX /* Lisa/M has a 12MHz external clock and 168MHz internal. */ @@ -218,7 +220,7 @@ * * Default is PPM config 2, input on GPIOA1 (Servo pin 6) */ - +#if USE_PPM #ifndef PPM_CONFIG #define PPM_CONFIG 2 #endif @@ -260,6 +262,7 @@ #error "Unknown PPM config" #endif // PPM_CONFIG +#endif // USE_PPM /* SPI */ #define SPI1_GPIO_AF GPIO_AF5 @@ -424,7 +427,7 @@ #define USE_PWM6 1 #endif -#if PPM_CONFIG == 2 && USE_PWM6 == 1 +#if (USE_PPM && PPM_CONFIG == 2) && USE_PWM6 == 1 #warning "You cannot USE_PWM6 and SERVO6 (or equivalent) at the same time" #endif diff --git a/sw/airborne/boards/mateksys/F765-WING/mcuconf.h b/sw/airborne/boards/mateksys/F765-WING/mcuconf.h index 026314f022..276b2c217a 100644 --- a/sw/airborne/boards/mateksys/F765-WING/mcuconf.h +++ b/sw/airborne/boards/mateksys/F765-WING/mcuconf.h @@ -228,7 +228,8 @@ #endif #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_USE_I2C4 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) diff --git a/sw/airborne/boards/nucleo/144_f767zi/mcuconf.h b/sw/airborne/boards/nucleo/144_f767zi/mcuconf.h index 6d4b289e7a..c8af795252 100644 --- a/sw/airborne/boards/nucleo/144_f767zi/mcuconf.h +++ b/sw/airborne/boards/nucleo/144_f767zi/mcuconf.h @@ -228,7 +228,8 @@ #else #define STM32_I2C_USE_I2C4 FALSE #endif -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) diff --git a/sw/airborne/boards/px4fmu/chibios/v2.4/mcuconf.h b/sw/airborne/boards/px4fmu/chibios/v2.4/mcuconf.h index 4c88ec3b58..fafd76acf8 100644 --- a/sw/airborne/boards/px4fmu/chibios/v2.4/mcuconf.h +++ b/sw/airborne/boards/px4fmu/chibios/v2.4/mcuconf.h @@ -201,7 +201,8 @@ #else #define STM32_I2C_USE_I2C3 FALSE #endif -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) diff --git a/sw/airborne/boards/px4fmu/chibios/v4.0/mcuconf.h b/sw/airborne/boards/px4fmu/chibios/v4.0/mcuconf.h index 006da6cc3b..d6c0918d7a 100644 --- a/sw/airborne/boards/px4fmu/chibios/v4.0/mcuconf.h +++ b/sw/airborne/boards/px4fmu/chibios/v4.0/mcuconf.h @@ -203,7 +203,8 @@ #else #define STM32_I2C_USE_I2C3 FALSE #endif -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) diff --git a/sw/airborne/boards/px4fmu/chibios/v5.0/mcuconf.h b/sw/airborne/boards/px4fmu/chibios/v5.0/mcuconf.h index cf8bebc7c2..7612abf79a 100644 --- a/sw/airborne/boards/px4fmu/chibios/v5.0/mcuconf.h +++ b/sw/airborne/boards/px4fmu/chibios/v5.0/mcuconf.h @@ -236,7 +236,8 @@ #else #define STM32_I2C_USE_I2C4 FALSE #endif -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) diff --git a/sw/airborne/boards/tawaki/chibios/common/mcuconf.h b/sw/airborne/boards/tawaki/chibios/common/mcuconf.h index ba1e99f7b3..fc4d8db7a9 100644 --- a/sw/airborne/boards/tawaki/chibios/common/mcuconf.h +++ b/sw/airborne/boards/tawaki/chibios/common/mcuconf.h @@ -228,7 +228,8 @@ #else #define STM32_I2C_USE_I2C4 FALSE #endif -#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_ISR_LIMIT 6 +#define STM32_I2C_BUSY_TIMEOUT 0 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) diff --git a/sw/airborne/boards/tawaki/chibios/v1.0/board.h b/sw/airborne/boards/tawaki/chibios/v1.0/board.h index b024f1d067..bed1f76c6b 100644 --- a/sw/airborne/boards/tawaki/chibios/v1.0/board.h +++ b/sw/airborne/boards/tawaki/chibios/v1.0/board.h @@ -76,8 +76,8 @@ #define SRVB2 7U #define SRVB3 8U #define SRVB4 9U -#define I2C2_SCL_EXTERNAL 10U -#define I2C2_SDA_EXTERNAL 11U +#define I2C2_SCL 10U +#define I2C2_SDA 11U #define SPI2_EXTERNAL_CS 12U #define PB13 13U #define SPI2_EXTERNAL_MISO 14U @@ -112,8 +112,8 @@ #define UART3_RX 9U #define LED4 10U #define PD11 11U -#define I2C4_SCL_EXTERNAL 12U -#define I2C4_SDA_EXTERNAL 13U +#define I2C4_SCL 12U +#define I2C4_SDA 13U #define PD14 14U #define LED1 15U @@ -261,8 +261,8 @@ #define LINE_SRVB2 PAL_LINE(GPIOB, 7U) #define LINE_SRVB3 PAL_LINE(GPIOB, 8U) #define LINE_SRVB4 PAL_LINE(GPIOB, 9U) -#define LINE_I2C2_SCL_EXTERNAL PAL_LINE(GPIOB, 10U) -#define LINE_I2C2_SDA_EXTERNAL PAL_LINE(GPIOB, 11U) +#define LINE_I2C2_SCL PAL_LINE(GPIOB, 10U) +#define LINE_I2C2_SDA PAL_LINE(GPIOB, 11U) #define LINE_SPI2_EXTERNAL_CS PAL_LINE(GPIOB, 12U) #define LINE_SPI2_EXTERNAL_MISO PAL_LINE(GPIOB, 14U) #define LINE_SPI2_EXTERNAL_MOSI PAL_LINE(GPIOB, 15U) @@ -288,8 +288,8 @@ #define LINE_UART3_TX PAL_LINE(GPIOD, 8U) #define LINE_UART3_RX PAL_LINE(GPIOD, 9U) #define LINE_LED4 PAL_LINE(GPIOD, 10U) -#define LINE_I2C4_SCL_EXTERNAL PAL_LINE(GPIOD, 12U) -#define LINE_I2C4_SDA_EXTERNAL PAL_LINE(GPIOD, 13U) +#define LINE_I2C4_SCL PAL_LINE(GPIOD, 12U) +#define LINE_I2C4_SDA PAL_LINE(GPIOD, 13U) #define LINE_LED1 PAL_LINE(GPIOD, 15U) #define LINE_RC1 PAL_LINE(GPIOE, 0U) @@ -441,8 +441,8 @@ PIN_MODE_ALTERNATE(SRVB2) | \ PIN_MODE_ALTERNATE(SRVB3) | \ PIN_MODE_ALTERNATE(SRVB4) | \ - PIN_MODE_ALTERNATE(I2C2_SCL_EXTERNAL) | \ - PIN_MODE_ALTERNATE(I2C2_SDA_EXTERNAL) | \ + PIN_MODE_ALTERNATE(I2C2_SCL) | \ + PIN_MODE_ALTERNATE(I2C2_SDA) | \ PIN_MODE_OUTPUT(SPI2_EXTERNAL_CS) | \ PIN_MODE_INPUT(PB13) | \ PIN_MODE_ALTERNATE(SPI2_EXTERNAL_MISO) | \ @@ -458,8 +458,8 @@ PIN_OTYPE_PUSHPULL(SRVB2) | \ PIN_OTYPE_PUSHPULL(SRVB3) | \ PIN_OTYPE_PUSHPULL(SRVB4) | \ - PIN_OTYPE_OPENDRAIN(I2C2_SCL_EXTERNAL) | \ - PIN_OTYPE_OPENDRAIN(I2C2_SDA_EXTERNAL) | \ + PIN_OTYPE_OPENDRAIN(I2C2_SCL) | \ + PIN_OTYPE_OPENDRAIN(I2C2_SDA) | \ PIN_OTYPE_PUSHPULL(SPI2_EXTERNAL_CS) | \ PIN_OTYPE_PUSHPULL(PB13) | \ PIN_OTYPE_PUSHPULL(SPI2_EXTERNAL_MISO) | \ @@ -475,8 +475,8 @@ PIN_OSPEED_SPEED_HIGH(SRVB2) | \ PIN_OSPEED_SPEED_HIGH(SRVB3) | \ PIN_OSPEED_SPEED_HIGH(SRVB4) | \ - PIN_OSPEED_SPEED_HIGH(I2C2_SCL_EXTERNAL) | \ - PIN_OSPEED_SPEED_HIGH(I2C2_SDA_EXTERNAL) | \ + PIN_OSPEED_SPEED_HIGH(I2C2_SCL) | \ + PIN_OSPEED_SPEED_HIGH(I2C2_SDA) | \ PIN_OSPEED_SPEED_HIGH(SPI2_EXTERNAL_CS) | \ PIN_OSPEED_SPEED_VERYLOW(PB13) | \ PIN_OSPEED_SPEED_HIGH(SPI2_EXTERNAL_MISO) | \ @@ -492,8 +492,8 @@ PIN_PUPDR_FLOATING(SRVB2) | \ PIN_PUPDR_FLOATING(SRVB3) | \ PIN_PUPDR_FLOATING(SRVB4) | \ - PIN_PUPDR_PULLUP(I2C2_SCL_EXTERNAL) | \ - PIN_PUPDR_PULLUP(I2C2_SDA_EXTERNAL) | \ + PIN_PUPDR_PULLUP(I2C2_SCL) | \ + PIN_PUPDR_PULLUP(I2C2_SDA) | \ PIN_PUPDR_FLOATING(SPI2_EXTERNAL_CS) | \ PIN_PUPDR_PULLDOWN(PB13) | \ PIN_PUPDR_FLOATING(SPI2_EXTERNAL_MISO) | \ @@ -509,8 +509,8 @@ PIN_ODR_LEVEL_LOW(SRVB2) | \ PIN_ODR_LEVEL_LOW(SRVB3) | \ PIN_ODR_LEVEL_LOW(SRVB4) | \ - PIN_ODR_LEVEL_HIGH(I2C2_SCL_EXTERNAL) | \ - PIN_ODR_LEVEL_HIGH(I2C2_SDA_EXTERNAL) | \ + PIN_ODR_LEVEL_HIGH(I2C2_SCL) | \ + PIN_ODR_LEVEL_HIGH(I2C2_SDA) | \ PIN_ODR_LEVEL_HIGH(SPI2_EXTERNAL_CS) | \ PIN_ODR_LEVEL_LOW(PB13) | \ PIN_ODR_LEVEL_HIGH(SPI2_EXTERNAL_MISO) | \ @@ -527,8 +527,8 @@ #define VAL_GPIOB_AFRH (PIN_AFIO_AF(SRVB3, 2) | \ PIN_AFIO_AF(SRVB4, 2) | \ - PIN_AFIO_AF(I2C2_SCL_EXTERNAL, 4) | \ - PIN_AFIO_AF(I2C2_SDA_EXTERNAL, 4) | \ + PIN_AFIO_AF(I2C2_SCL, 4) | \ + PIN_AFIO_AF(I2C2_SDA, 4) | \ PIN_AFIO_AF(SPI2_EXTERNAL_CS, 0) | \ PIN_AFIO_AF(PB13, 0) | \ PIN_AFIO_AF(SPI2_EXTERNAL_MISO, 5) | \ @@ -649,8 +649,8 @@ PIN_MODE_ALTERNATE(UART3_RX) | \ PIN_MODE_OUTPUT(LED4) | \ PIN_MODE_INPUT(PD11) | \ - PIN_MODE_ALTERNATE(I2C4_SCL_EXTERNAL) | \ - PIN_MODE_ALTERNATE(I2C4_SDA_EXTERNAL) | \ + PIN_MODE_ALTERNATE(I2C4_SCL) | \ + PIN_MODE_ALTERNATE(I2C4_SDA) | \ PIN_MODE_INPUT(PD14) | \ PIN_MODE_OUTPUT(LED1)) @@ -666,8 +666,8 @@ PIN_OTYPE_PUSHPULL(UART3_RX) | \ PIN_OTYPE_PUSHPULL(LED4) | \ PIN_OTYPE_PUSHPULL(PD11) | \ - PIN_OTYPE_OPENDRAIN(I2C4_SCL_EXTERNAL) | \ - PIN_OTYPE_OPENDRAIN(I2C4_SDA_EXTERNAL) | \ + PIN_OTYPE_OPENDRAIN(I2C4_SCL) | \ + PIN_OTYPE_OPENDRAIN(I2C4_SDA) | \ PIN_OTYPE_PUSHPULL(PD14) | \ PIN_OTYPE_PUSHPULL(LED1)) @@ -683,8 +683,8 @@ PIN_OSPEED_SPEED_HIGH(UART3_RX) | \ PIN_OSPEED_SPEED_VERYLOW(LED4) | \ PIN_OSPEED_SPEED_VERYLOW(PD11) | \ - PIN_OSPEED_SPEED_HIGH(I2C4_SCL_EXTERNAL) | \ - PIN_OSPEED_SPEED_HIGH(I2C4_SDA_EXTERNAL) | \ + PIN_OSPEED_SPEED_HIGH(I2C4_SCL) | \ + PIN_OSPEED_SPEED_HIGH(I2C4_SDA) | \ PIN_OSPEED_SPEED_VERYLOW(PD14) | \ PIN_OSPEED_SPEED_VERYLOW(LED1)) @@ -700,8 +700,8 @@ PIN_PUPDR_FLOATING(UART3_RX) | \ PIN_PUPDR_FLOATING(LED4) | \ PIN_PUPDR_PULLDOWN(PD11) | \ - PIN_PUPDR_PULLUP(I2C4_SCL_EXTERNAL) | \ - PIN_PUPDR_PULLUP(I2C4_SDA_EXTERNAL) | \ + PIN_PUPDR_PULLUP(I2C4_SCL) | \ + PIN_PUPDR_PULLUP(I2C4_SDA) | \ PIN_PUPDR_PULLDOWN(PD14) | \ PIN_PUPDR_FLOATING(LED1)) @@ -717,8 +717,8 @@ PIN_ODR_LEVEL_HIGH(UART3_RX) | \ PIN_ODR_LEVEL_LOW(LED4) | \ PIN_ODR_LEVEL_LOW(PD11) | \ - PIN_ODR_LEVEL_HIGH(I2C4_SCL_EXTERNAL) | \ - PIN_ODR_LEVEL_HIGH(I2C4_SDA_EXTERNAL) | \ + PIN_ODR_LEVEL_HIGH(I2C4_SCL) | \ + PIN_ODR_LEVEL_HIGH(I2C4_SDA) | \ PIN_ODR_LEVEL_LOW(PD14) | \ PIN_ODR_LEVEL_LOW(LED1)) @@ -735,8 +735,8 @@ PIN_AFIO_AF(UART3_RX, 7) | \ PIN_AFIO_AF(LED4, 0) | \ PIN_AFIO_AF(PD11, 0) | \ - PIN_AFIO_AF(I2C4_SCL_EXTERNAL, 4) | \ - PIN_AFIO_AF(I2C4_SDA_EXTERNAL, 4) | \ + PIN_AFIO_AF(I2C4_SCL, 4) | \ + PIN_AFIO_AF(I2C4_SDA, 4) | \ PIN_AFIO_AF(PD14, 0) | \ PIN_AFIO_AF(LED1, 0)) @@ -1483,10 +1483,10 @@ #define AF_LINE_SRVB3 2U #define AF_SRVB4 2U #define AF_LINE_SRVB4 2U -#define AF_I2C2_SCL_EXTERNAL 4U -#define AF_LINE_I2C2_SCL_EXTERNAL 4U -#define AF_I2C2_SDA_EXTERNAL 4U -#define AF_LINE_I2C2_SDA_EXTERNAL 4U +#define AF_I2C2_SCL 4U +#define AF_LINE_I2C2_SCL 4U +#define AF_I2C2_SDA 4U +#define AF_LINE_I2C2_SDA 4U #define AF_SPI2_EXTERNAL_MISO 5U #define AF_LINE_SPI2_EXTERNAL_MISO 5U #define AF_SPI2_EXTERNAL_MOSI 5U @@ -1521,10 +1521,10 @@ #define AF_LINE_UART3_TX 7U #define AF_UART3_RX 7U #define AF_LINE_UART3_RX 7U -#define AF_I2C4_SCL_EXTERNAL 4U -#define AF_LINE_I2C4_SCL_EXTERNAL 4U -#define AF_I2C4_SDA_EXTERNAL 4U -#define AF_LINE_I2C4_SDA_EXTERNAL 4U +#define AF_I2C4_SCL 4U +#define AF_LINE_I2C4_SCL 4U +#define AF_I2C4_SDA 4U +#define AF_LINE_I2C4_SDA 4U #define AF_RC1 8U #define AF_LINE_RC1 8U #define AF_SPI4_INTERNAL_CLK 5U diff --git a/sw/airborne/boards/tawaki/chibios/v1.0/tawaki_1.0.cfg b/sw/airborne/boards/tawaki/chibios/v1.0/tawaki_1.0.cfg index bc9f6da347..7f22319848 100644 --- a/sw/airborne/boards/tawaki/chibios/v1.0/tawaki_1.0.cfg +++ b/sw/airborne/boards/tawaki/chibios/v1.0/tawaki_1.0.cfg @@ -95,8 +95,8 @@ PB06 SRVB1 PWM AF:TIM4_CH1 () PB07 SRVB2 PWM AF:TIM4_CH2 () PB08 SRVB3 PWM AF:TIM4_CH3 () PB09 SRVB4 PWM AF:TIM4_CH4 () -PB10 I2C2_SCL_EXTERNAL I2C AF:I2C2_SCL -PB11 I2C2_SDA_EXTERNAL I2C AF:I2C2_SDA +PB10 I2C2_SCL I2C AF:I2C2_SCL #External +PB11 I2C2_SDA I2C AF:I2C2_SDA #External PB12 SPI2_EXTERNAL_CS OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH PB14 SPI2_EXTERNAL_MISO SPI AF:SPI2_MISO PB15 SPI2_EXTERNAL_MOSI SPI AF:SPI2_MOSI @@ -121,8 +121,8 @@ PD06 UART2_RX UART AF:USART2_RX PD08 UART3_TX UART AF:USART3_TX PD09 UART3_RX UART AF:USART3_RX PD10 LED4 LED -PD12 I2C4_SCL_EXTERNAL I2C AF:I2C4_SCL -PD13 I2C4_SDA_EXTERNAL I2C AF:I2C4_SDA +PD12 I2C4_SCL I2C AF:I2C4_SCL #External +PD13 I2C4_SDA I2C AF:I2C4_SDA #External PD15 LED1 LED PE00 RC1 UART AF:UART8_RX () diff --git a/sw/airborne/boards/tawaki/chibios/v1.1/board.h b/sw/airborne/boards/tawaki/chibios/v1.1/board.h index be6a1d7385..3a19ab23dc 100644 --- a/sw/airborne/boards/tawaki/chibios/v1.1/board.h +++ b/sw/airborne/boards/tawaki/chibios/v1.1/board.h @@ -76,8 +76,8 @@ #define SRVB2 7U #define SRVB3 8U #define SRVB4 9U -#define I2C2_SCL_EXTERNAL 10U -#define I2C2_SDA_EXTERNAL 11U +#define I2C2_SCL 10U +#define I2C2_SDA 11U #define SPI2_EXTERNAL_CS 12U #define PB13 13U #define SPI2_EXTERNAL_MISO 14U @@ -112,8 +112,8 @@ #define UART3_RX 9U #define LED4 10U #define PD11 11U -#define I2C4_SCL_EXTERNAL 12U -#define I2C4_SDA_EXTERNAL 13U +#define I2C4_SCL 12U +#define I2C4_SDA 13U #define PD14 14U #define LED1 15U @@ -261,8 +261,8 @@ #define LINE_SRVB2 PAL_LINE(GPIOB, 7U) #define LINE_SRVB3 PAL_LINE(GPIOB, 8U) #define LINE_SRVB4 PAL_LINE(GPIOB, 9U) -#define LINE_I2C2_SCL_EXTERNAL PAL_LINE(GPIOB, 10U) -#define LINE_I2C2_SDA_EXTERNAL PAL_LINE(GPIOB, 11U) +#define LINE_I2C2_SCL PAL_LINE(GPIOB, 10U) +#define LINE_I2C2_SDA PAL_LINE(GPIOB, 11U) #define LINE_SPI2_EXTERNAL_CS PAL_LINE(GPIOB, 12U) #define LINE_SPI2_EXTERNAL_MISO PAL_LINE(GPIOB, 14U) #define LINE_SPI2_EXTERNAL_MOSI PAL_LINE(GPIOB, 15U) @@ -288,8 +288,8 @@ #define LINE_UART3_TX PAL_LINE(GPIOD, 8U) #define LINE_UART3_RX PAL_LINE(GPIOD, 9U) #define LINE_LED4 PAL_LINE(GPIOD, 10U) -#define LINE_I2C4_SCL_EXTERNAL PAL_LINE(GPIOD, 12U) -#define LINE_I2C4_SDA_EXTERNAL PAL_LINE(GPIOD, 13U) +#define LINE_I2C4_SCL PAL_LINE(GPIOD, 12U) +#define LINE_I2C4_SDA PAL_LINE(GPIOD, 13U) #define LINE_LED1 PAL_LINE(GPIOD, 15U) #define LINE_RC1 PAL_LINE(GPIOE, 0U) @@ -441,8 +441,8 @@ PIN_MODE_ALTERNATE(SRVB2) | \ PIN_MODE_ALTERNATE(SRVB3) | \ PIN_MODE_ALTERNATE(SRVB4) | \ - PIN_MODE_ALTERNATE(I2C2_SCL_EXTERNAL) | \ - PIN_MODE_ALTERNATE(I2C2_SDA_EXTERNAL) | \ + PIN_MODE_ALTERNATE(I2C2_SCL) | \ + PIN_MODE_ALTERNATE(I2C2_SDA) | \ PIN_MODE_OUTPUT(SPI2_EXTERNAL_CS) | \ PIN_MODE_INPUT(PB13) | \ PIN_MODE_ALTERNATE(SPI2_EXTERNAL_MISO) | \ @@ -458,8 +458,8 @@ PIN_OTYPE_PUSHPULL(SRVB2) | \ PIN_OTYPE_PUSHPULL(SRVB3) | \ PIN_OTYPE_PUSHPULL(SRVB4) | \ - PIN_OTYPE_OPENDRAIN(I2C2_SCL_EXTERNAL) | \ - PIN_OTYPE_OPENDRAIN(I2C2_SDA_EXTERNAL) | \ + PIN_OTYPE_OPENDRAIN(I2C2_SCL) | \ + PIN_OTYPE_OPENDRAIN(I2C2_SDA) | \ PIN_OTYPE_PUSHPULL(SPI2_EXTERNAL_CS) | \ PIN_OTYPE_PUSHPULL(PB13) | \ PIN_OTYPE_PUSHPULL(SPI2_EXTERNAL_MISO) | \ @@ -475,8 +475,8 @@ PIN_OSPEED_SPEED_HIGH(SRVB2) | \ PIN_OSPEED_SPEED_HIGH(SRVB3) | \ PIN_OSPEED_SPEED_HIGH(SRVB4) | \ - PIN_OSPEED_SPEED_HIGH(I2C2_SCL_EXTERNAL) | \ - PIN_OSPEED_SPEED_HIGH(I2C2_SDA_EXTERNAL) | \ + PIN_OSPEED_SPEED_HIGH(I2C2_SCL) | \ + PIN_OSPEED_SPEED_HIGH(I2C2_SDA) | \ PIN_OSPEED_SPEED_HIGH(SPI2_EXTERNAL_CS) | \ PIN_OSPEED_SPEED_VERYLOW(PB13) | \ PIN_OSPEED_SPEED_HIGH(SPI2_EXTERNAL_MISO) | \ @@ -492,8 +492,8 @@ PIN_PUPDR_FLOATING(SRVB2) | \ PIN_PUPDR_FLOATING(SRVB3) | \ PIN_PUPDR_FLOATING(SRVB4) | \ - PIN_PUPDR_PULLUP(I2C2_SCL_EXTERNAL) | \ - PIN_PUPDR_PULLUP(I2C2_SDA_EXTERNAL) | \ + PIN_PUPDR_PULLUP(I2C2_SCL) | \ + PIN_PUPDR_PULLUP(I2C2_SDA) | \ PIN_PUPDR_FLOATING(SPI2_EXTERNAL_CS) | \ PIN_PUPDR_PULLDOWN(PB13) | \ PIN_PUPDR_FLOATING(SPI2_EXTERNAL_MISO) | \ @@ -509,8 +509,8 @@ PIN_ODR_LEVEL_LOW(SRVB2) | \ PIN_ODR_LEVEL_LOW(SRVB3) | \ PIN_ODR_LEVEL_LOW(SRVB4) | \ - PIN_ODR_LEVEL_HIGH(I2C2_SCL_EXTERNAL) | \ - PIN_ODR_LEVEL_HIGH(I2C2_SDA_EXTERNAL) | \ + PIN_ODR_LEVEL_HIGH(I2C2_SCL) | \ + PIN_ODR_LEVEL_HIGH(I2C2_SDA) | \ PIN_ODR_LEVEL_HIGH(SPI2_EXTERNAL_CS) | \ PIN_ODR_LEVEL_LOW(PB13) | \ PIN_ODR_LEVEL_HIGH(SPI2_EXTERNAL_MISO) | \ @@ -527,8 +527,8 @@ #define VAL_GPIOB_AFRH (PIN_AFIO_AF(SRVB3, 2) | \ PIN_AFIO_AF(SRVB4, 2) | \ - PIN_AFIO_AF(I2C2_SCL_EXTERNAL, 4) | \ - PIN_AFIO_AF(I2C2_SDA_EXTERNAL, 4) | \ + PIN_AFIO_AF(I2C2_SCL, 4) | \ + PIN_AFIO_AF(I2C2_SDA, 4) | \ PIN_AFIO_AF(SPI2_EXTERNAL_CS, 0) | \ PIN_AFIO_AF(PB13, 0) | \ PIN_AFIO_AF(SPI2_EXTERNAL_MISO, 5) | \ @@ -649,8 +649,8 @@ PIN_MODE_ALTERNATE(UART3_RX) | \ PIN_MODE_OUTPUT(LED4) | \ PIN_MODE_INPUT(PD11) | \ - PIN_MODE_ALTERNATE(I2C4_SCL_EXTERNAL) | \ - PIN_MODE_ALTERNATE(I2C4_SDA_EXTERNAL) | \ + PIN_MODE_ALTERNATE(I2C4_SCL) | \ + PIN_MODE_ALTERNATE(I2C4_SDA) | \ PIN_MODE_INPUT(PD14) | \ PIN_MODE_OUTPUT(LED1)) @@ -666,8 +666,8 @@ PIN_OTYPE_PUSHPULL(UART3_RX) | \ PIN_OTYPE_PUSHPULL(LED4) | \ PIN_OTYPE_PUSHPULL(PD11) | \ - PIN_OTYPE_OPENDRAIN(I2C4_SCL_EXTERNAL) | \ - PIN_OTYPE_OPENDRAIN(I2C4_SDA_EXTERNAL) | \ + PIN_OTYPE_OPENDRAIN(I2C4_SCL) | \ + PIN_OTYPE_OPENDRAIN(I2C4_SDA) | \ PIN_OTYPE_PUSHPULL(PD14) | \ PIN_OTYPE_PUSHPULL(LED1)) @@ -683,8 +683,8 @@ PIN_OSPEED_SPEED_HIGH(UART3_RX) | \ PIN_OSPEED_SPEED_VERYLOW(LED4) | \ PIN_OSPEED_SPEED_VERYLOW(PD11) | \ - PIN_OSPEED_SPEED_HIGH(I2C4_SCL_EXTERNAL) | \ - PIN_OSPEED_SPEED_HIGH(I2C4_SDA_EXTERNAL) | \ + PIN_OSPEED_SPEED_HIGH(I2C4_SCL) | \ + PIN_OSPEED_SPEED_HIGH(I2C4_SDA) | \ PIN_OSPEED_SPEED_VERYLOW(PD14) | \ PIN_OSPEED_SPEED_VERYLOW(LED1)) @@ -700,8 +700,8 @@ PIN_PUPDR_FLOATING(UART3_RX) | \ PIN_PUPDR_FLOATING(LED4) | \ PIN_PUPDR_PULLDOWN(PD11) | \ - PIN_PUPDR_PULLUP(I2C4_SCL_EXTERNAL) | \ - PIN_PUPDR_PULLUP(I2C4_SDA_EXTERNAL) | \ + PIN_PUPDR_PULLUP(I2C4_SCL) | \ + PIN_PUPDR_PULLUP(I2C4_SDA) | \ PIN_PUPDR_PULLDOWN(PD14) | \ PIN_PUPDR_FLOATING(LED1)) @@ -717,8 +717,8 @@ PIN_ODR_LEVEL_HIGH(UART3_RX) | \ PIN_ODR_LEVEL_LOW(LED4) | \ PIN_ODR_LEVEL_LOW(PD11) | \ - PIN_ODR_LEVEL_HIGH(I2C4_SCL_EXTERNAL) | \ - PIN_ODR_LEVEL_HIGH(I2C4_SDA_EXTERNAL) | \ + PIN_ODR_LEVEL_HIGH(I2C4_SCL) | \ + PIN_ODR_LEVEL_HIGH(I2C4_SDA) | \ PIN_ODR_LEVEL_LOW(PD14) | \ PIN_ODR_LEVEL_LOW(LED1)) @@ -735,8 +735,8 @@ PIN_AFIO_AF(UART3_RX, 7) | \ PIN_AFIO_AF(LED4, 0) | \ PIN_AFIO_AF(PD11, 0) | \ - PIN_AFIO_AF(I2C4_SCL_EXTERNAL, 4) | \ - PIN_AFIO_AF(I2C4_SDA_EXTERNAL, 4) | \ + PIN_AFIO_AF(I2C4_SCL, 4) | \ + PIN_AFIO_AF(I2C4_SDA, 4) | \ PIN_AFIO_AF(PD14, 0) | \ PIN_AFIO_AF(LED1, 0)) @@ -1483,10 +1483,10 @@ #define AF_LINE_SRVB3 2U #define AF_SRVB4 2U #define AF_LINE_SRVB4 2U -#define AF_I2C2_SCL_EXTERNAL 4U -#define AF_LINE_I2C2_SCL_EXTERNAL 4U -#define AF_I2C2_SDA_EXTERNAL 4U -#define AF_LINE_I2C2_SDA_EXTERNAL 4U +#define AF_I2C2_SCL 4U +#define AF_LINE_I2C2_SCL 4U +#define AF_I2C2_SDA 4U +#define AF_LINE_I2C2_SDA 4U #define AF_SPI2_EXTERNAL_MISO 5U #define AF_LINE_SPI2_EXTERNAL_MISO 5U #define AF_SPI2_EXTERNAL_MOSI 5U @@ -1521,10 +1521,10 @@ #define AF_LINE_UART3_TX 7U #define AF_UART3_RX 7U #define AF_LINE_UART3_RX 7U -#define AF_I2C4_SCL_EXTERNAL 4U -#define AF_LINE_I2C4_SCL_EXTERNAL 4U -#define AF_I2C4_SDA_EXTERNAL 4U -#define AF_LINE_I2C4_SDA_EXTERNAL 4U +#define AF_I2C4_SCL 4U +#define AF_LINE_I2C4_SCL 4U +#define AF_I2C4_SDA 4U +#define AF_LINE_I2C4_SDA 4U #define AF_RC1 8U #define AF_LINE_RC1 8U #define AF_SPI4_INTERNAL_CLK 5U diff --git a/sw/airborne/boards/tawaki/chibios/v1.1/tawaki_1.1.cfg b/sw/airborne/boards/tawaki/chibios/v1.1/tawaki_1.1.cfg index 6a475b66dd..e1b3fd5f7d 100644 --- a/sw/airborne/boards/tawaki/chibios/v1.1/tawaki_1.1.cfg +++ b/sw/airborne/boards/tawaki/chibios/v1.1/tawaki_1.1.cfg @@ -95,8 +95,8 @@ PB06 SRVB1 PWM AF:TIM4_CH1 () PB07 SRVB2 PWM AF:TIM4_CH2 () PB08 SRVB3 PWM AF:TIM4_CH3 () PB09 SRVB4 PWM AF:TIM4_CH4 () -PB10 I2C2_SCL_EXTERNAL I2C AF:I2C2_SCL -PB11 I2C2_SDA_EXTERNAL I2C AF:I2C2_SDA +PB10 I2C2_SCL I2C AF:I2C2_SCL #External +PB11 I2C2_SDA I2C AF:I2C2_SDA #External PB12 SPI2_EXTERNAL_CS OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH PB14 SPI2_EXTERNAL_MISO SPI AF:SPI2_MISO PB15 SPI2_EXTERNAL_MOSI SPI AF:SPI2_MOSI @@ -121,8 +121,8 @@ PD06 UART2_RX UART AF:USART2_RX PD08 UART3_TX UART AF:USART3_TX PD09 UART3_RX UART AF:USART3_RX PD10 LED4 LED -PD12 I2C4_SCL_EXTERNAL I2C AF:I2C4_SCL -PD13 I2C4_SDA_EXTERNAL I2C AF:I2C4_SDA +PD12 I2C4_SCL I2C AF:I2C4_SCL #External +PD13 I2C4_SDA I2C AF:I2C4_SDA #External PD15 LED1 LED PE00 RC1 UART AF:UART8_RX () diff --git a/sw/airborne/modules/actuators/actuators_ppm.h b/sw/airborne/modules/actuators/actuators_ppm.h deleted file mode 100644 index 95cb1115cc..0000000000 --- a/sw/airborne/modules/actuators/actuators_ppm.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2012 Gautier Hattenberger - * - * This file is part of Paparazzi. - * - * Paparazzi is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * Paparazzi 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Paparazzi; see the file COPYING. If not, write to - * the Free Software Foundation, 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef ACTUATORS_PPM_H -#define ACTUATORS_PPM_H - -#include "modules/actuators/servos_ppm_hw.h" - -#endif /* ACTUATORS_PPM_H */ diff --git a/sw/airborne/modules/sensors/airspeed_ms45xx_i2c.c b/sw/airborne/modules/sensors/airspeed_ms45xx_i2c.c index 8a72054d81..3ce494870f 100644 --- a/sw/airborne/modules/sensors/airspeed_ms45xx_i2c.c +++ b/sw/airborne/modules/sensors/airspeed_ms45xx_i2c.c @@ -229,6 +229,18 @@ void ms45xx_i2c_event(void) /* 14bit raw pressure */ uint16_t p_raw = 0x3FFF & (((uint16_t)(ms45xx_trans.buf[0]) << 8) | (uint16_t)(ms45xx_trans.buf[1])); + /* 11bit raw temperature, 5 LSB bits not used */ + uint16_t temp_raw = 0xFFE0 & (((uint16_t)(ms45xx_trans.buf[2]) << 8) | + (uint16_t)(ms45xx_trans.buf[3])); + temp_raw = temp_raw >> 5; + + /* Reject any values that are the absolute minimum or maximums these + can happen due to gnd lifts or communication errors on the bus */ + if(p_raw == 0x3FFF || p_raw == 0 || temp_raw == 0x7FF || temp_raw == 0) { + ms45xx_trans.status = I2CTransDone; + return; + } + /* For type Diff * Output is proportional to the difference between Port 1 and Port 2. Output * swings positive when Port 1> Port 2. Output is 50% of total counts @@ -256,10 +268,6 @@ void ms45xx_i2c_event(void) } } - /* 11bit raw temperature, 5 LSB bits not used */ - uint16_t temp_raw = 0xFFE0 & (((uint16_t)(ms45xx_trans.buf[2]) << 8) | - (uint16_t)(ms45xx_trans.buf[3])); - temp_raw = temp_raw >> 5; /* 0 = -50degC, 20147 = 150degC * ms45xx_temperature in 0.1 deg Celcius */ diff --git a/sw/ext/chibios b/sw/ext/chibios index b0ee54fbe8..5aa52cc1a4 160000 --- a/sw/ext/chibios +++ b/sw/ext/chibios @@ -1 +1 @@ -Subproject commit b0ee54fbe808a570d02f36baa33d5c446806b628 +Subproject commit 5aa52cc1a4c37d25d0764a85af76edb4cb257722 diff --git a/tests/modules/test_arch/modules/actuators/servos_ppm_hw.h b/tests/modules/test_arch/modules/actuators/servos_ppm_hw.h deleted file mode 100644 index 63f8d5eeda..0000000000 --- a/tests/modules/test_arch/modules/actuators/servos_ppm_hw.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2012 Gautier Hattenberger - * - * This file is part of paparazzi. - * - * paparazzi is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * paparazzi 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with paparazzi; see the file COPYING. If not, write to - * the Free Software Foundation, 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - */ - -#ifndef SERVOS_PPM_HW_H -#define SERVOS_PPM_HW_H - -#define SERVOS_TICS_OF_USEC(_v) (_v) - -#define ActuatorPpmSet(_i, _v) {} -#define ActuatorsPpmInit() {} -#define ActuatorsPpmCommit() {} - -#endif - -