aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple
Commit message (Collapse)AuthorAgeFilesLines
* fix timer capture TI1/TI2 bugbnewbold2015-06-131-10/+18
| | | | | | | | | | | | | | | | | | | Somewhat confusingly, the TI1/TI2 fields for capture/compare channels 2 and 4 are both flipped compared to channels 1 and 3 and do not correspond to the binary numbers. Section 15.4.7 of RM0008 (STM32F1 series) and Section 12.4.7 of RM0368 (STM32F4 series) read: CC1S: Capture/Compare 1 selection 01: CC1 channel is configured as input, IC1 is mapped on TI1 10: CC1 channel is configured as input, IC1 is mapped on TI2 CC2S: Capture/Compare 2 selection 01: CC2 channel is configured as input, IC2 is mapped on TI2 10: CC2 channel is configured as input, IC2 is mapped on TI1 This commit closes github issue #12 reported by GatorCh.
* squelch doxygen complaints about stm32f1 SPI header type signaturebnewbold2015-06-131-3/+4
|
* stm32f2-f4: refactor header guards, doxygen commentsbnewbold2015-06-1314-70/+70
|
* stm32f2-f4: refactor internal doxygen file referencesbnewbold2015-06-1321-21/+21
|
* F401RB is almost identical to F401CCbryan newbold2015-06-121-1/+1
|
* stm32f2-f4: rcc.h: order RCC_TIMER* numerically, not alphabeticallybryan newbold2015-06-121-5/+5
| | | | This avoids a bug with instantiating Wirish HardwareTimers.
* Fix hang on usart read overrun.Joseph Birr-Pixton2015-05-271-5/+12
| | | | | | | | | | This is improved on the previous patch: if we get an ORE without RXNE when we don't write a junk byte to our buffer. It also avoids the strange-looking blind read. See issue #107 for more info. Signed-off-by: Joseph Birr-Pixton <jpixton@gmail.com>
* stm32f4: add F4-specific IRQ entriesbnewbold2015-03-032-0/+10
| | | | | Perhaps these should be in F4-specific files instead of the shared F2-F4 files?
* stm32f4: note possibly incorrect max_baud entriesbnewbold2015-03-031-3/+3
|
* stm32f4: begin filling out F4 suport in headersbnewbold2015-03-033-2/+36
|
* stm32f4: don't try to build FSMC and Timers that hardware doesn't supportbnewbold2015-03-032-0/+29
|
* Squash some GCC __always_inline warnings.Marti Bolivar2014-11-262-8/+8
| | | | | | | Change from __always_inline to plain inline to silence warnings about possibly non-inlinable functions. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* libmaple_types.h: add ifndef guards for some macrosMarti Bolivar2014-11-261-0/+4
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Revert "always clear ISR DMA bit before even calling handler"Jonatan Olofsson2014-11-261-1/+1
|
* stm32f1: gpio.h: silence yet more __always_inline warningsMarti Bolivar2014-11-241-3/+1
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* nvic.h: silence some GCC inline warningsMarti Bolivar2014-11-241-6/+2
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* systick.h: add systick_attach_callback() prototypeMarti Bolivar2014-11-241-0/+1
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* libmaple/stm32.h: add a FIXME for USART configMarti Bolivar2014-11-241-0/+2
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* stm32f2-f4: refactor <series/stm32.h>Marti Bolivar2014-11-241-22/+28
| | | | | | Prep work for adding F4 support. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Rename various "stm32f2" directories "stm32f2-f4".Marti Bolivar2014-11-2428-0/+0
| | | | | | Preparatory patch for adding STM32F4 support. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Add STM32F2 I2C support.Marti Bolivar2014-11-244-14/+193
| | | | | | | Untested, but fixes the build and at least provides the correct register map and base pointers. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Removing redundant defines (see #85)Gregwar2014-02-211-2/+0
| | | | Signed-off-by: Grégoire Passault <g.passault@gmail.com>
* Adding support for cm900 and opencm904 boards (robotis)Gregwar2014-02-201-0/+9
| | | | Signed-off-by: Grégoire Passault <g.passault@gmail.com>
* Merge pull request #83 from wesen/bug/clear-dma-irq-flag-firstMarti Bolivar2014-02-061-1/+1
|\ | | | | always clear ISR DMA bit before even calling handler
| * always clear ISR DMA bit before even calling handlerManuel Odendahl2014-02-061-1/+1
| |
* | Revert "- tx and rx callbacks for each module"Marti Bolivar2014-01-103-300/+1
| | | | | | | | | | | | | | | | This reverts commit da01c80f24dc9c43ff951ea9fd283abb4628ceb7. Reverting pull request #54, which breaks examples/i2c-mcp4725-dac.cpp. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* | Revert "I2C slave support cleanups."Marti Bolivar2014-01-103-46/+9
| | | | | | | | | | | | | | | | This reverts commit 39cd07a640ee87b7937738d36f17019b2865bfae. Reverting pull request #54, which breaks examples/i2c-mcp4725-dac.cpp. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* | Revert "Added I2C slave echo example in examples folder. Using another ↵Marti Bolivar2014-01-102-5/+0
| | | | | | | | | | | | | | | | | | | | maple, write a byte and then read." This reverts commit 594724951553a882758c11497a4f03828b4f43e6. Reverting pull request #54, which breaks examples/i2c-mcp4725-dac.cpp. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* | Merge pull request #54 from ginge/masterMarti Bolivar2013-07-263-3/+344
|\ \ | | | | | | Added i2c slave support
| * | Added I2C slave echo example in examples folder. Using another maple, write ↵Barry Carter2012-09-052-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a byte and then read. Slight tidy up. Reformatted CREDITS file to be in correct order. Added a note about buffer overrun Signed-off-by:- Barry Carter <barry.carter@gmail.com>
| * | I2C slave support cleanups.Barry Carter2012-09-043-9/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added fix for corner case where badly behaving master doesn't NACK and we don't get the callbacks fires. Removed my own name from several places and added attribution to the correct place. Updated include comments to reference the fact it now supports I2C slave Signed-off-by:- Barry Carter <barry.carter@gmail.com>
| * | - tx and rx callbacks for each moduleBarry Carter2012-09-033-1/+300
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Callbacks can be called after each read/write cycle or per byte - Each I2C module can have different callbacks - General call support also working - Supports master and slave at same time. Also works with multimaster Usage: i2c_msg msg; char buffer[255]; main() { i2c_slave_enable(I2C1, I2C_FAST_MODE | I2C_SLAVE_DUAL_ADDRESS | I2C_SLAVE_GENERAL_CALL | I2C_SLAVE_USE_RX_BUFFER); // init slave mode. Enables master too i2c_slave_attach_recv_handler(I2C1, pmsg, funcrx); // attach receive handler i2c_slave_attach_transmit_handler(I2C1, pmsg, functx); // attach transmit handler i2c_slave_set_own_address(I2C1, 0x10); // set addresss 1 i2c_slave_set_own_address2(I2C1, 0x20); // set addresss 2 } void funcrx(i2c_msg *msg) { printf("length is %d.\n", msg->length); char return_data = msg0>data[0]; } void functx(i2c_msg *dev) { msg->data[0] = 0x01; msg->data[1] = 0x02; msg->data[2] = 0x03; msg->data[3] = 0x04; msg->data[4] = 0x05; msg->length = 5; } All code derived from datasheets and libmaple. Signed-off-by:- Barry Carter <barry.carter@gmail.com>
* | | libmaple/timer.c: Sync enable_irq() declaration with it's definitionDaniel Nyström2013-06-041-1/+1
| | | | | | | | | | | | Signed-off-by: Daniel Nyström <daniel@nystrom.st>
* | | libmaple/usb/stm32f1/usb.c: cosmetics.Marti Bolivar2013-04-301-99/+99
| | | | | | | | | | | | | | | | | | Whitespace and comments. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* | | libmaple/usb/stm32f1/usb.c: fix build error.Marti Bolivar2013-04-291-1/+1
| | | | | | | | | | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* | | Merge remote-tracking branch 'wesen/bug/usb-resume'Marti Bolivar2013-04-262-7/+14
|\ \ \
| * | | Preserve previous usb state when suspending / restore on resumeManuel Odendahl2013-04-262-7/+14
| | |/ | |/| | | | | | | Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
* | | usb_cdcacm: Reset transmitting flag in usbReset().Marti Bolivar2013-04-151-0/+1
| | | | | | | | | | | | | | | | | | Thanks to Manuel Odenahl for the fix. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* | | usb_cdcacm: Make USB lib globals weak symbols.Marti Bolivar2013-01-181-3/+6
| | | | | | | | | | | | | | | | | | This allows users to override them. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* | | Merge branch 'bug/usb-full-ep'Marti Bolivar2013-01-182-31/+38
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This resolves issues related to sending full (64B) packets via USB 2.0. In this case, some hosts continue to expect more data. Add infrastructure for sending 0-byte packets to signal end of transmission, and use it in SerialUSB. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * | | usb_cdcacm.c: Fixups for usb_cdcacm_tx().Marti Bolivar2013-01-171-11/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Check if we're transmitting (instead of how many bytes are left untransmitted) before bailing, in case we're transmitting a zero-length packet. - Set transmitting=1 before setting the endpoint valid to avoid races with the USB interrupt. - Eliminate some duplicated code. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * | | Handle sending 0 byte packets.Manuel Odendahl2013-01-172-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a flag to see if we are currently waiting on an interrupt to acknowledge the sending of the current IN packet. Added a method usb_cdcacm_is_transmitting() to check for that flag. Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
| * | | Move endpoint definitions to include files (they are now needed outside in ↵Manuel Odendahl2013-01-172-21/+21
| |/ / | | | | | | | | | | | | | | | usb_serial.cpp) Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
* | | Merge branch 'dbl-buf-usb'Marti Bolivar2013-01-172-26/+217
|\ \ \ | | | | | | | | | | | | | | | | | | | | For bulk double buffer support. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * | | usb_reg_map.c: Fix incorrect function name call.Marti Bolivar2013-01-171-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * | | usb_reg_map.h: Fix incorrect register bit definitions.Marti Bolivar2013-01-171-5/+5
| | | | | | | | | | | | | | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * | | Rename misleading ptr functionManuel Odendahl2013-01-171-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
| * | | Refactor setting a USB EP rx countManuel Odendahl2013-01-171-18/+7
| | | | | | | | | | | | | | | | Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
| * | | Rename USB_EP_EP_KIND to USB_EP_EP_KIND_DBL_BUFManuel Odendahl2013-01-171-5/+5
| | | | | | | | | | | | | | | | Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
| * | | Add double buffering routinesManuel Odendahl2013-01-172-24/+226
| |/ / | | | | | | | | | Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>