Commit Graph
62 Commits
Author SHA1 Message Date
David Sidrane d986c14591 board_common:add board_supports_single_wire API 2018-07-17 08:53:29 +02:00
nathan f754d092f8 Initial omnibusf4sd target support
Flight tested: ekf2 w/ mag and compass by @nathantsoi: https://logs.px4.io/plot_app?log=79b81031-cf1e-41f0-890b-d6cd7d559766

NOTE: external I2C devices need a pullup. I have tested with a 3.3v 2.2k pullup.

Working:
 - mpu6000, bench tested and verified via nsh
 - fmu
 - all 6 ch output bench tested w/ pwm and oneshot via nsh
 - ppm input bench tested
 - dsm input bench tested
 - bmp280, bench tested and verified via nsh
 - hmc5883, bench tested and verified via nsh, but requires an external i2c pullup
 - gps on uart6
 - startuplog, nsh, mavlink on uart4, but params are not sent for some reason. RSSI pin is TX, MOTOR 5 is RX (normal mode, 57600 baud)
 - rgbled over i2c, bench tested and workingp
 - sbus via the shared sbus/ppm pin (which includes an inverter to the mcu SBUS in pin), remove the solder bridge or jumper to the ppm pin before use

Not yet implemented:
  - ADC
  - OSD: passthrough video is untested, use at your own risk until a basic driver is implemented.
2018-05-20 11:54:17 +02:00
Daniel Agar 8404889098 delete unused ADCSIM
- set BOARD_NUMBER_BRICKS to 0 for boards without analog power bricks
2018-04-29 21:48:54 -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
Simone Guscetti 20905ce478 stm32: board_reset, keep legacy definition for old chips 2018-03-19 09:46:58 +01:00
Simone Guscetti 2b81331f8a stm32: board_reset, change backup register
Change to be coherent with the change on NuttX upstream, in the future
STM32_BKP_BASE will be removed. This is using the definition over stm32_rtc.h interface.
2018-03-19 09:46:58 +01:00
Daniel Agar 53595bac0e board support add px4_i2c_bus_external/px4_spi_bus_external 2017-11-20 23:44:31 +01:00
David Sidrane 7ae999ecb3 HW Rev & Ver:0 for no value, -1 for not supported 2017-09-29 10:13:51 -04:00
David Sidrane 13c4a6cced HW Rev & Ver:0 for no value, -1 for not supported 2017-09-29 10:13:51 -04:00
David Sidrane 8451cb324e board_common: Add BOARD_HAS_HW_VERSIONING control 2017-09-29 10:13:51 -04:00
David Sidrane 04f7a7a47a stm32:Add board Revision and version API for FMUv5 HW detection 2017-09-29 10:13:51 -04:00
David Sidrane f3e925497d board_common:Break into internal and public api.
Internal functions are public functions that should realy only
   be called by the board config.
2017-09-29 10:13:51 -04:00
David Sidrane 9cc7148211 board_common:Documentation clean up merged 2017-09-29 10:13:51 -04:00
David Sidrane 7dc8f215f6 samv7 board identity:fix sign-compare 2017-09-29 10:13:51 -04:00
David Sidrane 83d870900c kinetis board identity:fix sign-compare 2017-09-29 10:13:51 -04:00
David Sidrane 5018723eb2 board_common:Define defaults for Open circuit max and UV min
BOARD_ADC_OPEN_CIRCUIT_V is the voltage present on an ADC due
   to the bias current on the terminition resistor.

   BOARD_VALID_UV is the under voltage min set by resistors on a
   board's Power selector.

   A battery is considered connected when the Voltage measures is
   greater than BOARD_ADC_OPEN_CIRCUIT_V.

   In the case where BOARD_ADC_OPEN_CIRCUIT_V is greater then
   BOARD_VALID_UV we can use the HW to qualify connected.
2017-09-29 10:13:51 -04:00
Daniel Agar 474f216a0a UAVCAN bootloaders split into separate repository (#7878) 2017-09-29 10:13:51 -04: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 f04ddf4368 Inital Commit of px4-same70xplained-v1 2017-09-29 10:13:51 -04:00
David Sidrane f5ed7586bf boards common:Fix formating 2017-09-29 10:13:51 -04:00
David Sidrane b4a9c1578b board common:spi_dev_e is now uint32_t in NuttX
Using new type of uint32_t for spi device and macros
   that define a PX4 device on a given BUS and Chip Select
   Refactored to pack the PX4 format in the new NuttX format
2017-09-29 10:13:51 -04:00
David Sidrane 7a4c5c3475 Added board_read_VBUS_state to board_common API 2017-09-29 10:13:51 -04:00
David Sidrane c168bd248f Use Proper ponter conversion
When PX4_CPU_UUID_BYTE_FORMAT_ORDER is not defined properly
 cast the arument for calling board_get_uuid_raw
2017-09-29 10:13:51 -04:00
David Sidrane fcb57afd3d Add Kinetis impelmantation Skeleton for board common SoC version api 2017-09-29 10:13:51 -04:00
David Sidrane da178e8693 Adding Kinetis board common identitiy api 2017-09-29 10:13:51 -04:00
David Sidrane b2b6509ee0 Use micro hal fir px4_savepanic
To keep board_crashdump.c as common code we create a
  wrapper around the arch depandant call to
  stm32_bbsram_savepanic.
2017-09-29 10:13:51 -04:00
David Sidrane c1812af45e Inital commit of NXPhlite-v1 2017-09-29 10:13:51 -04:00
Daniel Agar 58268c832c drivers remove extra semicolons 2017-09-16 21:29:52 +01:00
David Sidrane 99bce71003 board_common:px4io-v1:Removed px4io-v1 board from PX4
Only provide paths to px4io-v2 bin files.
2017-09-10 13:37:23 -04:00
Daniel Agar 275d81d4d5 stm32 common fix sign-compare 2017-09-07 10:27:36 +02:00
David Sidrane 9644f855e3 common:Define default BOARD_NUMBER_I2C_BUSES and BOARD_I2C_BUS_CLOCK_INIT
Define the default I2C buss frequncies that are backward compatible
   with the existing code. While allowing it the defaults to be overridden
   by a board config.

   Based on the legacy STM32 code, the I2C buss numbering starts at 1.
   The bus frequency is stored in a 0 based array. If px4_i2cbus_initialize
   returns a valid device, then the _bus-1 will act as the index to the
   busses frequency.

   A board may define BOARD_NUMBER_I2C_BUSES - the number of I2C busses
   it supports* and BOARD_I2C_BUS_CLOCK_INIT to initalize the bus
   clocks for a given busses.

   BOARD_NUMBER_I2C_BUSES - the number of busses including the *highest
                            number bus. If the board has 2 I2C
                            busses I2C1 and I2C3 BOARD_NUMBER_I2C_BUSES
                            would be set to 3

   BOARD_I2C_BUS_CLOCK_INIT - Initalization for the bus frequencies
                              by bus. A call init, with a frequency
                              less then the value used for the
                              Initalization will result in the device
                              not starting becuase the buss runs too
                              fast for it.
2017-08-08 21:45:01 +02:00
David Sidrane dfdb61d2a7 board_common:Add support for simple hardware versioning
Define methods to get:
    1) The sub type of the hardware as a string.
    2) The version as an integer
    3) The revision as an integer
2017-08-05 19:26:20 +02:00
David Sidrane 910948cd7e board_common:Define defaults for Power Bricks and Sensor rail volatage
FMUv4Pro and FMUv5 Spec added multi brick support
   FMUv5 added SCALED_VDD_3V3_SENSORS

   This change provides legacy (FMUv2) defaults for Power Bricks and
   Sensor rail volatage source.
2017-07-17 21:02:50 -10:00
David Sidrane 68e5764dbc board common:Add arch agnostic gpio init 2017-07-17 21:02:50 -10:00
Julien Lecoeur d477b1f0f4 Fix -Werror=stringop-overflow on gcc 7
This prevents the compiler from optimising pdump. The error was:
Firmware/src/drivers/boards/common/board_crashdump.c:41:2: error: 'memset' writing 3240 bytes into a region of size 4 overflows the destination [-Werror=stringop-overflow=]
  memset(pdump, 0, sizeof(fullcontext_s));
2017-07-18 08:24:37 +02:00
David Sidrane e967c2b340 board_common:Added new API point board_on_reset
This optionally provided function called on entry to
  board_system_reset. It should perform any house keeping
  prior to retunring to do the rest.
2017-05-03 08:33:05 +02:00
David Sidrane f7835a8677 io_timer driver:Only support capture if DIRECT_INPUT_TIMER_CHANNELS > 0
This removes the unused input capture capabilities from the px4io
   and saves 128 bytes of ram.
2017-05-02 07:40:50 +02:00
Beat Küng 0165633bf3 board_config: remove px4_board_pwr, use px4_shutdown_request instead
px4_board_pwr has become obsolete with the addition of board_shutdown
2017-04-20 10:01:51 +02:00
Beat Küng 25dfa9cda6 posix board_config.h: add include board_common.h
To get the new API definitions
2017-04-20 10:01:51 +02:00
David Sidrane 109db75881 Added board power button notification API
Defined types and interface to support a notification call back
   on power button events.
2017-04-20 10:01:51 +02:00
David Sidrane bc8b117e85 common board idenity cleanup and add mfguid to api
Remove the notion of legacy from the api. The board level code
   will perform the traslation to lecacy format on the STM32.
   new targets will not need to do this as there is no case
   where the serial number were used by mfg for tracking.

   Extend board common api to get mfguid and mfguid formatted

   This adds an api that return the MFGUID as an array of bytes
   or a string.

   The data is returned with the MSD at index 0 and the LSD at
   index PX4_CPU_MFGUID_BYTE_LENGTH-1.

   Removed all reodering defines from the api and hal
2017-02-04 22:27:04 +01:00
Lorenz Meier 1ad03ed8ef Common: Add support for power management (on / off) from the flight controller side 2017-02-04 21:06:21 +01:00
Lorenz Meier f7fa374656 Implement default board power control to allow software switch-off 2017-02-04 21:06:21 +01:00
David Sidrane 242f563d44 Adds a board common API for retriving the SoC' Silicon revision data/errata
This abstraction will support mcu's other than the stm32 family.
    It moves the systemlib/mcu_version.c functionality to
    common/stm32/board_mcu_version.c
2017-01-26 08:39:12 +01:00
David Sidrane bf0de997cb Adds a board common way of retriving the SoC' Unique identifier
This abstraction will support mcu's with longer ID's then the
   stm32 family.

   It provids a common interface for byte and 32 bit word access
   to the UUID data and a facility to reorder it.
2017-01-25 07:43:11 +01:00
David Sidrane c2c8962765 board_crashdump uses board_system_reset API 2017-01-24 21:17:06 +01:00
David Sidrane 3692a62c35 Move board reset and entering bootloader to to board_common api
Define modes of reset and way to tell the system to enter
  the bootloader via an api defined in board_common.h

  If hardware or simulation deo not support the reset or
  bootloader API and can define BOARD_HAS_NO_RESET and
  BOARD_HAS_NO_BOOTLOADER respectivly.
2017-01-24 21:17:06 +01:00
David Sidrane e31dfba4d0 Include up_internal.h to pickup extern _sdata definition
Fixes CI error
2017-01-23 22:10:38 +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 24f9a53f60 drivers: common: stm32: Do not call stm32_bbsram_savepanic() if not implemented 2017-01-23 22:10:38 +01:00