Commit Graph

2911 Commits (165d2536fe0b24e6c3370866e91b34a497efed10)

Author SHA1 Message Date
tomoyuki yamanaka 27caef30a4 Support of export function to the IAR.
We modified the following to support the export function to the IAR.
- In tools files, add RZ_A1H to the target of IAR.
- In tools files, add the tmpl files.
2016-02-15 14:49:31 +09:00
Parthasarathy.S a8e52a9fc0 Fixed style and build issue 2016-02-14 21:33:35 +05:30
Parthasarathy.S 86b8516024 Fixed build error 2016-02-14 21:33:33 +05:30
Parthasarathy.S d578a72b93 Fix for compiler warnings 2016-02-14 21:33:31 +05:30
Moin Shaik a736139336 Merge branch 'master' of https://github.com/mbedmicro/mbed into peripherals_driver_warnings_fix_ready 2016-02-14 21:33:29 +05:30
0xc0170 9dcb51ce87 Merge branch 'maclobdell-patch-1' 2016-02-12 08:46:36 +01:00
Mac Lobdell 8abc70e657 Fix SAML21J18A.sct
Remove extra new lines which caused comments to be exposed as code.
2016-02-12 08:45:55 +01:00
sg- c7f84c86f7 Remove all references and use of code warrior GCC in docs, build and
exporters¦
2016-02-11 01:07:58 -06:00
Martin Kojtal c301abb233 Merge pull request #1522 from dinau/disco-uvision4-exporter
Add uVision4 exporters for DISCO-{F051R8, F100RB, F303VC, F407VG}
2016-02-11 07:53:34 +01:00
Martin Kojtal 66c0620619 Merge pull request #1521 from adustm/b_b96b_serial_flow_control
[STM B96B_F446VE] HW Control Flow for serial
2016-02-10 08:43:49 +01:00
0xc0170 4f59006467 mbed lib revision - 113 2016-02-02 07:44:54 +00:00
0xc0170 b28b71e97e Merge branch 'master' of https://github.com/leibin2014/mbed into leibin2014-master
Conflicts:
	libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F0/TARGET_NUCLEO_F072RB/system_stm32f0xx.c
2016-02-01 18:20:15 +00:00
adustm c11325e11b [B96B_F446VE] add IRQ_RX1 interrupt
Can contains 2 fifos. Both generates its own interrupt.
IRQ_RX occurs when a message has arrived in FIFO-0 , FIFO-0 is full or
overrun.
IRQ_RX1 occurs when a message has arrived in FIFO-1 , FIFO-1 is full or
overrun.
2016-02-01 10:13:29 +01:00
dinau 6e45dafa0e Add uVision4 exporters for DISCO-{F051R8, F100RB, F303VC, F407VG}
(1) Add above exporters.
(2) Modified only comments in "cmsis_nvic.h" files.
2016-01-31 19:34:42 +09:00
Martin Kojtal 01e730cfb2 Merge pull request #1512 from neilt6/master
[LPC11U68, LPC1549] Fixed PwmOut SCT Bugs
2016-01-30 16:51:34 +00:00
adustm 6da4190be9 [STM B96B_F446VE] HW Control Flow for serial 2016-01-29 17:59:45 +01:00
Martin Kojtal d465cb53a3 Merge pull request #1506 from star297/master
Update rtc_api.c
2016-01-29 14:01:30 +00:00
Martin Kojtal d1cd09d7f1 Merge pull request #1517 from anpilog/stm32f0x_hsi_fix
Fix HSI configuration for STM32F0x.
2016-01-29 14:00:43 +00:00
Martin Kojtal bad9c12012 Merge pull request #1493 from adustm/b96b_asyn_serial_new
B96B async serial
2016-01-29 13:16:35 +00:00
adustm 6ff8955d58 [B96B_F446VE] Add Can test files + bug fix in can_api.c 2016-01-29 14:09:25 +01:00
adustm fa5e1f7e73 [B96B_F446VE] remove unnecessary wait after code review
tested OK
2016-01-28 17:35:42 +01:00
adustm 1325d8c8c2 [B96B_F446VE] Add CAN Feature 2016-01-28 16:31:12 +01:00
anpilog 11d2f7e3da Fix HSI configuration for STM32F0x. If HSI is used then PF0 is locked by RCC. 2016-01-28 20:20:35 +08:00
Steven Cooreman aacdd047d1 Fix incorrect clock settings for running off of the HFRCO. 2016-01-28 11:43:07 +01:00
Steven Cooreman a675c20840 Apparently a copy-paste has gone wrong here 2016-01-28 11:27:18 +01:00
adustm 3712f7c6a7 [B96B_F446VE] use of static functions 2016-01-26 14:57:06 +01:00
adustm 5b0bfb1361 [B96B_ASYNC] some fixes to pass serial_asynch.cpp test
Flush errors and current data register at reading start
Allow separate serial obj for TX and RX (= do not initialize [TX/RX]_DMA
when not needed.
Char_match: make it work with long buffers and return the correct
position of the char_match.
2016-01-26 14:57:06 +01:00
adustm 3aaf866154 [B96B_F446VE] bug fix for serial_async unitary test
do not initialise dma tx/rx when it is not activated.
2016-01-26 14:57:06 +01:00
adustm 524f4a6ac7 [B96B_Serial_Async] Add asynchronous feature for the platform B96B 2016-01-26 14:57:06 +01:00
neilt6 132f1e75a5 [LPC11U68, LPC1549] Fixed PwmOut SCT Bugs
* Fixed period & pulse-width off-by-one errors
* Fixed 0% duty cycle output
* Improved duty cycle resolution at high frequencies
2016-01-21 09:30:14 -07:00
Martin Kojtal 813874ee2b Merge pull request #1507 from kgills/i2c_pinname_fix
[MAX32600MBED] Fixing a typo with the I2C pin names.
2016-01-20 08:10:00 +00:00
Kevin Gillespie 9d6336a6e9 Fixing a typo with the I2C pin names. 2016-01-19 16:17:54 -06:00
Paul Staron d9d5e97a97 Update rtc_api.c
Removed redundant RTC->CR define code + added RTC compensation code to calibrate RTC.
2016-01-17 20:42:14 +00:00
Martin Kojtal fa45092ecb Merge pull request #1505 from stevew817/feature/new/fast_i2c
[Silicon Labs] Allow faster I2C baudrates
2016-01-15 14:14:22 +01:00
Steven Cooreman 22c246c94d Fix comment 2016-01-15 13:21:07 +01:00
Steven Cooreman fffbe3201c Too quick on the commit 2016-01-15 13:18:32 +01:00
Steven Cooreman 8ea7d713d6 Extend I2C implementation to deal with higher frequencies 2016-01-15 13:14:08 +01:00
Steven Cooreman 7d8b2c0ca4 Fix regression towards older platforms (did not have RXBLOCK set, resulting in receiving characters even with RX set to NC) by condensing code. 2016-01-15 12:02:25 +01:00
leibin 4d66e2d0b1 The predivider should be 2 here. 2016-01-15 16:53:33 +08:00
Martin Kojtal 45dbe35006 Merge pull request #1490 from ytsuboi/add-TY51822r3
[TY51822r3] add platform
2016-01-15 07:47:49 +00:00
Martin Kojtal 919364e6e7 Merge pull request #1501 from stevew817/pearl_support_rebased
[Silicon Labs] Add support for the new EFM32 Pearl Gecko
2016-01-15 07:33:40 +00:00
Steven Cooreman 3d8637cdfb Fixes to serial_api:
* Allow pins to be configured as NC without failing or asserting
* Fix putc() to not return before the entire character has been physically shifted out.
* Use MBED_ASSERT
* Fix baudrate calculation to avoid wrong configuration on startup for stdio
2016-01-14 16:45:39 +01:00
Steven Cooreman 9d35328001 Clean up failed merge 2016-01-13 09:57:38 +01:00
Steven Cooreman 037dd8c455 Add back the manual placement of the DMA section for GCC to optimize the RAM layout w.r.t. alignment. 2016-01-12 17:25:58 +01:00
Steven Cooreman a0ba4e6489 Pull up EFM32 linker and startup files to latest SDK version. 2016-01-12 17:25:55 +01:00
Steven Cooreman 91ad34addb Update emlib to 4.2.1 to get a critical fix for DCDC on Pearl 2016-01-12 17:25:50 +01:00
Mikko Polojarvi 2ba71ea761 SiLabs: Remove emlib LDMA modifications
Emlib should now match the standard SiLabs release. Required extensions
have been moved to dma_api and marked with LDMAx_ prefix.
2016-01-12 17:25:46 +01:00
Steven Cooreman cb2a653bba Typo in AnalogOut 2016-01-12 17:25:43 +01:00
Steven Cooreman 41e2d8b75f Remove static define that would result in erroneous code when unset, and remove said code. 2016-01-12 17:25:41 +01:00
Steven Cooreman 48b20be0e6 Demote LDMA interrupt priority. We assume that completion of a DMA transfer means the transaction is finished already, and its handling is thus less time-sensitive than being in the middle of an interrupt-driven Serial or SPI transaction. 2016-01-12 17:25:38 +01:00
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: #1 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