Commit Graph

2911 Commits (dcda8ec0e34897d5a547f0172d34d65aa6d42729)

Author SHA1 Message Date
Steven Cooreman 468ddc86bd Fix error in comment 2016-01-12 17:25:36 +01:00
Steven Cooreman 7df5e479a2 Fix version mismatch between included emlib and readme 2016-01-12 17:25:34 +01:00
Steven Cooreman cfc1eea36b No need to set up the interrupt handler every single time in lp_ticker. 2016-01-12 17:25:31 +01:00
Steven Cooreman 495f7a4e45 Removed unnecessary code in _putc. 2016-01-12 17:25:29 +01:00
Steven Cooreman 924d931553 Cleanup and bugfixes of the PWM implementation.
* Setting the PWM period now correctly updates all other channels to keep their duty cycle
* No longer keep values in RAM that can be read directly from a register
* Setting the PWM duty cycle to 100% no longer makes the signal glitch on every period
* Code condensation
2016-01-12 17:25:26 +01:00
Steven Cooreman 919cf3d14e Light documentation on the sleep API 2016-01-12 17:25:24 +01:00
Steven Cooreman f5d44116e8 Reduce I2C object footprint 2016-01-12 17:25:21 +01:00
Steven Cooreman 0847fd5e2e Fixes to Pearl pinmap:
* Added PD9 back in (for some reason it was at some point removed from the pinmap, not sure why because it is a usable pin when you remove the on-board sensor or use the Pearl chip standalone)
* Fixed PWM locations to match the pin-CC channel combinations.
2016-01-12 17:25:18 +01:00
Steven Cooreman 8563fe8c54 Sync port_api.c with port_api.h 2016-01-12 17:25:16 +01:00
Steven Cooreman db45cd476f analogout_api: clean up functions that are no longer part of the API. 2016-01-12 17:25:14 +01:00
Steven Cooreman b233828ebb Cleanup in AnalogIn: remove functions that are unnecessary and no longer part of the API. 2016-01-12 17:25:11 +01:00
Steven Cooreman f20e96008d Update serial_api to not rely on the maximum number of serial peripherals, but rather allocate resources depending on how many peripherals the chip actually has. Should help with memory usage and clarity, also gets rid of a random badly-named #define in objects. 2016-01-12 17:25:09 +01:00
Steven Cooreman a59c73c4de Fixes to analogOut:
* Implement _free
* Make sure the pin is set to disabled
2016-01-12 17:25:06 +01:00
Steven Cooreman b4c171802e Silence GCC 2016-01-12 17:25:04 +01:00
Steven Cooreman dc2e6317ba lp_ticker code condensation 2016-01-12 17:25:01 +01:00
Steven Cooreman 8fac7bb8e6 Pinmap update for Pearl:
* Remove DAC reference
* Assign part of the pins to each PWM CC channel
* Add APORT4X pins to the ADC map
2016-01-12 17:24:58 +01:00
Steven Cooreman 1631aac5aa Remove unnecessary checking of bit before setting GPIO 2016-01-12 17:24:56 +01:00
Steven Cooreman f4133b8d36 Update modules.h to reflect the actual configuration of Pearl Gecko. 2016-01-12 17:24:54 +01:00
Steven Cooreman d7a4ebba21 Removed useless #error in analogin 2016-01-12 17:24:52 +01:00
Steven Cooreman 3f61aafd0a removed a line of code duplication 2016-01-12 17:24:49 +01:00
Steven Cooreman 8bec4e22bb PWM refactoring to be less confusing with all the #ifdef for routes 2016-01-12 17:24:47 +01:00
Steven Cooreman 653e91df5d Get rid of the check_usart_clock function which is unused and unnecessary. Usart-specific clocking resides in either spi or serial (or both) api files. 2016-01-12 17:24:44 +01:00
Steven Cooreman 05ce194f25 Move to CMSIS defines to check for presence of certain LF clock trees 2016-01-12 17:24:42 +01:00
Aksel Skauge Mellbye f05fd7fcea EFM32 Pearl Gecko Serial: Remove dynamic peripheral allocation. 2016-01-12 17:24:40 +01:00
Aksel Skauge Mellbye c0ec7ad8d9 EFM32 Pearl Gecko SPI: Remove dynamic resource allocation.
Allocate peripherals to specific subsets of pins. USART0 is available on port A, B and D, while USART1 is available on port C and F.
2016-01-12 17:24:37 +01:00
Aksel Skauge Mellbye d2609676ba EFM32: Fix HFRCO support for P2 devices. 2016-01-12 17:24:32 +01:00
Aksel Skauge Mellbye 8634cf54d6 EFM32 Pearl Gecko IAR support. 2016-01-12 17:22:14 +01:00
Mikko Polojarvi efadf47be6 SiLabs Pearl: Support for clocking via RC oscillators
Allows clocking the device from RC oscillators (HFRCO, LFRCO).
Note that we can not use the em_cmu.h enums directly as the
preprocessor can not do comparisons on them.

Related changes in serial_api, so that LEUART clock is within
acceptable limits on Pearl.

Contains quite a bit of indentation changes to make the preprocessor
logic more readable so recommend viewing the diff in ignore whitespace
mode.
2016-01-12 17:22:12 +01:00
Mikko Polojarvi 73cf96369d SiLabs: serial_api: Allow LEUART IRQ to fire both handlers
When LEUART IRQ fires, check both RX and TX side for active interrupts
and handle both of them.
2016-01-12 17:22:09 +01:00
Mikko Polojarvi cd08228278 SiLabs: serial_api: Add missing object to sleep fix
Commit 49f63130 'SiLabs: serial_api: Keep track of sleep mode changes'
did not include the added field to struct serial_s.
2016-01-12 17:22:07 +01:00
Mikko Polojarvi 6c3418a0c0 SiLabs: serial_api: Fix memory underflow read in DMA handling
Code would index DMA irq fired array without checking the DMA handle,
which would be -1 when DMA was not used.
2016-01-12 17:22:04 +01:00
Mikko Polojarvi a6e137f188 SiLabs: serial_api: Keep track of sleep mode changes
Keep a counter of sleeps blocked for every device, and do not try
to unblock sleep modes we did not block. This fixes problems where
serial events would cause EM1/EM2 to be unblocked too early,
causing the MCU to go to EM3 and not being able to wake up.
2016-01-12 17:22:02 +01:00
Mikko Polojarvi 1c47e974ff SiLabs Zero: Fix clocking when using LEUART for USB board controller
When initializing for use with the board controller, the LEUART must
be clocked from HF clock as the baud rate is otherwise too high.

Do this by first initializing to "standard" 9600, then call serial_baud
which will handle setting up the clocks and dividers.
2016-01-12 17:21:59 +01:00
Mikko Polojarvi ff494c4000 SiLabs: serial_api: Unblock sleep correctly on TX side
Previous commit that added _intern versions of abort functions
did not change calls of TX abort, so sleep would never unblock.
2016-01-12 17:21:57 +01:00
Mikko Polojarvi 96ff20491c SiLabs Pearl: Minimize line glitches when doing LEUART-USART switch
Switch caused a phantom 0xFF frame to appear on the line when we switched
from LEUART to USART due to a baud rate was increase. This was short
enough that it was only visible at high (~115kbps) speeds.

As a fix, skip disabling the GPIO pins (as their configuration does not
change), and defer disabling the LEUART routing until at the very last
moment. Additionally, do not call serial_format, but immediately
initialize the UART to correct params.
2016-01-12 17:21:54 +01:00
jhokajar 2961d4cc33 SiLabs: analogout_api:
Analog_out fixed. Channel enabled in analogout_init.
2016-01-12 17:21:52 +01:00
Mikko Polojarvi 83401e502b SiLabs Pearl: Correct HFXO frequency
Move to the final HFXO frequency, 40MHz.
2016-01-12 17:21:50 +01:00
Mikko Polojarvi 3b3e52f0a1 SiLabs: serial_api: Fixes for sleep, transmitter disable and uart switch
- Do not attempt to disable the transmitter. Did not find a robust
   way to do so - see comment in file for more info.

 - Do not unblock sleep when abort is called externally, this leads
   to jams as EM1 block gets disabled and the next sleep call places
   the hardware to directly to EM3.

 - Retain more status when switching over from LEUART to USART in
   Pearl: keep registered IRQ handlers and other IRQ status.
2016-01-12 17:21:47 +01:00
jhokajar e48994e9cf Silabs: SPI
Changed SPI implementation:  To avoid clearing data from buffers, during splitted DMA transfer
RX/TX buffer clear is done only when transfer is started.
USART transmit is completed instead of DMA/LDMA transfer completed.
2016-01-12 17:21:44 +01:00
jhokajar a9f0fdb200 SiLabs Pearl: SPI
When doing a large transfer over the LDMA it is required to wait TX to be completed
before transferring the next part of the data. Added a loop, to wait until TXC flag is set in function USART_STATUS_TXC.
+ minor code cleanup and EM1 sleep is allowed again.

Second, the TX interrupt was not cleared after processing, causing
it to stay in an infinite loop.
2016-01-12 17:21:42 +01:00
Mikko Polojarvi a7ef4ca830 SiLabs: serial_api: Fix LEUART interrupt dispatch
Conditional when dispatching LEUART irq would always select the RX
side due to a bitwise AND being typoed as a logical AND.

Second, the TX interrupt was not cleared after processing, causing
it to stay in an infinite loop.
2016-01-12 17:21:40 +01:00
Mikko Polojarvi b8ab9fbfed SiLabs Pearl: Use any free UART for stdio
Remove limitation that only a specific UART can be used for the
USB board controller serial line.
2016-01-12 17:21:37 +01:00
Mikko Polojarvi 86376495a6 SiLabs: port_api: Allow individual values on output pins and fix init
Previously, all pins in an mbed Port were set to the same value.
Use GPIO_PortOutSetVal to directly write the desired value to
the pins.

During port initialization the pin mode for input pins was set incorrectly.
Now, input pins are directly set to Input (gpioModeInput) and output pins to
PushPull (gpioModePushPull).
2016-01-12 17:21:35 +01:00
jhokajar 3fc661944a SiLabs Pearl: SPI fixes
Added rx/tx clear before DMA transmit begins. RX DMA descriptor
    fixed
2016-01-12 17:21:33 +01:00
Mikko Polojarvi 81a9dd9031 SiLabs: I2C: Always set master mode on initialization
If an I2C block was reused after being a slave the status would not
be cleared completely, so explicitly initialize to master mode always.
2016-01-12 17:21:30 +01:00
Mikko Polojarvi 316e8733df SiLabs Pearl: I2C: Do not try to force specific locations of pins
Pearl can freely select pins, so do not force both SDA and SCL pins
to have the same "location".
2016-01-12 17:21:27 +01:00
Mikko Polojarvi c1e5c0b907 SiLabs: GPIO interrupts disabled/enabled incorrectly
GPIO_IntEnable/Disable was called with incorrect params due
to missing parens. Operator precedence of & vs << caused the
call to be blank if the port (MSB) nibble of pin was not zero.
2016-01-12 17:21:25 +01:00
jhokajar ee329e5df7 Silabs Pearl: SPI LDMA descriptor fix
Changed correct LDMA descriptor for RX.
2016-01-12 17:21:23 +01:00
jhokajar 2160134d48 Silabs: SPI DMA fix
DMA tranfer was not working in Geckos using DMA. Changed transfer
length calculation in function spi_activate_dma.
2016-01-12 17:21:20 +01:00
jhokajar 0dfca1ad86 SiLabs Pearl: More SPI fixes for 9-16 bit frames
spi_buffer_tx_write fixed to work correctly with 9-16 bit frames,
if transfer length > 1. If frame is 9-16 bit client can use uint16_t or
uint32_t buffer for data storage, spi_api's default is to use uint16_t.

Added precompiler condition USE_UINT16_BUFFER to change assumption for
DMA and IRQ -transfers.
2016-01-12 17:21:18 +01:00
Mikko Polojarvi 6bb98769b0 SiLabs: Update emlib to 4.2.0
Emlib and HW headers updated. ADC pinmap changed to match new
definitions. Pearl linker files updated.
2016-01-12 17:21:15 +01:00
Mikko Polojarvi e865f1fe6f SiLabs Pearl: Keep UART enabled during single byte transfers
We need to explicitly enable the transmitter on Pearl when using the
serial_putc function, to match the disable in the asynch abort.
2016-01-12 17:17:24 +01:00
jhokajar 15b4341162 SiLabs Pearl: SPI fixes for 9-16 bit long frames
LDMA descriptor fixed to support 9-16 bit long frames. Prevented
sleepstate EM1, because USART requires EM0, and entering to EM1
during transfer can crash the system.
2016-01-12 17:17:22 +01:00
jhokajar 3e593439ae SiLabs Pearl: SPI support for 9-16 bit long frames
Added LDMA-transfer support for 9-16 bit long SPI-frames.
2016-01-12 17:17:19 +01:00
Mikko Polojarvi 838b0a6c56 SiLabs Pearl: Allow serial transmitter disable on Pearl
Previous comment on issuing a TXDIS command was incorrect. Actual
root cause was a non-DMA RX interrupt causing the code to run the
TXC handling code as long as the TX DMA interrupt had fired,
which was too early.

Reenable usage of TXDIS on Pearl.
2016-01-12 17:17:17 +01:00
Mikko Polojarvi f6b0c37982 SiLabs Pearl: Support for ARM compiler toolchain
Startup files and linker scripts added for standard and
micro variants of the ARM compiler toochain.
2016-01-12 17:17:14 +01:00
jhokajar 73db782a73 SiLabs: spi implementation
Added implementation for spi_irq_handler_asynch
2016-01-12 17:17:12 +01:00
Mikko Polojarvi 6067de0428 SiLabs Pearl: Rename files and dirs to correct STK code
Pearl STK is offically known as SLSTK3401A, but we well go
with the same naming convention as with Happy so Pearl's
name in Mbed will be STK3401.

Renames all files and directories that previously had the
placeholder STKXXXX. Build, target and export scripts
modified accordingly.
2016-01-12 17:17:10 +01:00
Mikko Polojarvi 20a5bc2ab6 SiLabs: Fix compiler warnings and other cleanup
- Compiler warnings fixed
 - Some private functions marked static
 - Removed unneeded comments
 - Some trailing whitespace stripped
2016-01-12 17:01:41 +01:00
Mikko Polojarvi 9149e88dd1 SiLabs Pearl: Serial support for LEUART-USART switch
Serial HAL now allocates the LEUART first, and will switch
to using a standard UART only if the parameters require it.

Note that this switch can currently only happen one way, from
LEUART to USART. So once a higher baudrate or invalid frame
bit amount has been used, that instance of Serial object
will be locked to using an USART.

TODO: Parts of the UART (re)initialization code are now spread
between three places. They should be combined into single,
generic function.
2016-01-12 17:01:38 +01:00
Mikko Polojarvi 09c94d3091 SiLabs: Fix incorrect TX active conditional in serial_api
Part of condition to detect active TX was not only incorrect
but also not needed in the first place. TX active state is
now always detected only via active TXBL/TXC interrupt.
2016-01-12 17:01:36 +01:00
Mikko Polojarvi 763ce3dbbc SiLabs Pearl: Free(er), dynamic allocation of UARTs
UARTs are no longer fixed to certain pins on Pearl, so
we need to allocate them as needed, and allow for free
pin selection.

TX and RX pin locations in the main serial struct have been
separated, and pin routing modified accordingly.

serial_api_HAL.h interface keeps track of which UARTS are
currently in use, and provides alloc/free functions. Serial
and SPI components modified to use the new API.

TODO: Magic to support LEUART. This code will also need to
be able to dynamically switch from LEUART to standard USART
if the user later sets params (baud rate or format) that can
not be supported on LEUART.
2016-01-12 17:01:34 +01:00
Mikko Polojarvi 0e75dd3257 SiLabs: Fix infinite interrupt loop when using LEUART with DMA
Issuing a CLEARTX to LEUART command together or after TXEN caused
the DMA transfer to jam or cause repeated interrupts.

Also cleanup duplicated interrupt clears and add correct LEUART
branches when disabling RX/TX.
2016-01-12 17:01:30 +01:00
Mikko Polojarvi e30c1e1468 SiLabs: Compilation fix for incorrect LFE clock flagging
cmuClock_LFE conditional compliation was using the incorrect flag.
2016-01-12 17:01:28 +01:00
Mikko Polojarvi 97e5eabffa SiLabs: Multiple fixes for serial_api
- Allow emlib to read the HFPER clock when initializing
   USART. This corrects the baud rate on the serial line.

 - Always use the TXC interrupt to signal when a transmission
   is over when using (L)DMA. Removes a race condition
   between flipping from TXBL to TXC, and TXC activating.

 - With the previous change, serial_tx_active can now poll
   the TXBL/TXC interrupts to see if a transmission is active.
   previous code would fail in cases that the DMA transfer
   had ended, but TX was still active, occasionally leading
   to partial transfers when CLEARTX command was issued on
   the next transfer.

 - Add some sync points (SYNCBUSY poll) when twiddling around
   LEUART registers.

Known issue: Using LEUART and DMA transfer on (at least) Leopard
causes the device to enter an infinite DMA interrupt loop.
2016-01-12 17:01:26 +01:00
jhokajar f6a66ff7e2 SiLabs: Correct low power timer setup
When the requested timeout was not a integer multiple of the
LF clock tick the timestamp was set too short due to rounding,
sometimes causing the ticker event to be missed.
2016-01-12 17:01:24 +01:00
jhokajar ab26722b01 SiLabs: Low power timer / RTC initialization fix
Read as not returning correct values, because RTCC (or RTC in other
Gecko's) was not initiated. This was a problem in every Gecko.

If RTCC is initiated for lptimer it is done without binding it to
irqhandler (since irq not needed). Also implementation for geckos
using RTC added.

Tested with pearl and happy geckos
2016-01-12 17:01:22 +01:00
jhokajar 22879f972d SiLabs Pearl: lpticker wakeup 2016-01-12 17:01:20 +01:00
Mikko Polojarvi a31071275a SiLabs: Fix interrupt amount configurations
Number of interrupt slots reported by different files before this commit:

            giant  happy  leopard  pearl  wonder  zero
spec        39     21     39       34     39      17
nvic        39     21     39       34     40      19
startup.s   39     21     40       34     40      19
gcc link    40     21     41       34     40      19
arm link    40     22     40       -      40      16
reserved    0      0      1        0      0       2

  spec - reference manual
  nvic.h - cmsis_nvic.h
  startup.s - assembler startup files
  gcc link - efm32*.ld linker script for GCC
  arm link - efm32*.sct linker script for ARM (RVCT)
  reserved - number of 'reserved' slots at the end of irq table in startup.s files

Fixed amounts to reflect those in the startup files, including reserved
slots:

Giant
    Reduce amount in GCC and ARM linker files to 39

Happy
    Fix comment in GCC linker file
    Reduce amount in ARM linker file to 21

Leopard
    Increase amount to 40 in cmsis_nvic.h
    Reduce amount to 40 in GCC linker file (this bug caused by
    emlib 4.1.0 port commit 1923e8b4)

Wonder
    No changes, but note that ref. manual does not list FPUEH
    interrupt that is included in startup files at index 39

Zero
    Increase amount to 19 in ARM linker file
2016-01-12 17:01:17 +01:00
jhokajar 7f051e9a22 SiLabs Pearl: SPI LDMA support
SPI dma forced to compile. Continuing improvements...
2016-01-12 17:01:15 +01:00
jhokajar 745d72aeea SiLabs Pearl: SPI pinmappings
Correct routing for SPI pins on Pearl
2016-01-12 17:01:13 +01:00
jhokajar 97a1674a94 SiLabs Pearl: I2C GPIO fix
GPIO pins were uninitialized. Fixed and tested.
2016-01-12 17:01:11 +01:00
Mikko Polojarvi 6095a67b95 SiLabs Pearl: LDMA fixes for serial
LDMA now functional for both RX/TX.

One hack remains - need to check if TXC interrupt check can be
removed from older platforms, or if flagging is necessary.
2016-01-12 17:01:09 +01:00
jhokajar fc49b0e2ac SiLabs Pearl: PWM output functionality
Any channel can be used. It is possible to have 4 pwm outputs
active at a same time, if PinMap_PWM configuration is done properly.

Future improvement proposal: dynamic channel selection!
2016-01-12 17:01:07 +01:00
jhokajar 973141e2e7 SiLabs Pearl: ADC fixes
Channel selection shifted to right place. Now It seems to work
at least with channel PC11. Weird thing is, that floating pin gives
result 0.4. Should be 0.0.
2016-01-12 17:01:04 +01:00
Mikko Polojarvi 7be6799638 SiLabs Pearl: LDMA support for serial_api
LDMA support for serial HAL. Adds callback support for emlib LDMA
code so that most of the old serial code can be reused.

Note: Serial shows some signs of life on the bus, but DMA mode
is completely untested.
2016-01-12 17:01:03 +01:00
Mikko Polojarvi e3e385e16d SiLabs Pearl: Serial HAL USART/LEUART pin routing
Serial pin routing for Pearl. Note that this currently requires
the pins to be in the same "location", even though this is not
needed by the Pearl HW.
2016-01-12 17:01:00 +01:00
jhokajar d238a83042 SiLabs Pearl: AnalogIn support
analogin_api.c changed to make it compile.

Compilation error will be generated if _ADC_SINGLECTRL_POSSEL_MASK ||
_ADC_SINGLECTRL_INPUTSEL_MASK is not defined. This is because NEGATIVE
voltage measurement is not supported by MBED API.
2016-01-12 17:00:58 +01:00
Mikko Polojarvi bafd8e28b8 SiLabs Pearl: LDMA initialization
LDMA support for the dma_api module
2016-01-12 17:00:56 +01:00
Mikko Polojarvi c4018e4ea8 SiLabs Pearl: Correct includes and interrupt names in RTC
Conditionals for including em_rtc.h and em_rtcc.h.
Use the correct interrupt name in RTCC code.
2016-01-12 17:00:54 +01:00
Mikko Polojarvi 21a242049f SiLabs Pearl: Fix I2C pin routing
Use new ROUTEPEN/ROUTELOC0 registers for selecting I2C pins.
2016-01-12 17:00:52 +01:00
Mikko Polojarvi 4990751ace SiLabs Pearl: Correct STDIO_UART definition
Normal UARTs not present, use USART.
2016-01-12 17:00:50 +01:00
Mikko Polojarvi 2cb2ada9b6 SiLabs Pearl: Mbed support for linker script
Mbed needs to have interrupt vectors in RAM so reserve space at
the beginning of memory, and export the relevant symbols.
2016-01-12 17:00:48 +01:00
jhokajar c89d5cae9d SiLabs Pearl: Update pinmap for ADC and DAC
ADC pinmap updated, PinMap_DAC removed, since DEVICE_ANALOGOUT not supported
2016-01-12 17:00:46 +01:00
Mikko Polojarvi 6e7589c5b8 SiLabs Pearl: Remove configuration for HW not present in Pearl
Removed DAC/AnalogOut, I2C1, UART0/1, LEUART1, USART2,
GPIO Drive support and GPIO port E.
2016-01-12 17:00:44 +01:00
Mikko Polojarvi dcc6b61ed5 SiLabs Pearl: lp_ticker HAL adaptation
Use RTCC API for lp_ticker on Pearl. Basic adaptation, but more
work is required.

Now frees RTC when ticker is not used (detected through interrupt
disable), so that sleep modes below EM2 do not remain
permanently blocked.
2016-01-12 17:00:42 +01:00
Mikko Polojarvi bf4cf1a5ec SiLabs Pearl: RTCC support 2016-01-12 17:00:40 +01:00
Mikko Polojarvi e2c33dd166 SiLabs Pearl: GPIO HAL fixes
Pearl GPIO block does not support DOUTSET/DOUTCLR,
so use read+DOUTTGL instead.
2016-01-12 17:00:38 +01:00
Mikko Polojarvi 15ed788fe7 SiLabs Pearl: Pin mappings for PWM
PWM pin mappings. Since the pins can be freely chosen (unlike
in previous HW), there should be no need to use the other channels.

Also corrected frequency for HFXO in ref devices.
2016-01-12 17:00:35 +01:00
Mikko Polojarvi 199f5fa402 SiLabs: Emlib 4.1.0 headers update for Zero Gecko 2016-01-12 17:00:33 +01:00
Mikko Polojarvi 0c066f5c1a SiLabs: Emlib 4.1.0 headers update for Wonder Gecko 2016-01-12 17:00:30 +01:00
Mikko Polojarvi 19a060791c SiLabs: Emlib 4.1.0 headers update for Leopard Gecko 2016-01-12 17:00:27 +01:00
Mikko Polojarvi 567afac8ea SiLabs: Emlib 4.1.0 headers update for Happy Gecko 2016-01-12 17:00:25 +01:00
Mikko Polojarvi 485a08db77 SiLabs: Emlib 4.1.0 headers update for Giant Gecko 2016-01-12 17:00:22 +01:00
Mikko Polojarvi 9234010fb8 SiLabs: Update emlib to 4.1.0
New version with support for Pearl & co.
2016-01-12 17:00:19 +01:00
Mikko Polojarvi e5e896b68d SiLabs Pearl: Initial commit
Leopard Gecko used as baseline.

TODO

 - Peripheral/GPIO pin mappings etc for Pearl are marked "Pearl ok",
   rest are wrong

 - Missing new (4.1.0+) emlib
2016-01-12 17:00:16 +01:00
0xc0170 2d4024eccb mbed lib revision - 112 2016-01-12 09:56:03 +00:00
adustm 26e3c61983 [STM all] Fix : change location of check for RTC already initialised
Need to keep PWR_CLK_ENABLE and LSE LSI oscillator configuration.
Just skip the HAL_RTC_Init in case INITS flag is already set.
2016-01-12 09:30:33 +00:00
Martin Kojtal ab7d3f1d2c Merge pull request from c1728p9/fix_raw_serial_microlib
Fix RawSerial when used with ARMCC microlib
2016-01-11 16:55:05 +00:00
ytsuboi 9b7d776d40 [TY51822r3] add description on comment, fixed years 2016-01-11 22:57:46 +09:00
adustm 4ac44bdea6 [STM_F0] clock the APB2ENR_SYSCFGEN in RCC so that SYSCFG->CFGR1 value can be taken into account in NVIC_SetVector 2016-01-11 09:31:50 +00:00
Russ f8ada507af Fix RawSerial when used with ARMCC microlib
The function vsnprintf does not properly handle a size of zero for
the destination buffer, and will write data to it.  If the buffer is
set to null this will cause a hardfault.  This patch adds a workaround
for this bug by using a buffer of size 1.
2016-01-10 19:01:46 -06:00
ytsuboi 9a9885e5fa [TY51822r3] add platform 2016-01-06 23:17:24 +09:00
adustm f4496bb5de Add cmsis files for this new platform 2016-01-06 13:44:36 +00:00
adustm 300d3a0025 add new platform hal files 2016-01-06 13:44:26 +00:00
Martin Kojtal 4dc26b3d27 Merge pull request from dudmuck/master
release platform MOTE_L152RC to public
2016-01-04 12:15:04 +00:00
Martin Kojtal a63257b05f Merge pull request from adustm/DEV_FIX_1419_baudrateissue
[TARGET_STMF0] Fix  baudrateissue
2016-01-04 12:14:34 +00:00
Martin Kojtal 7899cff5f6 Merge pull request from sg-/lpc4337_uart
LPC4337 stdio fixes for lpcxpresso board
2016-01-04 09:19:43 +00:00
Mike Fiore d992c2e3e9 [MTS_DRAGONFLY_F411RE] correct serial signal pin names & add wakeup pin name 2015-12-29 11:43:03 -06:00
sg- 6feb5ed291 maintain support for micromint bambino and lpcxpresso boards 2015-12-28 00:18:59 -06:00
sg- 6bb92b1148 update stdio uart for lpc4337 and set baudrate to 9600 2015-12-28 00:05:28 -06:00
Russ Butler e825431c1a Fix nRF51 baud table size
Increase the number of entries in the baud rate table from 17 to 18.
This problem was introduced in the patch:
0a6e345400 -
Add support for 56000 baud on nrf51
2015-12-21 23:59:55 -06:00
Russ Butler 0a6e345400 Add support for 56000 baud on nrf51
Add support for the baudrate 56000.  This is not documented in the
datasheet, but Nordic has indicated in can be used by setting the
BAUD register to 56000.
2015-12-18 11:36:03 -06:00
Russ Butler 8d12e206f6 Remove byte sent at 9600 baud on init on NRF51-DK
Disconnect the TX line before sending a dummy byte, and wait until the
dummy byte is completely sent before continuing.   This prevents
the byte from getting sent on init or re-init of the uart.
2015-12-18 11:36:02 -06:00
0xc0170 48fa2930e5 mbed lib revision - 111 2015-12-15 16:06:22 +00:00
adustm c59167c196 [STM32F0_all] remove the global variable and use SYSCFG register instead 2015-12-14 11:39:39 +01:00
adustm 5784d29fd2 Merge remote-tracking branch 'refs/remotes/origin/master' into DEV_FIX_1419_baudrateissue 2015-12-14 10:42:52 +01:00
jamofer e7d879aaf6 Update i2c_api.c 2015-12-13 23:29:50 +01:00
jamofer 929cf7ffe4 Issue LPC1768 i2c_slave_read fix
LPC1768 slave issues a STOP condition without waiting for master : https://developer.mbed.org/forum/bugs-suggestions/topic/5266/
2015-12-13 23:25:23 +01:00
Martin Kojtal 1c75638d14 Merge pull request from dinau/f030r8-fixed-led-blink-too-fast
[NUCLEO-F030R8] Fixed: The issue of LED blinking too fast.
2015-12-13 21:30:31 +00:00
Russ 5c75dc29ee Fix glitch when initializing NRF51-DK serial port
When initializing the NRF51's serial TX and RTS pins set the
data output register to high before setting the setting them to
output.  This prevents these pins from glitching low before
the UART has been turned on.
2015-12-13 01:27:01 -06:00
U-owner-PC\owner d5d98a76f6 correct LED pins and pass singletest.py 2015-12-11 18:43:40 -08:00
dinau 46955971ec [NUCLEO-F030R8] Fixed: The issue of LED blink too fast.
Refer to:
https://github.com/mbedmicro/mbed/issues/1329
https://developer.mbed.org/questions/61386/Is-there-system-clock-error-in-STM32F030/
2015-12-09 20:38:32 +09:00
Martin Kojtal a41d1d6c02 Merge pull request from dbestm/dev_xxxx_xxx
I2C fixes, timeout for startup ~100/200
2015-12-07 07:48:07 +00:00
Martin Kojtal 88bbe088da Merge pull request from jeremybrodt/blelibrary
Adding BLE library
2015-12-03 16:05:12 +01:00
Martin Kojtal 3a0741a173 Merge pull request from dudmuck/master
handle UART RX overrun on stm32l1xx
2015-12-02 09:44:48 +01:00
Jeremy Brodt d16d77b50c [MAXWSNENV] Adding exactLE BLE stack library. 2015-12-01 08:38:43 -06:00
Jeremy Brodt ad739ddd8b [MAXWSNENV] Added missing definitions. 2015-12-01 08:38:43 -06:00
Paul Staron f4726ff98c Update i2c_api.c 2015-11-27 19:41:30 +00:00
Martin Kojtal 95027b726b Merge pull request from adustm/br_F303K8_new-defines
[NUCLEO_F303K8] add missing pins for arduino nano connector
2015-11-26 13:24:30 +00:00
Martin Kojtal d2dde861b4 Merge pull request from 0xc0170/fix_interruptin_clear
InterrupIn - attach with null clears the function pointer
2015-11-26 13:19:50 +00:00
Martin Kojtal afe56019e0 Merge pull request from Timmmm/master
Fix  - I2C assumes NRF_TWI1
2015-11-26 13:09:22 +00:00
Martin Kojtal f4b1d30ff4 Merge pull request from sg-/enhance-stream
Enhance stream class
2015-11-26 10:04:37 +00:00
0xc0170 7920122bf3 mbed lib revision - 110 2015-11-26 09:51:41 +00:00
sg- dfc3b57115 update system include symantic 2015-11-24 09:10:07 -06:00
adustm 51c83aa3e4 [NUCLEO_F303K8] add missing pins for arduino nano connector 2015-11-24 10:15:42 +01:00
sg- 7fff98a3fd use cstdarg lib and not stdarg 2015-11-23 10:08:51 -06:00
adustm 390584a424 [NUCLEO_L476RG] add templates for iar tool 2015-11-23 14:00:11 +01:00
dbestm 035f3ece65 Merge remote-tracking branch 'refs/remotes/mbedmicro/master' into dev_xxxx_xxx 2015-11-20 15:51:32 +01:00
dbestm feac60b519 ALL STM32 platform 2015-11-20 15:51:10 +01:00
Wojciech Gorniak c11d54e5b6 Merge https://github.com/mbedmicro/mbed
Conflicts:
	workspace_tools/export/iar.py
	workspace_tools/toolchains/gcc.py
2015-11-20 10:08:05 +01:00
0xc0170 281c180722 InterrupIn - attach with null clears the function pointer 2015-11-20 08:12:29 +00:00
U-owner-PC\owner 31511c97f3 handle UART RX overrun on stm32l1xx 2015-11-19 16:11:58 -08:00
Veli-Matti Puurunen 1ab3d018a1 Enable ADC A-channels in K22F and K64F
In Kinetis chips some ADC channels have both A and B channels available.
This commit enables both of them.

Added also some missing ADC channels to PinMap table.
2015-11-18 08:23:29 +02:00
adustm c15e382be1 [TARGET_STM32F0] allow DISCO_F051R8 compilation 2015-11-17 16:56:29 +01:00
adustm 7d23f0fd1e [TARGET_STMF0] change numerical value by its define 2015-11-17 16:55:56 +01:00
sg- d0b934eba0 remove std:: namespace and update include accessability 2015-11-17 09:00:10 -06:00
Martin Kojtal 3e0c18b60a Merge pull request from adustm/DEV_DISCOF429ZI
DISCO_F429ZI - discof429zi
2015-11-17 14:44:41 +00:00
sg- f13226663c add variable arguemnt support to stream 2015-11-17 08:35:45 -06:00
adustm 0d72a40495 Merge remote-tracking branch 'refs/remotes/mbedmicro/master' into DEV_FIX_1419_baudrateissue 2015-11-17 13:23:16 +01:00