Commit Graph
27 Commits
Author SHA1 Message Date
Lorenz Meier 3a004ffd68 PWM Out: Simplify startup logic
The simpler logic is more robust towards future refactoring.
2021-04-12 19:11:22 -04:00
Beat Küng faaee0f077 fix pwm_out: avoid race condition when setting mode
Bootup failed in some cases with:
ERROR [mixer] can't reset mixers on /dev/pwm_output1

The reason was the mode change was not applied yet.
2021-04-12 18:39:51 +02:00
Daniel Agar b2faea7f43 pwm_out: check PWM_OUT_MAX_INSTANCES with conditional
- PWM_OUT_MAX_INSTANCES is a constant (static constexpr) not available to the preprocessor
2021-03-23 22:13:18 -04:00
Daniel Agar 9b1cf98474 drivers/pwm_out: fix launch for non-multi case
- skip _objects[1] access if only 1 possible instance
 - command line request new mode via atomic
2021-03-23 10:40:22 -04:00
Lorenz Meier 6e9f745809 PWM out: Robustify initialization
This ensures that all PWM outputs get correctly inialized on targets that only support one.
2021-03-21 00:21:10 +01:00
Lorenz Meier d35ce21594 PWM out: Ensure correct loading on single-bank targets 2021-03-17 22:03:18 +01:00
Lorenz Meier 9490c64ad4 PWM out: provide running state
Important to know if the app is running.
2021-03-17 22:03:18 +01:00
Daniel Agar e7722b11eb pwm_out multi-instance support
PX4 uses banks of 8 outputs as a logical structure. Boards that have
more outputs than 8 get multiple instances. This is an arbitrary choice
that helps with overall structure and enables the mixing of different
device classes (like FMU, IO or UAVCAN).
2021-03-17 22:03:18 +01:00
Daniel Agar 15e76ad993 PWM12 mode for pwm_out and dshot 2021-02-12 09:19:18 -05:00
Daniel Agar 9f00fd2796 move PWM params to lib 2021-02-09 08:57:00 +01:00
Daniel Agar d1a3590aac PWM: transition PWM_{MIN,MAX,DISARMED,RATE} -> PWM_MAIN 2021-02-01 08:53:33 +01:00
Daniel Agar 318c7e83b3 support up to PWM 14
- generate PWM_MAIN 1-14
 - generate PWM_AUX 1-8
 - generate PWM_EXTRA 1-8
 - px4io and pwm_out directly read configuration parameters
    - only available and active physical outputs are actually shown for configuration
 - overall saves flash despite adding many new parameters
2021-01-30 15:55:53 +01:00
Daniel Agar 439c573242 delete unused PWM_SERVO_SET_TRIM_PWM 2021-01-25 10:55:57 -05:00
Daniel Agar 2ff69a4456 delete unused PWM_SERVO_SET_COUNT 2021-01-25 10:55:57 -05:00
Daniel Agar 967d35a6b6 rate limit most parameter_update subscriptions
- parameter updates can be quite expensive because they trigger nearly all modules to reload all of their parameters immediately
 - limit modules from updating faster than once per second
2021-01-10 21:09:15 -05:00
Beat Küng 002e671d3f fix pwm_out,dshot: set _num_outputs to 5 for mode_pwm5 2020-08-04 13:37:40 +02:00
Beat Küng 78e918ff3a fix pwm_out: respect _num_outputs for calling up_pwm_servo_set()
_num_outputs is set according to the mode_pwmX call, which is required
for camera triggering.
This fixes camera triggering via PWM, as it avoids overwriting the channel.
2020-08-04 13:37:40 +02:00
Daniel Agar aa7735c1c0 pwm_out: limit actuator control callbacks to primary groups
- add backup schedule at minimum PWM rate
 - fixes #15043
2020-07-23 09:45:04 -04:00
Beat Küng bb36b4a63f {dshot,pwm_out}: allow mode_pwm4 for boards with 5 outputs
Required on durandal if camera triggering is enabled.
2020-06-23 09:32:13 -04:00
Daniel Agar 6d846143dc pwm_out: update pwm outputs up to twice as fast as actual pwm frequency
- this is done to minimize real end-to-end latency
 - actual pulse width only updated for next period regardless of output module
 - add cycle interval perf counter
2020-05-07 13:18:09 -04:00
Daniel Agar 6dfe12d122 Revert "drivers/pwm_out: cleanup for multi-platform use" (#14812)
This reverts commit 0c8dcf94bc.
2020-05-02 23:42:51 -04:00
Daniel Agar 0c8dcf94bc drivers/pwm_out: cleanup for multi-platform use 2020-05-01 20:53:35 -04:00
Daniel Agar 2e2b9a97d3 pwm_out: delete fake() test command
- we have better motor test facilities these days
2020-03-31 19:12:31 -04:00
Daniel Agar ca81175b07 rename drivers/px4fmu -> drivers/pwm_out
- split out header
2020-03-31 19:12:31 -04:00
Hidenori 506d1855ff rename files and add navio target 2016-07-01 23:08:17 +02:00
Miguel Arroyo b871b322d2 Using Actuator Control Group 0 & Checkstyle fixes 2016-07-01 23:08:17 +02:00
Hidenori 76ee17e532 RC input and PWM output for Navio2 2016-07-01 23:08:17 +02:00