summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* altos: telefiretwo-v0.1 bitsKeith Packard2016-04-19
| | | | | | Get this board running. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add pad support for new telefire versionsKeith Packard2016-04-19
| | | | | | | | | | | | Makes the voltage divider values configurable, and allows for pyro channels that don't have the resistors necessary to check for a stuck relay. Also supports STM32L processors with wider GPIO registers, and uses the new ao_gpio_set/clr_bits functions to fire igniters rather than cc1111-specific code. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Support telefire products in cc1200 driverKeith Packard2016-04-19
| | | | | | Need to disable the pad code while testing the radio. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/detherm: Add servo driverKeith Packard2016-04-13
| | | | | | This just provides commands to test the servo with. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/detherm: Add ms5607 to dethermKeith Packard2016-04-13
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add easy mini plotting helper in test codeKeith Packard2016-04-13
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add ao_gpi_set/clr_bits functionsKeith Packard2016-04-13
| | | | | | These set or clear a group of bits in a single GPIO register all together. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Add pwm and exti driversKeith Packard2016-04-02
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add detherm productKeith Packard2016-04-02
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Support HPE clock sourceKeith Packard2016-04-02
| | | | | | Allows the use of crystals instead of requiring USB. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Add SPI driver.Keith Packard2016-04-02
| | | | | | | This also changes the DMA interface a bit so we can select for interrupts on only the interesting channels. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Use mini logging for detherm, just without ADCKeith Packard2016-04-02
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add Detherm log format (easymini without ADC)Keith Packard2016-04-02
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow for flight hardware without any ADC valuesKeith Packard2016-04-02
| | | | | | | Detherm has no ADC connections, so we don't need to disable the ADC when going to landed state. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add one-byte SPI output routine for LPC and STM coresKeith Packard2016-03-26
| | | | | | This allows for SPI output at interrupt time, one byte at a time. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Add fast timerKeith Packard2016-03-26
| | | | | | This offers a faster timer callback for higher-precision operation Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Allow apps to define different stack sizeKeith Packard2016-03-26
| | | | | | | While 512 bytes is a reasonable size, sometimes apps don't have that much stack space. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Validate current task SP in interrupt by looking at PSPKeith Packard2016-03-26
| | | | | | | | | We use a separate stack pointer for task code, which means we can verify that it is in range in any interrupt handler. This adds checks for the task stack (under #ifdef DEBUG) that run in ao_wakeup as well as at every timer interrupt. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Run scheduler code on interrupt stackKeith Packard2016-03-26
| | | | | | This provides a bit more room for tasks on their stack Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Construct .bin files for flash loadersKeith Packard2016-03-18
| | | | | | | This builds a .bin file which can be used with dfu-util instead of using openocd to load the initial flash loader. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Expose fast timer API from kernel/Keith Packard2016-03-18
| | | | | | This allows multiple SoCs to provide the same driver interface Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Fixed timing of panic display LED to be readableBart Massey2016-03-07
| | | | | | | | | | | When we don't have a beeper, there's no way to signal a 'warble' for panic. So, elide that bit. Second, panic can't use the scheduler and timer because those may not be running (or may have failed), and so it uses a delay loop. Add a configurable scale value to the panic loop so that the LED blinks can be read. For stm32f0 devices, scale that by the sysclk value to automatically make them of reasonable length.
* altos/stmf0: Fix build without second USB IN endpointKeith Packard2016-03-05
| | | | | | The code for the second IN endpoint was using the wrong ifdef. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add ChaosKey v1.0 productKeith Packard2016-03-02
| | | | | | Much like ChaosKey v0.1, just different SoC package and a few wiring changes. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/chaoskey: Add another USB endpoint to read raw dataKeith Packard2016-03-02
| | | | | | | | | | | This replaces having the single output switch based on a pin value and allows us to box the device and still fetch raw data. For now, this will use a special libusb2 program, ao-chaosread, to pull bits as I haven't figure out how to make linux provide two /dev entries for one USB device. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/chaoskey: Use SoC device ID as serial numberKeith Packard2016-02-15
| | | | | | | | | To make manufacturing these devices tractable, we don't want to require a custom firmware load for each device, but we still want a unique serial number. Fortunately, the SoC provides a 96-bit ID which we can use. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Use device ID as usb serial number if requestedKeith Packard2016-02-15
| | | | | | | | This exposes the hardware device ID (which is unique per-chip) as the USB serial number, avoiding the need to create a custom ROM image for each device. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/chaoskey: Encode both hardware and software versions in product IDKeith Packard2016-02-15
| | | | | | | We have no other way of reporting the software version, so just encode it in the product ID. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Fix location of device_id registerKeith Packard2016-02-15
| | | | | | Copied from stm32l and never fixed. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Another fix for non CDC-ACM devicesKeith Packard2016-02-08
| | | | | | | Need to set the bInterfaceNumber for the actual interface to zero when there isn't an INT interface before it. Signed-off-by: Keith Packard <keithp@keithp.com>
* Clean up stmf0 adc init.Bart Massey2016-02-08
| | | | | | This better matches the documented cal sequence. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Add missing ao_gpio.cKeith Packard2016-02-07
| | | | | | This contains the code for power managing the GPIO pins Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add simple stats test to TRNG codeKeith Packard2016-02-07
| | | | | | | This detects broken hardware by making sure the standard deviation in the raw values used to compute each buffer is at least 128. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Delay TRNG ADC long enough for HV supply to stabilizeKeith Packard2016-02-07
| | | | | | | Looks like it takes about 70ms for the supply to start running right, so delay after powering it up for that long. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/chaoskey-v0.1: Add power management and change USB classesKeith Packard2016-02-07
| | | | | | | Enable power management. Expose only a single IN endpoint. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add power management to TRNG driverKeith Packard2016-02-07
| | | | | | | Support suspend/resume of the TRNG power supply, delaying after resume to wait for it to stabilize. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow USB drivers to skip CDC-ACM -specific descriptorsKeith Packard2016-02-07
| | | | | | | | For devices not providing the standard CDC-ACM interface, let them skip the various descriptors and interfaces to provide a more limited set of capabilities. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Add suspend/resume supportKeith Packard2016-02-07
| | | | | | Allow USB suspend to suspend USB, GPIOs and master clock. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add power management APIsKeith Packard2016-02-07
| | | | | | | This provides sequenced suspend/resume functionality, allowing modules to register for power management at configuration time. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Allow projects to specify non-default stack sizeKeith Packard2016-02-07
| | | | | | 512 may not be suitable for everyone. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: remove blank line in stmf0/ao_timer.cKeith Packard2016-02-07
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/chaoskey: Delay ADC reading for 250ms at startupKeith Packard2016-01-28
| | | | | | This lets the HV supply stabilize before we start sampling values. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/chaoskey: Add support for flipping between raw and cooked bitsKeith Packard2016-01-28
| | | | | | | | Plug the 'force bootloader' thing onto the board while it's running and it will generate raw bits instead of running them through the CRC to whiten. Useful for validating the raw hardware. Signed-off-by: Keith Packard <keithp@keithp.com>
* src/chaoskey-v0.1: Add HV enable supportKeith Packard2016-01-19
| | | | | | Turn on the HV supply when the OS starts. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch PWM constants to end up exposing µsecKeith Packard2016-01-10
| | | | | | | | This changes the constants so the clock runs at 1MHz, making the step 1µsec each. Then make the period 20000 steps, or 20ms for a 50Hz frequency as before. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Set TeleMega v2.0 PWM to support servosKeith Packard2016-01-10
| | | | | | | | Typical servos use a 50Hz signal with less than 10% duty cycle. Set the divider to 10 and the range to 64000 to provide a reasonable level of detail down in the low range. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Insert inter telemetry-packet delayKeith Packard2016-01-10
| | | | | | The receivers take some time to reset the radio between packets, so make sure we don't send back-to-back telemetry too quickly by delaying after sending each telemetry packet.
* Switch TeleMega v2.0 to CC1200 radio chiptelemega-v2Keith Packard2016-01-09
| | | | | | That's what we're using, after all Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Set AO_PWM_TIMER_SCALE for telemega-v2.0Keith Packard2015-12-25
| | | | | | This is needed to configure the PWM timer correctly Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Get stm32l pwm driver workingKeith Packard2015-12-25
| | | | | | | | | | | | | Fix the CCMR1_OC1PE and CCMR2_OC3PE values. Disable clock when no PWM outputs are running. Fix the apb1enr value for the timer. Set ARR value to PWM_MAX - 1 -- ARR is off by one. Sets the GPIO pins to 40MHz bandwidth for sharper edges. Tested on EasyMega, but that code is not included as it breaks the companion protocol. Signed-off-by: Keith Packard <keithp@keithp.com>