summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* altos: Provide ISR-based code paths for SPIserial-at-interruptKeith Packard2012-05-18
| | | | | | | This allows SPI to be entirely interrupt driven, with callbacks for completion. It's not tested yet... Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add conversion between Pa and metersKeith Packard2012-05-18
| | | | | | To be used with the MS5607 which generates data in calibrated units. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Check MS5607 CRC. Clean up MS5607 APIKeith Packard2012-05-18
| | | | | | It's not ready for flight yet, but at least it's sensible now. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Conditional byte swapping in mpu6000 driverKeith Packard2012-05-18
| | | | | | Only needed on LSB machines. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Hacking at cc1120 driverKeith Packard2012-05-07
| | | | | | Still doesn't work, but this adds a ton more register definitions Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Get mpu6000 workingKeith Packard2012-05-07
| | | | | | | This initializes the device appropraitely, and provides a command to dump the current values in converted form. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: stm: pass DMA buffer index to DMA completion callbackKeith Packard2012-05-07
| | | | | | This lets the user know which DMA has finished. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: stm: delay during USB config with pull-up offKeith Packard2012-05-07
| | | | | | | This makes sure that a reboot will reliably cause the device to disconnect from the USB bus. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: stm: share i2c_stop code between send and recvKeith Packard2012-05-07
| | | | | | | This waits for the stop signal to appear on the bus, necessary before starting another transaction. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: stm i2c DMA for large recv appears to workKeith Packard2012-05-06
| | | | | | | | Transaction appears to be clean on the i2c bus now; correct number of bytes received, and the nack and stop at the right time. This tests > 2 length reads; should try that too. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: megametrum needs ao_mpu6000.hKeith Packard2012-05-06
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch megametrum compile to -OsKeith Packard2012-05-06
| | | | | | Looks like gcc has compiler bugs with -O0 Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: STM i2c work.Keith Packard2012-05-06
| | | | | | | Start now driven by interrupts Send now done with DMA and interrupts Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Report latest telemetry data, rather than using the oldestKeith Packard2012-05-01
| | | | | | | ao_sample_adc points to the *next* ADC entry, rather than the most recent one. Step back one entry to get the latest valid data. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add hmc5883 and mpu6000 drivers to megametrum buildKeith Packard2012-04-25
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add mpu6000 and hmc5883 stubsKeith Packard2012-04-25
| | | | | | No real drivers here yet, just some testing stubs Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add STM I2C recv and stop funcsKeith Packard2012-04-25
| | | | | | Recv doesn't appear to work with more than one byte Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Oopsed the STM DMA channels for I2C1Keith Packard2012-04-25
| | | | | | TX is 6, RX is 7 Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Starting to write cc1120 driverKeith Packard2012-04-17
| | | | | | | This does "something" in radio test mode, appearing to generate a 730MHz signal. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Remove debug printf from cc1111 check-stack scriptKeith Packard2012-04-14
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Respect apogee lockout time in flight algorithmKeith Packard2012-04-14
| | | | | | | | | | | This prevents any apogee detection from occurring until the specified number of seconds after boost. This also prevents the switch from accel+baro to baro only mode in the Kalman filter. The test frame work is also changed to look for Apogee lockout: in the eeprom input file. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Clean up test scriptsKeith Packard2012-04-14
| | | | | | | | The flight test scripts were using invalid bash syntax. Clean that up and also switch the default flight directory to my new ~/misc/rockets/flights directory. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Correct STM USB driverKeith Packard2012-04-14
| | | | | | | Configure endpoint registers correctly now. Restructure code to make sure we send the right IN packets. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Check all USE_SERIAL_*_STDIO when computing AO_NUM_STDIOSKeith Packard2012-04-14
| | | | | | | | AO_NUM_STDIOS is allocated based on the total number of possible stdio values. Now that multiple serial stdio are possible, make sure to check all of them. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Set USB Interrupt endpoint interval to maximum allowedKeith Packard2012-04-14
| | | | | | | We don't ever send anything over this channel, so there's no sense asking the host to poll it very often. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Pull more interfaces out of ao.h and move to separate filesKeith Packard2012-04-14
| | | | | | This moves the aes, btm, companion, lcd and packet interfaces out of ao.h Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: ao_telelaunch.c got left in src directoryKeith Packard2012-04-14
| | | | | | Should live in product/ao_telelaunch.c Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Massive product config cleanupKeith Packard2012-04-14
| | | | | | | | Support multiple serial ports more cleanly Split out parts of ao.h into separate feature header files Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Start adding apogee lockout supportKeith Packard2012-04-14
| | | | | | Remove radio channel support too. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch stm-demo to HSE clock, add USBKeith Packard2012-04-14
| | | | | | | Requires that SB17 be soldered shut so that the MCO from the STlink CPU is available the target for HSE input. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Rework how STM clocks are initialized.Keith Packard2012-04-14
| | | | | | | | | | Clean all of the RCC configuration up after turning on the clocks. Use the MSI clock during initialization to avoid messing around with the HSI clock temporarily. Allow for an external clock on the HSE line. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Use new USB driver in megametrum-v0.1 productKeith Packard2012-04-14
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add STM USB driverKeith Packard2012-04-14
| | | | | | Emulates the usual CDC-ACM device Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add STM ao_arch_reboot implementationKeith Packard2012-04-14
| | | | | | Uses the AIRCR register to force a reset Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add register definitions for STM syscfg and usbKeith Packard2012-04-14
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add support for multiple SPI busses and sharing device driversKeith Packard2012-04-14
| | | | | | | | | | | | | | | | The STM32L151 has several SPI busses, and we want to use more than one, so add a 'bus' parameter to the SPI interfaces. To avoid wasting time on AVR and CC1111 processors which only use one SPI bus, elide those parameters from the actual functions by wrapping them with macros. Configuring chip select is now all macroized so that each chip can have its own version, allowing the STM to share the various SPI device drivers with the cc1111 and avr processors. Note that only the M25 driver has been ported; porting the others is 'trivial', but not necessary at this point. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: make megametrum beeper test keep beepingKeith Packard2012-04-09
| | | | | | Used to measure the beep frequency. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Check for cc1111 flash overflowKeith Packard2012-04-09
| | | | | | | The linker is supposed to do this, but it ignores the static initializer data added after the code. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Increase STM SPI speed to PCLK/4Keith Packard2012-04-09
| | | | | | The pressure sensor seems happy at this speed. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Move MS5607 configuration to ao_pins.hKeith Packard2012-04-09
| | | | | | Which SPI port and where chip select is to be found are product specific. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add missing parens in ao_ms5607.hKeith Packard2012-04-09
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Reduce MS5607 reset delay, increase conversion delayKeith Packard2012-04-09
| | | | | | | Reset doesn't take very long, while doing a conversion seems to take more than 10ms. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make STM clock configuration per-product. Fix 32MHz CPU speedKeith Packard2012-04-09
| | | | | | | | | | This moves all of the STM clock configuration into ao_pins.h so that each product can configure it separately. While doing this, I discovered that the flash memory mode (64-bit, prefetch, latency 1) wasn't actually getting set, which is why the CPU refused to work at 32MHz. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add beeper driver to STM archKeith Packard2012-04-09
| | | | | | Drives the MegaMetrum beeper Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Test I2C code on discovery board.Keith Packard2012-04-09
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: ARM -O0 flag appears to generate buggy codeKeith Packard2012-04-09
| | | | | | Use -Os always, which is annoying... Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make ms5607 driver do somethingKeith Packard2012-04-09
| | | | | | | It's loading prom values and converting sensor data, but it's getting the wrong answer at present. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: add STM I2C driver.Keith Packard2012-04-09
| | | | | | Not well tested yet... Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Slow STM SPI down a bit so the MS5607 returns valuesKeith Packard2012-04-09
| | | | | | | It's still not working right, but at least it returns something other than all zeros... Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow STM DMA channels to be reserved for one useKeith Packard2012-04-09
| | | | | | | | | This allows a single user of a DMA channel to reserve it for use without needing to lock the mutex; this is required for DMA from the ADC to work on megametrum as it wants to start DMA from an interrupt handler, which cannot block on a mutex. Signed-off-by: Keith Packard <keithp@keithp.com>