Oleg Semyonov
f5369f9338
Input Configuration: support all 18 S.Bus input channels
2011-09-12 02:06:50 +03:00
James Cotton
4847a04db8
Mainboard: Get PWM working again. Had to add extra timer IRQ handlers for
...
TIM5-8. Also TIM1 was not handled probably (for CC either) as the name of the
IRQ is TIM1_CC and TIM1_UP for the capture compare versus update. I haven't
checked the downstream code that the registers it uses to map from a context to
event is invariant under timer channel.
2011-09-10 14:20:40 -05:00
James Cotton
eb191d869a
Mainboard: Get spektrum working again.
2011-09-10 14:19:54 -05:00
James Cotton
2871c75a79
Mainboard: Get PWM working again. Had to add extra timer IRQ handlers for
...
TIM5-8. Also TIM1 was not handled probably (for CC either) as the name of the
IRQ is TIM1_CC and TIM1_UP for the capture compare versus update. I haven't
checked the downstream code that the registers it uses to map from a context to
event is invariant under timer channel.
2011-09-10 13:53:38 -05:00
James Cotton
1d2a424296
Mainboard: Get spektrum working again.
2011-09-09 09:42:13 -05:00
James Cotton
3239fdf21b
Merge branch 'next' into ins
...
Conflicts:
flight/CopterControl/Makefile
flight/OpenPilot/System/pios_board.c
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-09-09 08:33:34 -05:00
James Cotton
552022250b
INS: Disable power up checks until these are made more reliable and remove some
...
debugging outputs.
2011-09-08 21:44:27 -05:00
James Cotton
0eb4fd113b
PiOS BMA180: Increase the comms speed for BMA180 and perfom SPI without
...
callback. This takes less time.
2011-09-08 03:28:32 -05:00
James Cotton
d7ea1fc306
PiOS I2C: Swap the expected return value of the F2 pios i2c calls
2011-09-08 01:32:27 -05:00
James Cotton
72625d9971
PiOS RCVR: Make the public API use a 1 based indexing for channel numbers.
...
This may or may not get into next, but if so anyone following it MUST
reconfigure their inputs.
2011-09-06 16:39:08 -05:00
James Cotton
8f7712435f
Merge branch 'safer_failsafe' into next
2011-09-06 16:23:11 -05:00
James Cotton
627c931c79
PiOS I2C: Swap the convention of returned values for I2C
2011-09-06 03:27:20 -05:00
Sambas
a8ef57c6d6
Redo DX8 changes
2011-09-06 08:40:10 +03:00
James Cotton
82c5f9f0f4
PIOS_RCVR: Document return values better and use enum for them
2011-09-04 12:37:39 -05:00
James Cotton
533ae9bb41
SBUS: Missed handling the S.Bus failsafe. Now returns PIOS_RVCR_TIMEOUT for
...
either SBus failsafe mode or when no data for 100 ms.
2011-09-04 12:15:34 -05:00
James Cotton
89e640ae7f
Make sure all receiver drivers return correct constants for invalid channels.
2011-09-04 01:24:16 -05:00
James Cotton
51967ae63f
OP-571 PIOS_PWM: Add back the PWM supervisor
2011-09-04 01:17:40 -05:00
James Cotton
697dbf4f5f
OP-568 PIOS_RCVR: Standardize the values that are returned from the PIOS_RCVR and make
...
them symbolic constants.
- A timeout is 0
- A missing driver is 65534
- An invalid channel is 65535
ManualControl: Make it deal with the values explicitly. A timed out value
should not be treated like a minimum duration signal. Instead it does not
updated the scaled value but marks the data window as invalid to trigger the
failsafe.
2011-09-03 23:50:56 -05:00
James Cotton
dae11cf877
INS Logging: Enable temperature reading from gyro and accel (may be removed in
...
future), push it into UAVO and introduced a logging mode for INS that outputs
all sensor data from aux port.
2011-09-03 15:10:47 -05:00
James Cotton
5eaebac8d8
INS: Get the aux uart working. All F2 GPIO pins need to be remapped to work. Good thing to remember.
2011-09-02 17:04:39 -05:00
James Cotton
c40e5800ab
BMA180: Enable the EEPROM writing on startup so settings take the first time.
2011-09-02 13:28:36 -05:00
James Cotton
612d3336b4
This patch breaks backward compatibility with AHRS solidly.
...
Move the configuration files for INS from AHRS* to INS*. Strip out unused
fields in settings and merge calibration and settings since settings has
basically no information.
2011-09-01 12:21:33 -05:00
Stacey Sheldon
43b31efb76
pios: allocate driver instance data from heap
...
Allocate per-instance data for drivers from the heap
rather than as static variables from the .data segment.
This converts > 800 bytes of RAM from being always consumed
as static data into being allocated from the heap only when
a particular feature is enabled in the hwsettings object.
A minimal config (no receivers, flexi port disabled, main port
disabled) leaves 2448 bytes of free heap. That's our new baseline.
Approximate RAM (heap) costs of enabling various features:
+ 632 Serial Telemetry (includes 400 bytes of Rx/Tx buffers)
+ 108 PWM Rcvr
+ 152 PPM Rcvr
+ 112 Spektrum Rcvr
+ 24 S.Bus (Should be closer to 68 since driver is still using
static memory)
There are still some drivers that pre-allocate all of their memory
as static data. It'll take some work to convert those over to
dynamically allocating their instance data.
2011-08-31 22:35:03 -04:00
Stacey Sheldon
2f86e4dd4f
Make PWM/PPM and Servo drivers play nicely together
...
PWM and PPM can now coexist in the same load and be
selected at boot time via the hwsettings UAVObject.
This is basically a complete restructuring of the
way the drivers interact with the TIM peripheral in
the STM32.
As a side effect, the PWM and PPM drivers are now
ready to support multiple instances of each.
This also provides the first step toward being able
to reassign some of the PWM input pins to be servo
output pins. Still more work required, but this is
a good start.
2011-08-27 21:39:56 -04:00
Stacey Sheldon
b3c43da90a
stdperiph: Make TIM related APIs use const pointers
...
This allows the configuration parameters to be stored in
flash instead of copied to RAM.
2011-08-27 21:39:17 -04:00
James Cotton
dc340596f5
Merge branch 'next' into GCS_ChangesToUI-RuntimeCFG
...
Conflicts:
flight/CopterControl/Makefile
flight/OpenPilot/System/pios_board.c
flight/OpenPilot/UAVObjects.inc
flight/PiOS/STM32F10x/pios_spektrum.c
ground/openpilotgcs/src/plugins/config/config.pro
ground/openpilotgcs/src/plugins/config/configgadget.qrc
ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
shared/uavobjectdefinition/hwsettings.xml
2011-08-27 15:26:05 -05:00
Corvus Corax
4bd72923e5
Merge branch 'CorvusCorax_unidirectional-GPS-com' into CC_GPS
...
Conflicts:
flight/Modules/GPS/GPS.c
flight/Modules/GPS/GTOP_BIN.c
flight/Modules/GPS/NMEA.c
shared/uavobjectdefinition/hwsettings.xml
2011-08-25 15:33:23 +02:00
James Cotton
5f7a9b513a
Merge branch 'sambas/dsmx_stuff' of ssh://git.openpilot.org/OpenPilot into next
...
Conflicts:
shared/uavobjectdefinition/hwsettings.xml
2011-08-24 11:37:30 -05:00
James Cotton
4e59e697af
IMU3000: Sometimes the irq is called before previous I2C transaction. This
...
isn't good but for now just deal with it. Need DMA I2C driver.
2011-08-22 02:34:40 -05:00
James Cotton
8c16f614f2
INS: Use the data from the BMP085 and feed into EKF
2011-08-22 02:32:40 -05:00
James Cotton
b1c522def3
Merge remote-tracking branch 'origin/next' into ins
2011-08-21 01:34:40 -05:00
James Cotton
38d9df8fcb
HMC5883: Clean up the mag driver
2011-08-21 01:29:55 -05:00
James Cotton
e1afc9a19a
Merge branch 'next' into ins
...
Conflicts:
flight/Libraries/inc/fifo_buffer.h
flight/PiOS/STM32F10x/link_STM3210E_INS_sections.ld
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-08-21 00:47:43 -05:00
James Cotton
c82aa64c53
INS: General clean up to deal with new driver formats. Also automatically
...
monitors the EKF rate.
2011-08-21 00:42:06 -05:00
James Cotton
af69e0a1a8
BMA180 driver; Don't externalize the fifo buffer but handle it in the driver
...
layer. General driver cleanup.
2011-08-21 00:40:10 -05:00
James Cotton
8ae53a4f97
PiOS: Cleanup IMU3000 driver a fair bit.
2011-08-21 00:39:20 -05:00
James Cotton
368323fd59
Merge remote-tracking branch 'origin/james/erase_settings' into next
2011-08-20 13:07:01 -05:00
Corvus Corax
dfd301571a
HWSettings: Allow late Initialization and Start of Modules as defined in Makefile(available modules) and UAVObject(actually started modules)
2011-08-20 01:24:06 +02:00
James Cotton
d103541970
IMU3000: Make the IRQ trigger the callback based I2C read. Drop the
...
temperatured data from the FIFO stream. Add some flags to stop the callbacks
trampling over the configuration.
2011-08-19 14:28:33 -05:00
James Cotton
3465eb2f30
PiOS F2 I2C: Add a callback based transfer. This needs merging into the main
...
transfer function like SPI but I will leave that for now to avoid creating a
lot of changes in the main code.
2011-08-19 13:38:11 -05:00
James Cotton
7444337418
F2 PiOS I2C: Add a poor man semaphore here in case we start calling I2C
...
transfers from IRQ. Also catch the double 0x70084 event which was locking up
the FSM with -Os enabled. I did this in a cheating way (filtering the event
based on state) but it's the cleanest I can see. Hopefully a DMA version of
I2C will fix this.
2011-08-19 11:39:50 -05:00
James Cotton
b0e04e5f79
PIOS SPI: Make sure the non-freertos busy flag inits to zero
2011-08-19 10:52:50 -05:00
James Cotton
c7034ef8a6
IMU3000: Fix a constant that made the sampling rate 1kh instead of 8 internaly.
...
No downsample that (in IMU3000) by 8 to get gyros at 1khz. Well about 256 Hz
nyquist and shouldn't cause substantial issues for EKF.
2011-08-18 13:01:51 -05:00
James Cotton
bdb9dc0a54
BMA180: Use DMA for getting the accels and use callback to push it onto the
...
stack.
2011-08-18 12:51:22 -05:00
James Cotton
3b6ffc8afa
PiSO SPI: Implement a poor mans semaphore for non-freertos systems.
2011-08-18 12:51:00 -05:00
James Cotton
294e0cbdff
IMU3000: Change IMU3000 api right now so it only reads one element from the
...
fifo but swaps the endian appropriately.
2011-08-18 11:03:56 -05:00
James Cotton
11ac0707da
BMA180: Reset BMA180 chip at reconfiguration.
2011-08-17 06:49:56 -05:00
James Cotton
71a1cdff62
PiOS SPI: For F2 need to have the same receive and transmit length when using
...
CRC. This wasn't the case on F1. With CRC the last byte of the buffer passed
to PIOS_SPI_TransferBlock is NOT USED. This is the case on both F1 and F2.
Also need to DeInit DMA before enabling or it doesn't enable successfully.
Finally added a timeout which sets a fail on the pios spi transfer in the case
that either of the dma channels fails to enable.
2011-08-16 11:29:15 -05:00
James Cotton
bcca705750
Disable beta hardware bmp085 driver until it's updated. Not necessary anyway
...
since on the INS.
2011-08-16 08:55:02 -05:00
James Cotton
35eef66bfe
OP-557: Add a UAVO access method to erase the entire flash chip. Normally not
...
needed by users because if too much changes I change the FS magic and trigger a
wipe.
Possibly the erase should require a particular "magic" object id value to
execute? This would make it harder to do manually through UAVOs though.
2011-08-15 10:33:27 -05:00
James Cotton
db9c73db45
Get SPI closer to working. The flags in the pios_config should match the
...
stream number, not channel number. Also DeInit DMA section in the init process
which makes debugging and init behavior more reliable.
2011-08-15 04:47:53 -05:00
James Cotton
86b652bbab
Merge branch 'next' into camera_stabilization
2011-08-14 18:07:57 -05:00
zedamota
e736b17cc4
Merge remote-tracking branch 'remotes/origin/next' into GCS_ChangesToUI-RuntimeCFG
...
Conflicts:
ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.cpp
ground/openpilotgcs/src/plugins/config/configgadgetwidget.h
ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp
2011-08-14 15:48:16 +01:00
James Cotton
c5ed82086d
Configure the interrupt information before enabling. Still looping in IRQ so
...
configuration needs work.
2011-08-14 02:00:52 -05:00
James Cotton
80c2d45d93
Fix the BMP085 interrupt handler and get it producing data. Driver needs some
...
work to abstract away the actual calculation of altitude from pressure and
temperature.
2011-08-13 20:49:07 -05:00
James Cotton
a2b76adc33
Attitude: Do not start attitude estimation until accel data appears. This
...
fixes the NaN when AttitudeSettings not available.
2011-08-13 18:53:42 -05:00
James Cotton
62f51fc92d
Some improvements to the HMC5883 driver. Still getting funny values but I
...
suspect the chip at this point.
2011-08-13 11:20:32 -05:00
James Cotton
13e5f4123a
Reading gyro registers directly working.
2011-08-13 08:33:46 -05:00
James Cotton
f82e5dde33
Fix the EXTI IRQ handlers
2011-08-13 07:13:21 -05:00
James Cotton
e1f7a5003d
Fix up SPI DMA streams
2011-08-13 04:54:19 -05:00
James Cotton
77cca9ba30
Move EXTI handlers into other drivers
2011-08-13 01:29:17 -05:00
James Cotton
6d018c046e
Get BMA180 working. Need to move exti stuff into it until pios_exti
...
implemented properly
2011-08-13 01:10:33 -05:00
James Cotton
5619e33292
Bootloader now jumps to functioning code for INS. Consistent with AHRS code.
2011-08-12 22:52:47 -05:00
James Cotton
6529b8360f
Trying to get linker system working for INS
2011-08-12 21:28:02 -05:00
James Cotton
1d1f351233
Pios Delay: Add function for measuring time difference between two cycle counts
2011-08-12 04:29:53 -05:00
James Cotton
b3b4fcd007
Fix linker script and get rid of dead code
2011-08-12 03:44:55 -05:00
James Cotton
f247112090
PiOS F2: Move IMU3000 to device dependent :(. Now they all are. Need to
...
abstract as much as possible out since init is almost identicalc and protocol
COULD be device independent.
2011-08-12 03:38:45 -05:00
James Cotton
8c1dd7b929
Make BMP085 driver device dependent and update to new driver style.
2011-08-12 03:38:45 -05:00
James Cotton
9d76efa2aa
Move BMA180 driver to common architecture style.
2011-08-12 03:38:45 -05:00
James Cotton
1dc08e5cf7
F2 PiOS: Small fix to hmc5883 driver
2011-08-12 03:38:44 -05:00
James Cotton
ba413d5dad
F2 StdPeriph: Make the StdPeriph take in config parameters as const.
...
Unfortunately they don't do this upstream :(
2011-08-12 03:38:40 -05:00
James Cotton
ef0cdae622
PiOS F2: Remove clock initialization from usart since it is in pios_sys.c
2011-08-12 02:28:02 -05:00
James Cotton
6310f46705
HMC5883: Update driver for F2. Move to STM32F2xx directory since it is device
...
dependent. Abstract configuration out of board.h file into a standard board.c
structure.
2011-08-12 02:26:51 -05:00
James Cotton
9c7799dfe6
UAVObject Init: Get rid of deprecated linker init code
2011-08-10 22:48:42 -05:00
James Cotton
0c2c48bee6
F2 PiOS: More changes for spi to work (not completed)
2011-08-09 12:59:10 -05:00
James Cotton
a097ff784b
F2 PiOS: Getting the I2C driver working again (copying changes from Zippe,
...
thanks again man!)
2011-08-09 12:58:46 -05:00
James Cotton
8be9ac9cc9
PiOS: Move driver out of common directory since it makes calls to configure the
...
EXTI system.
2011-08-09 12:51:26 -05:00
James Cotton
d78450eae8
Move some of the F2 defines into the makefile to make them global. Fixes some
...
issues with grabbing the wrong stm32 configuration file.
2011-08-09 01:19:05 -05:00
James Cotton
27213c7fd9
F2 PiOS USART: Update to the new driver format for coms
2011-08-09 01:18:25 -05:00
James Cotton
479ba7c21f
OP-378 INS: Continue getting F2 INS to compile
2011-08-08 08:36:40 -05:00
sambas
9f35b6939c
Bind IO fix
2011-08-07 10:10:52 +03:00
James Cotton
558bdddeaf
INS: Almost got Bootloader compiling *sigh*
2011-08-06 21:27:29 -05:00
James Cotton
a0d77faf4b
PiOS: Move pios_iap out of common. It is STM32F1x specific. Created an
...
STM32F2xx stub version. This needs cleaning up - there is some common code,
most of which can probably move to the bl_helper function.
2011-08-06 20:24:07 -05:00
James Cotton
f23ec059fe
dos2unix
2011-08-06 19:53:46 -05:00
James Cotton
1ccb9a1947
Some changes to BL to get running on F2. Also disables it for now (flash
...
interface is different).
2011-08-06 19:46:41 -05:00
James Cotton
d1c9ac0705
PiOS F2: Commit the F2 port of PiOS from Zippe. Thanks for doing all the hard
...
work man :-D
2011-08-06 19:36:56 -05:00
James Cotton
0bba13a0e9
Merge branch 'next' into ins
...
Conflicts:
flight/INS/Makefile
flight/INS/pios_board.c
flight/Modules/Altitude/altitude.c
flight/PiOS/Boards/STM3210E_INS.h
flight/PiOS/STM32F10x/link_STM3210E_INS_BL_sections.ld
flight/PiOS/STM32F10x/link_STM3210E_INS_HD_BL.ld
flight/PiOS/STM32F10x/link_STM3210E_INS_HD_NB.ld
flight/PiOS/STM32F10x/link_STM3210E_INS_memory.ld
flight/PiOS/STM32F10x/link_STM3210E_INS_sections.ld
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-08-06 17:25:56 -05:00
sambas
1e67b5e3b5
DSMx_binder, hw setting 0 disabled, 1-10 bind pulses. Manual disable after successful bind. Only for flexiport.
2011-08-06 22:16:47 +03:00
sambas
a454cf844b
DX8 support, BIND3 only
2011-08-04 19:20:05 +03:00
Stacey Sheldon
06cdeb7b61
rcvr: support multiple simultaneous receivers
...
Now also supports multiple instances of the Spektrum driver.
These are configured as Spektrum1 and Spektrum2.
2011-08-02 01:22:04 -04:00
Stacey Sheldon
829b8b83f6
rcvr: Add GCS receiver driver for rcvr via telemetry
...
This allows the GCS to emulate a receiver device via the
telemetry link.
Select "GCS" as your input type in the manualcontrol config
screen and calibrate it as normal.
Note: The expected values for the channels are in microseconds
just like a PWM or PPM input device. The channel values
are validated against minimum/maximum pulse lengths just
like normal receivers.
2011-08-02 01:22:04 -04:00
Stacey Sheldon
2f79e4fa76
Merge remote branch 'origin/stac/refactor-usart-com' into next
2011-07-31 09:41:06 -04:00
James Cotton
568ea13471
Merge branch 'next' into stac/refactor-usart-com
2011-07-31 09:13:27 +09:00
Stacey Sheldon
c2fb0d8b43
com: allow run-time allocation of buffers
2011-07-29 15:33:14 -04:00
Stacey Sheldon
8b0415d905
bl: alternate stopwatch for small bootloaders
...
The small bootloaders (CC and PipX) are out of flash space
so their stopwatch implementation has been swapped out for
one based on the DELAY clock that takes about 500 bytes less
of code space.
Identical functionality is preserved.
2011-07-29 15:33:01 -04:00
Stacey Sheldon
13f9b0e09d
Merge remote branch 'origin/OP-498_jwhitlock_add-ppm-to-cc' into next
2011-07-28 22:15:01 -04:00
Stacey Sheldon
a3888ecd48
usart: ensure callbacks are bound in the correct order
2011-07-27 23:21:39 -04:00
Stacey Sheldon
5f8760a55c
com: Move buffering out of USART/HID layer and into COM layer
...
This allows the spektrum and sbus receiver drivers to bind
directly to the usart layer using a properly exported API
rather than overriding the interrupt handler.
Bytes are now pushed directly from the usart layer into the
com layer without any buffering. The com layer performs all
of the buffering.
A further benefit from this approach is that we can put all
blocking/non-blocking behaviour into the COM layer and not
in the underlying drivers.
Misc related changes:
- Remove obsolete .handler field from irq configs
- Adapt all users of PIOS_COM_* functions to new API
- Fixup callers of PIOS_USB_HID_Init()
2011-07-27 19:45:38 -04:00
James
60136f0464
Add support for PPM transmitters up to 12 channels. Small array indexing issue in PIOS_PPM_Get.
2011-07-27 00:33:32 +01:00
Mike Smith
df5569c758
Fix a stupid off-by-one that prevented this code from working.
...
Update to use 32-bit microsecond values.
Remove PIOS_DELAY_DiffuS per consensus (caller can do it easily themselves).
Update the core delay logic per Stac's suggestion to a version that is
resistant to various overflows.
2011-07-25 20:55:48 -07:00