summaryrefslogtreecommitdiff
path: root/src/lpc
Commit message (Collapse)AuthorAge
...
| * altos: Wake up on LPC usart ISR only onceKeith Packard2013-08-25
| | | | | | | | | | | | | | Instead of waking up after every character, wait until the FIFO is empty to reduce overhead Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Set default LPC stack to 512 bytes, Em to 384 bytesKeith Packard2013-08-25
| | | | | | | | | | | | | | The default for lpc has been raised to 512 bytes, but Em doesn't have enough RAM for that. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Use installed arm compiler for LPCKeith Packard2013-08-25
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/lpc: Stop using burst mode for LPC ADCKeith Packard2013-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | Burst mode doesn't stop after one round of conversions, so we end up getting incorrect values in whatever the last conversion register is. Just use single conversions and take an interrupt per channel. Also, slow down the ADC so that our values are more stable -- just need to make sure we get the whole conversion sequence done 100 times a second. Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Wake up on LPC usart ISR only onceKeith Packard2013-08-17
| | | | | | | | | | | | | | Instead of waking up after every character, wait until the FIFO is empty to reduce overhead Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Set default LPC stack to 512 bytes, Em to 384 bytesKeith Packard2013-08-17
| | | | | | | | | | | | | | The default for lpc has been raised to 512 bytes, but Em doesn't have enough RAM for that. Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos/lpc: Rename serial port to 'serial0'Keith Packard2013-07-02
|/ | | | | | This lets existing serial port users find the right function. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Add boot loaderKeith Packard2013-06-24
| | | | | | Support the USB boot loader, add USB pull-up support. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Don't disable all interrupts when disabling one interruptKeith Packard2013-06-22
| | | | | | | | | The nvic iser and icer registers read value indicates all enabled interrupts, icer writes disable the set interrupts. Re-writing icer with the current value ends up disabling all interrupts, not exactly what we wanted. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Remove ao_usb_task structureKeith Packard2013-06-22
| | | | | | It's not used Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Enable brown-out-detectorKeith Packard2013-06-22
| | | | | | Make sure the processor does something sensible when the power disappears. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Get rid of ADC filterKeith Packard2013-06-17
| | | | | | | Now that the source of the Vcc noise has been identified, remove the unnecessary ADC filtering. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Get the IRC turned off after boot timeKeith Packard2013-06-17
| | | | | | | This involved carefully moving the USB away from the IRC before turning it off. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Remove spurious semicolonKeith Packard2013-06-16
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Don't disable all of the clocks just yet, USB doesn't workKeith Packard2013-06-16
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Turn off more clocks, disable USART for easyminiKeith Packard2013-06-16
| | | | | | Try to reduce noise on the power supply. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Filter ADC inputsKeith Packard2013-06-15
| | | | | | | They're amazingly noisy on EasyMini, so just filter them as the only thing we use them for is battery and pyro numbers. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Make ADC inputs workKeith Packard2013-06-15
| | | | | | | They're still very unstable (bouncing around a lot), but at least they seem to report useful stuff now. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Force idle mode if USB gets an address during boot timeKeith Packard2013-05-19
| | | | | | This lets EasyMini be booted to idle mode by simply plugging it into USB. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Reset SPI device at startup timeKeith Packard2013-05-19
| | | | | | Wasn't doing the reset sequence correctly (write 0, then write 1). Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Configuring wrong pin for SPI1 MOSIKeith Packard2013-05-19
| | | | | | Was setting configuration for PIO1_21 instead of PIO0_21. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Allow for alternate SPI SCLK0 pin usageKeith Packard2013-05-19
| | | | | | | SPI SCLK0 can appear on three different pins; let the application configure which one it wants. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Leave SPI enabled all the timeKeith Packard2013-05-19
| | | | | | Might be able to turn it off with some care; more experimentation required. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Create TX/RX busy macros for SPI driverKeith Packard2013-05-19
| | | | | | | Check for both fifo status *and* device busy to make sure the device is idle before we touch any registers. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Fix beeper driverKeith Packard2013-05-19
| | | | | | | | Set prescale limit, not current prescale value (pr instead of pc). Flip output 1 on PWM match (set emc toggle for channel 1). Don't hold counter in reset (turn off CRST bit). Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Missing parens around ao_gpio_set macroKeith Packard2013-05-19
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: SPI runs off main clock (48MHz), not sysclk (24MHz)Keith Packard2013-05-19
| | | | | | Update SPI speed definitions to match Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Pull ADC data from the correct registersKeith Packard2013-05-19
| | | | | | | | Was just stepping through register space arbitrarily, which would have worked for EasyMini, but might have failed later if the ADC pin usage wasn't consecutive. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Don't use loader to place USB endpoint data in USB ramKeith Packard2013-05-19
| | | | | | | Instead, just assign a fixed address in registers.ld. This avoids a confusing section in the elf file. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add EXTI_PIN_NOCONFIGURE to exti interface, use for MS5607Keith Packard2013-05-19
| | | | | | | | This asks the EXTI code to not mess with the pin configuration so that the MS5607 driver can get interrupts on the MISO pin while still using it for SPI. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Make EXTI code work.Keith Packard2013-05-19
| | | | | | | | Clear rise/fall bits in ISR to avoid re-entering. Block interrupts around enable/disable bits. Create shared _ao_exti_set_enable function to control mask changes. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Stick USB control structure in USB memoryKeith Packard2013-05-18
| | | | | | | No reason to have that in regular ram, and it means we've got space for large enough stacks now Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Use separate interrupt stackKeith Packard2013-05-18
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Try a smaller stack.Keith Packard2013-05-18
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Add pin interrupt driverKeith Packard2013-05-18
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Add beep driverKeith Packard2013-05-18
| | | | | | Hardwired to our current beeper pin Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Add ADC driverKeith Packard2013-05-18
| | | | | | Uses burst mode to get the whole set of values in one interrupt Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: add gpio int, spi, adc and ct32b defines to lpc.hKeith Packard2013-05-18
| | | | | | Lots more devices Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Clean up broken IOCONF definesKeith Packard2013-05-18
| | | | | | Missing comment closes Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Fix ao_enable_input, add ao_enable_analogKeith Packard2013-05-18
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: LPC interrupt priorities are just 0-3Keith Packard2013-05-18
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add LPC spi driverKeith Packard2013-05-18
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Get USB workingKeith Packard2013-05-17
| | | | | | | The lpc demo now has a USB command line. Also allocates system stack so we know when ram is tight at build time Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Finish off LPC USB register definitionsKeith Packard2013-05-17
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Start adding USB register definesKeith Packard2013-05-17
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Start adding USB register definitionsKeith Packard2013-05-17
| | | | | | Just the bare struct, no defines yet. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Take advantage of USART TX fifoKeith Packard2013-05-17
| | | | | | | The USART has a 16-byte TX fifo; keep rough track of how full it is to avoid waiting for an interrupt after every TX byte. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Get USART runningKeith Packard2013-05-17
| | | | | | Adds a simple demo thread that spews data to the serial port Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lpc: Get 100Hz timer runningKeith Packard2013-05-17
| | | | | | Use systick, which is built into the ARM core Signed-off-by: Keith Packard <keithp@keithp.com>
* lpc: Initial lpcxpresso bitsKeith Packard2013-05-17
This gets the LPC11U14 clock set to the PLL and blinks the LED. Signed-off-by: Keith Packard <keithp@keithp.com>