summaryrefslogtreecommitdiff
path: root/src/drivers
Commit message (Collapse)AuthorAge
...
* altos: Clean up cc1120 driver a bitKeith Packard2012-06-27
| | | | | | Make some variables static, remove stale debug code Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Abort radio receive when using flash memory on megametrumKeith Packard2012-06-26
| | | | | | | | | | Radio receive camps on the SPI bus, making it impossible to access flash memory. Abort any pending receive operation when trying to get to the flash part. Yes, this is a total hack. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Optimize FEC encode and decodeKeith Packard2012-06-26
| | | | | | | | | | | | | Integrate interleaving, CRC and padding within the decode/encode functions. Provide for ISR priorities so that the 1120 RX interrupt takes precedence over the other interrupts or we risk losing bits. Optimize the viterbi decoder a bit (goes from 10ms per packet to 7ms per packet). Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Clean up usage of port parametersKeith Packard2012-06-26
| | | | | | | | Make stm port parameters always be pointers; this avoids the confusion where some macros took '&port' and others took a bare 'port', and also unifies code to run on other processors in a consistent fashion. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Incremental viterbi decodeKeith Packard2012-06-25
| | | | | | | | Decode radio input one interleave block at a time. This overlaps the decode computation with the packet reception, leading to lower latency in an attempt to keep up with the transmitter. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: decode cc1120 received packetsKeith Packard2012-06-25
| | | | | | Call the fec decode function, compute RSSI and check CRC Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Get cc1120 packet reception workingKeith Packard2012-06-25
| | | | | | Interrupt-per-bit, but it seems to work Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Move FEC code to coreKeith Packard2012-06-21
| | | | | | It's not a driver as it's not specific to the 1120 chip Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: make cc1120 ao_radio_send re-entrantKeith Packard2012-06-17
| | | | | | It gets called from multiple tasks, so put local data on the stack. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Software implemenation of CC1111 radio encodingKeith Packard2012-06-17
| | | | | | | Add CRC, whitening, FEC and interleaving routines for transmission path to allow cc1120 to send telem packets to cc1111. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Use interrupts to wake up after RDF transmission.Keith Packard2012-06-17
| | | | | | Also clean up the debug output Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Crank cc1120 power down to 0dBm to avoid crashing CPUKeith Packard2012-06-17
| | | | | | | Looks like RFI from the transmitter is confusing the CPU; lower the 1120 power output from +14dBm to +0dBm to keep the CPU happy. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Start making cc1120 radio workKeith Packard2012-06-15
| | | | | | RDF tones and radio calibration work now. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Fix cc1120 packet mode datarate and configKeith Packard2012-06-15
| | | | | | Was using the wrong function Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make sure cc1120 is initialized correctly at startup timeKeith Packard2012-06-15
| | | | | | Check to make sure it pulls down MISO when CS is enabled. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: use 'b' command for radio beepKeith Packard2012-06-15
| | | | | | 'B' is used by the baro data dumper. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Fix RDF mode data rate and PKT_CFG0 valueKeith Packard2012-06-15
| | | | | | | Changes tone to the desired 1kHz frequency and ensures the PKT_CFG0 has the right value. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Actually write cc1120 register valuesKeith Packard2012-06-15
| | | | | | Helps to not use 'read' mode when writing. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Configure cc1120 frequencyKeith Packard2012-06-15
| | | | | | | Set default conversion value, and pull the selected frequency calibration data out of the config block. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Other half of the ms5607 prom reporting patchKeith Packard2012-06-04
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Intgrate hmc5883 sensor into adc ringKeith Packard2012-06-02
| | | | | | | Creates a task to poll the mag sensor and place the data into the sensor data ring. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Get HMC5883 driver limping alongKeith Packard2012-06-02
| | | | | | Not pushing data into the ring yet, but the chip appears to work now. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Try to get hmc5883 workingKeith Packard2012-05-28
| | | | | | No joy yet Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make telepyro-v0.1 build with new ao_data structKeith Packard2012-05-27
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make telescience-v0.1 build with new ao_data structKeith Packard2012-05-27
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Don't start ADC ring until the other sensors have a valid valueKeith Packard2012-05-27
| | | | | | Yes, this is still an ugly kludge, but it's easy. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Poll mpu6000 values every tick and stash them locally.Keith Packard2012-05-18
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Finish ms5607 supportKeith Packard2012-05-18
| | | | | | | | | | This has the MS5607 polling once each tick for pressure and temperature and then saving that in a global variable. The command UI provides for dumping the prom data so that an eeprom file can have raw sensor data along with the conversion factors necessary to compute useful values. 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 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: 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: 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: 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: 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: 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: 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 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 DMA, SPI and MS5607 driversKeith Packard2012-04-06
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add stub cc1120 driverKeith Packard2012-03-31
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* Allow skytraq to be on non-default serial portKeith Packard2012-03-28
| | | | | | | Provide ao_gps_getchar, ao_gps_putchar and ao_gps_set_speed hooks to let product specify functions for serial access. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Trim skytraq NMEA messages. Shrink NMEA header matching codeKeith Packard2011-11-12
| | | | | | | | | | Tell the skytraq to not bother sending a bunch of the NMEA messages that we don't parse. Explicitly look for 'G' follows by 'P' instead of having some general header matching code. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Remove LCD debugging codeKeith Packard2011-11-12
| | | | | | This isn't needed anymore. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Add ao_lcd_cursor_on/offKeith Packard2011-11-12
| | | | | | This shows or hides a blinking cursor on the LCD. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make ao_xmem funcs require __xdata void * instead of castingKeith Packard2011-11-11
| | | | | | | | | | | | Having an explicit cast in the ao_xmem wrapper macros caused the compiler to generate garbage values for pdata addresses, making the upper byte 0x00 instead of the required 0xf0. Removing the casts from the ao_xmem macros exposed this problem, so a new PDATA_TO_XDATA macros was added, along with a CODE_TO_XDATA macro which serve to cast pointers, with suitable address modifications, so that things work again. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Shrink Skytraq NMEA parsing - common nmea_finish codeKeith Packard2011-11-11
| | | | | | | This shares the checksum testing across all three lines, saving another 103 bytes. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: shrink Skytraq NMEA parsing moreKeith Packard2011-11-11
| | | | | | This cuts another 78 bytes Signed-off-by: Keith Packard <keithp@keithp.com>