Commit Graph
106 Commits
Author SHA1 Message Date
David Sidrane f2fbffab84 px4fmu-v4:Board does CAN GPIO init 2018-08-08 15:09:01 -04:00
mcsauder 14a8afb61d Formatted whitespace and comments, standardized comment block styles and single line comments, and added capitalization and full stops to comments wherever appropriate. 2018-07-22 08:44:30 +02:00
David Sidrane 05b9b5e533 px4fmu-v4:Provide board_common INVERT_RC_INPUT with GPIO based invert 2018-07-17 08:53:29 +02:00
Daniel Agar d73d20bcce systemlib delete unused systemlib.h 2018-06-12 09:06:30 +02:00
Daniel Agar 6b94ef1a03 mpu9250 allow a 2nd internal spi instance and remove px4fmu-v4 fake external (#9386) 2018-05-04 12:38:43 -04:00
Daniel Agar ea3acb7121 cmake remove circular linking and reorganize
- px4_add_module now requires MAIN
 - px4_add_library doesn't automatically link
2018-04-29 21:48:54 -04:00
aklimaj 25528a5ae0 Adds support for another MPU9250 or MPU6500 on px4fmu-v4 internal SPI bus. Adds PX4_SPI_BUS_EXT, PX4_SPIDEV_EXT_MPU to board config and spi.c. Call 'mpu9250 -S start' to enable. 2018-04-28 15:16:41 +02:00
Phillip Kocmoud 8f1c84ce56 Enable internal SPI LIS3MDL on R15 Pixracer 2018-03-28 13:47:22 -04:00
Daniel Agar f194c5424c move hmc5883 i2c address into driver 2018-03-14 14:38:40 -04:00
Daniel Agar bb7466c596 move rgbled i2c address into driver 2018-03-14 14:38:40 -04:00
Daniel Agar a35abf2453 rename nuttx board support packages for consistecy (#8777) 2018-02-19 19:12:32 -05:00
Daniel Agar cf54023c96 lis3mdl i2c address is not board specific 2018-02-09 22:40:34 +01:00
Daniel Agar bad813e911 move all magnetometers to the same folder 2018-01-16 23:46:45 -05:00
Daniel Agar 53595bac0e board support add px4_i2c_bus_external/px4_spi_bus_external 2017-11-20 23:44:31 +01:00
Daniel Agar 01b3e6fd25 NuttX upgrade cmake wrapper (#7873)
* NuttX cmake

* px4_macros:Pass the stringified predicate as second arg to static assert

   CC_ASSERT mapes to the c++ static_assert or provides the same
   funtionality for c via the other macros. The c++ static assert
   takes 2 argumants the prdicate and a message. This fixes the
   lacking second argument.

* Updated nuttx and apps submodule to upstream nuttx 7.21+==master

   This is the latest uptake of upstream nuttx and apps.

* ROMFS generate with xxd instead of objcopy

* delete nuttx-patches

* NuttX update submodules to latest px4_nuttx-master

* fix nuttx apps and board dependency

* docker_run update to latest container 2017-08-29

* cmake ROMFS portable sed usage

* NuttX update submodules to latest px4_nuttx-master
2017-09-29 10:13:51 -04:00
David Sidrane caaf2f8e6c px4fmu-v4: Upstream NuttX up_cxxinitialize moved
was:<nuttx/arch.h> is:platform/cxxinitialize.h
   Removed PX4 version:src/modules/systemlib/up_cxxinitialize.c
   in favor of nuttx platform/gnu/gnu_cxxinitialize.c
2017-09-29 10:13:51 -04:00
David Sidrane 0ed964ef78 px4fmu-v4: Upstream NuttX reloaction of can.h
can.h was moved in upstream NuttX from nuttx/drivers/can.h
   to nuttx/include/nuttx/can/can.h
2017-09-29 10:13:51 -04:00
David Sidrane 3ade7c303a px4fmu-v4:spi_dev_e is now uint32_t in NuttX
Using new type of uint32_t for spi device and macr
   that define a PX4 device on a given BUS and Chip Select
2017-09-29 10:13:51 -04:00
Henry Zhang 4778c79201 commander: removed CONFIG_ARCH_BOARD_xxx usage 2017-09-20 18:40:55 -10:00
David Sidrane 258faeee03 px4fmu-v4:Define GPIO GPIO_VDD_USB_VALID and initalize it.
The V4 HW replaced the LTC4417 provided valid signal for USB.
  with an active high, version. This commit configures the GIOP
  and provides 1) a MACRO to read the pin and the IOCTL defines
  to read it from the FMU. The macro result true logic: true
  when the signal is high. The IOCTL read would be the actual
  pin state.
2017-07-17 21:02:50 -10:00
David Sidrane 6eff7deb7e Extend the delay ensure post reset pulse delayed.
Given the original poster's comment that "It happens very consistently for us." I suspect the motor spin observed in https://github.com/PX4/Firmware/issues/7457 is not caused by the original issue of slow decay on the PWM pins at reset, but the post reset pulse of 3.1 Ms arriving in a window that the ESC considers it valid.

The results from testing, indicated that the if the PWM pins were clamped low for > 300 Ms, prior to reset the motors did not spin. This would delay the the post reset pulse of 3.1 Ms out by > 300 Ms. 

This change delays the reset and therefore the pulse by at least 400 Ms.
2017-07-08 10:51:43 +02:00
David Sidrane 65d8b5c9cd px4fmu-v4:Insure the discharge of the pins PWM pins on rest.
On resets invoked from system (not boot) insure we establish a low
  output state (discharge the pins) on PWM pins before they become
  inputs.
2017-07-08 10:51:43 +02:00
David Sidrane e86d9adb93 px4fmu-v4:Implement board_on_reset API
Added board_on_reset, to force timer GPIO to output low on reset
   This will stop the motors.
2017-05-03 08:33:05 +02:00
David Sidrane 33f2897f00 px4fmu-v4:Configure timer IO pins with pull downs
When the CCER is cleared the IO pin tends to float. The FMUV4
  HW has no TXS0108 and if cut off while high will decay.

  By adding the pull down the pins will seek the low state faster.
  13.8 us from off to decabe below threshold.
2017-05-03 08:33:05 +02:00
David Sidrane 5d70f74e36 px4fmu-v4:SPI and init clean up 2017-05-02 11:55:11 +02:00
Beat Küng fc30f880c8 px4fmu_spi.c for v4: fix usage of wrong GPIO macros
This got introduced with the refactoring in c5e841256a
2017-04-26 13:56:59 +02:00
Lorenz Meier e054d1fff7 FMUv5: Start BMI055 in correct rotation 2017-04-24 10:38:39 +02:00
Sergej Scheiermann 641a03510c changes on drivers according to comments from DavidS 2017-04-24 10:38:39 +02:00
Sergej Scheiermann 5923e66cf3 bmp285 support added 2017-04-24 10:38:39 +02:00
Sergej Scheiermann c3711efd27 initial commit of bmm150 2017-04-24 10:38:39 +02:00
Sergej Scheiermann c5e841256a changes added for SPI CS defines as requested for BMI055 driver integration (e.g. GPIO_SPI1_CS_PORTE_PIN15 for bmi055 gyro) to avoid double declaration of same chip select pin 2017-04-24 10:38:39 +02:00
Sergej Scheiermann 7dcdc57412 Update px4fmu_spi.c 2017-04-24 10:38:39 +02:00
Sergej Scheiermann cfed8ee2dd bmi055 initial integration 2017-04-24 10:38:39 +02:00
David Sidrane a161c05dc6 px4fmu-v4 Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_RX_AS_GPIO_OUTPUT to use it as and GPIO to
   facilitate binding.

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
David Sidrane 6dc3b1cac6 Revert "add macro PX4FMU_TASK to board_config"
The fmu now support the commandline option to be run as a task
   or off a work queue.
   This reverts the board_config.h changes from commit
   e33af23122f5ee3030bb9745bbbf616b24c2a14a.

Conflicts:
	src/drivers/px4fmu/fmu.cpp
2017-03-23 08:28:15 +01:00
Mark Whitehorn 8b6b4ccee9 add macro PX4FMU_TASK to board_config 2017-03-23 08:28:15 +01:00
Beat Küng b0439836f6 refactor drv_led.h: rename to drv_board_led.h
This makes it clear that it's used to control the board LED's, not external
LED's.
2017-03-12 00:08:35 +01:00
Beat Küng df8f0da70c param & param_shmem: enable locking
We need to protect access to the param_values array. This is dynamically
allocated and resized (utarray_reserve() calls realloc). If some thread
was iterating the array while another was resizing the array, the first one
would iterate on a freed array, thus accessing invalid memory.

On NuttX this could lead to hardfaults in rare conditions.

Unfortunately we need to initialize the semaphore on startup, by calling
sem_init(). This adds a param_init() method called by every board/config
that uses the params (at least I think I've found all of them)
2017-02-17 11:27:08 +01:00
Phillip Kocmoud ccfecd4ad2 Add support for the ICM-20602 to the Pixracer FMUv4 (#6577)
The current ICM-20608 is nearing EOL.

I have tested on both ICM-20608 and ICM-20602 based Pixracers.
2017-02-14 06:37:04 -10:00
Beat Küng 7c47991504 px4fmu-v4 board config: use PX4_SPIDEV_ICM_20608 instead of PX4_SPIDEV_ICM_20602
This is what's used according to https://pixhawk.org/modules/pixracer.
2017-01-31 23:38:50 +01:00
David Sidrane cd1148f146 px4fmu-v4 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane ca6105d042 px4fmu-v4 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane eb72b49507 px4fmu-v4 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane 59ec0e8aef Make board_crashdump.c arch agnostic and move to common 2017-01-23 22:10:38 +01:00
José Roberto de Souza 163bcc4bbc drivers: boards: Share board_crashdump() implementation 2017-01-23 22:10:38 +01:00
David Sidrane 0baefec09f FMUV4 Moved magic numbers for battery V div and A per V to board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane 356911ab0d PX4FMUV4: moved GPIO defines to px4fmu-v4/board_config.h 2017-01-21 11:45:36 +01:00
Lorenz Meier ece8d85860 Add ICM20602 to Pixracer config 2016-12-29 11:55:57 +01:00
Lorenz Meier 6bc70af7a0 FMUv2: Add missing headers 2016-12-27 21:00:51 +01:00
Beat Küng c662113527 board_name.c: remove the file and HW_ARCH macro, use px4_board_name() instead
boards define BOARD_NAME, so board_name() is not necessary. HW_ARCH was
just a wrapper around board_name().

This patch simplifies to having only one common method px4_board_name().
2016-12-21 11:35:10 +01:00