Commit Graph

346 Commits (014c5f46f52588f5b8b1b0de1eb73e12406c0b51)

Author SHA1 Message Date
Yihui Xiong 0b7b75881a fixed L6235E link error for Xadow M0 2014-08-11 12:37:06 +08:00
Aron L. Phillips 441099212a Added the symbol PinMap_I2C_SDA[] and PinMap_I2C_SCL[] to the PeripheralPins.c file. Compiled against uARM, ARM, and GCC_ARM. 2014-08-08 11:33:19 -04:00
Martin Kojtal 5b145e4f6c Merge pull request #422 from Experiment-626/master
[TARGET_LPC11UXX] PeripheralNames.h and PinMap definitions separation for LPC11UXX platforms
2014-08-06 10:12:30 +03:00
Aron L. Phillips 4a870d3682 The following changes were based on the request by Martin Kojtal:
Removed the pin definition comments from the xxx_api.c files;
Added GHI_MBUINO to the build_travis.py target section.
2014-08-04 11:06:15 -04:00
Aron L. Phillips d63067208a Removed the Peripheral Pin Definitions from the xxx_api.c files (analogin, i2c, pwmout, serial, & spi) to follow an example from Erik O. from this platform: https://github.com/mbedmicro/mbed/blob/master/libraries/mbed/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL46Z/PeripheralPins.c to allow for advanced compatibility of platforms;
Subsequently, the Peripheral Pin Definitions were added to the file called PeripheralPins.c to accommodate the removal of the definitions from the main xxx_api.c files and added it to each respective Target folder;
Added PeripheralPin.h to point to the PeripheralPin.c files in the target directories.
2014-07-30 17:53:01 -04:00
Aron L. Phillips f0e2959200 Revert "Modified the TARGET_GHI_MBUINO/PeripheralNames.h and targets/hal/TARGET_NXP/TARGET_LPC11UXX/TARGET_GHI_MBUINO/PinNames.h to reflect the mBuino base hardware;"
This reverts commit 6b910f2763.
2014-07-30 16:05:02 -04:00
Aron L. Phillips 6b910f2763 Modified the TARGET_GHI_MBUINO/PeripheralNames.h and targets/hal/TARGET_NXP/TARGET_LPC11UXX/TARGET_GHI_MBUINO/PinNames.h to reflect the mBuino base hardware;
I commented out the non useful SPI pins and Serial pins from our hardware build;
For pwmout, I removed the non useful pins and added two more pins that are part of our hardware build.
2014-07-30 13:53:17 -04:00
Bogdan Marinescu 490d1a6606 Merge pull request #417 from Sissors/master
[LPC1114] Sleep fix + some device.h settings
2014-07-29 18:48:52 +01:00
Sissors a545702123 Sleep fix + some device.h settings
LPC1114 has no semihosting and also no localfilesystem. I took the
liberty of guessing the LPC11Cxx also don't have those.

Sleep code did nothing outside of locking up the microcontroller
(because semihosting was enabled). Code seems to be copied from
LPC11u24, but the LPC1114 is fundamentally different. (For example
deep-sleep bit is now the deep-powerdown bit, which you dont want).

Aditionally it keeps current peripheral state during deepsleep and when
waking up. Datasheet rates LPC1114 at 6uA in deepsleep, I measured it at
3.7uA. That makes me a happy panda.
2014-07-28 21:14:57 +02:00
Anders Lindvall ea510ce162 Fixed three issues with the SPI driver for the LPC1549 platform:
* The TXDATCTL register was used even if only the control signals were
  modified which caused extra data to be transmitted.

* The RXDAT register does not only contain the received data, but also
  control information in bits 16 to 20. The old code did not mask out
  the control information and in rare cases that would cause the returned
  data to include too much information (i.e. received 0xaa as data but the
  function returned 0x300aa).

* The LPC1549 uses a Switch Matric (SWM) to allow any pin to have any
  function. This is not used in the old code which simply assigned
  the first instance of the SPI class to SPI0 and the second instance to
  SPI1. The third instance would result in a call to error().

  This behaviour is not at all working with real world examples where the
  SPI bus contains more than two peripherals. The third peripheral would
  cause the platform to end up in error().

  The solution is to modify the get_available_spi() function to first see
  if the MISO/MOSI/SCLK and SSEL pins are already configured for use as
  either SPI0 or SPI1. If the exact same pins are already used then the
  SPIx will be reused. If one or more pins are different then another
  SPIx will be used (or if both are alredy in use then error()). With this
  change it is now possible to do this:

  MyFlash      f(D11,D12,D13);      // Will use SPI0
  MyTemp       t(D11,D12,D13);      // Will use SPI0
  SDFileSystem s(D11,D12,D13,"sd"); // Will use SPI0
  MyDisplay    d(D11,D12,D13);      // Will use SPI0

  The old/existing code would have resulted in this

  MyFlash      f(D11,D12,D13);      // Will use SPI0
  MyTemp       t(D11,D12,D13);      // Will use SPI1
  SDFileSystem s(D11,D12,D13,"sd"); // error()
  MyDisplay    d(D11,D12,D13);      // Will never be called
2014-07-23 10:15:14 +02:00
Mihail Stoyanov 55f9b014de Add GHI_MBUINO target support 2014-07-22 11:12:05 +03:00
Toyomasa Watarai 5a49448226 [LPC1549] Fixed SPI frequency issue
Fixed SPI frequency issue when new frequency is not divided by system
clock.
Optimized power/clock setting code.
Some code refactoring.
2014-07-20 23:04:43 +09:00
Yihui Xiong 76f1eb949b add ARCH_GPRS target 2014-07-16 18:34:20 +08:00
tkuyucu 9f0849d0ea Merge remote-tracking branch 'upstream/master' 2014-07-15 16:21:12 +02:00
Sigve Sebastian Farstad ae4d94584b Fix erroneous boolean expression conversions
In fb90157c9a, asserts were introduced
changing the error checking style in large portions of the code base
from `if(error_condition) fail();` to `assert(!error_condition);`. In
doing so, not all boolean conditions were negated properly. This commit
restores the original semantics of the error checks as they were before
fb90157, (unless an error check has been changed upstream, in which
case it is ignored).

The practical effects of this commit is that it should restore proper
I2C and SPI functionality on the LPC15XX and nRF51822, respectively.
2014-07-15 15:24:30 +02:00
Martin Kojtal 2031512f69 Merge pull request #400 from micromint/master
[LPC4330] Updated LPC4330_M4 port
2014-07-15 07:35:28 +01:00
jesusalvarez e84df816c4 Restored assert on gpio_object.h. Added export template for GCC ARM Embedded (TOOLCHAIN_GCC_ARM) 2014-07-14 10:05:37 -04:00
jesusalvarez 9b8711ea45 Update LPC4330_M4 README 2014-07-11 15:13:54 -04:00
jesusalvarez 4e82296c05 Updates to LPC4330_M4 drivers 2014-07-11 14:48:25 -04:00
Rohit Grover 9413ed9163 provide default initialization of some local variables in serial_api.c:serial_format() 2014-07-09 10:52:37 +01:00
Martin Kojtal 09251dd3ba Revert "error.h -> mbed_error.h" 2014-07-08 14:04:50 +02:00
0xc0170 f7f77392d9 error header file rename to mbed_error.h 2014-07-04 08:05:49 +02:00
Toyomasa Watarai b1cae3da93 [LPC1549] Added CAN support
Added CAN API support for LPC1549 target.
Tested with LPC1768 target using NXP TJA1042 CAN transceiver.
2014-06-30 15:21:42 +09:00
dinau 0e1d88d0ee Merge branch 'origin/master' 2014-06-24 23:46:48 +09:00
Toyomasa Watarai 27a7514c6e [LPC1114] Fixed PwmOut spike pulse issue
[LPC1114] Fixed PwmOut spike pulse issue when duty is 0%.
2014-06-24 13:28:40 +09:00
dinau 323a5d7270 LPCCAPPUCCINO] initial port
LPCCAPPUCCINO is the breakboard that has LPC11U37,
https://strawberry-linux.com/catalog/items?code=12045
Schematic:
https://strawberry-linux.com/pub/cappuccino-sch.pdf
2014-06-20 23:08:02 +09:00
Toyomasa Watarai 50db157bd6 [LPC1549] Added USBDevice support
[LPC1549] Added USBDevice support by va009039's code
[LPC1549] Fixed warnings by GCC toolchain and removed redundant code
[LPC11U68] Fixed warnings by GCC toolchain and removed redundant code
2014-06-18 15:09:09 +09:00
dinau 131cdb529d [LPC2368][GCC_ARM] Added export functionality
Other changes are,
(1) Modified link error
(2) Silent Warning
2014-06-13 20:13:14 +09:00
Bogdan Marinescu c694da0543 Merge branch 'dev_error_assert' of git://github.com/0xc0170/mbed into 0xc0170-dev_error_assert
Conflicts:
	libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11U6X/serial_api.c
	workspace_tools/toolchains/arm.py
2014-06-11 15:50:34 +01:00
Bogdan Marinescu 0adb870369 Merge branch 'arch-pro' of git://github.com/xiongyihui/mbed
Conflicts:
	workspace_tools/targets.py
2014-06-11 09:40:42 +01:00
Bogdan Marinescu ff65c63a80 Merge pull request #346 from devanlai/LPC11CXX-RTR
Add support for remote CAN frames on LPC11CXX
2014-06-11 09:16:41 +01:00
Devan Lai df7af8ca86 Add support for remote CAN frames
Fixed bug where outgoing messages always had DIR bit set, even if
message type was CANRemote.
Fixed TODO where incoming messages were always assigned message type
CANData even if the message was remote
Changed filter setup to no longer set MDIR bit in receive filter; this
allows remote messages to pass through the filter.
2014-06-06 18:41:20 -07:00
Toyomasa Watarai e4e5683036 [LPC11U68] Fixed ADC sampling clock issue 2014-06-05 11:12:26 +09:00
Toyomasa Watarai 74d82257c0 [LPC1549] Fixed potential build error for GCC 2014-06-04 15:04:12 +09:00
Toyomasa Watarai 850e3c4d3d [LPC11U68] Added UART1-4 support 2014-06-03 18:18:39 +09:00
0xc0170 324407b59a assert rename to mbed_assert header file 2014-05-28 16:38:00 +02:00
0xc0170 be43ebc182 MBED_ASSERT - mbed assert implementation 2014-05-28 15:39:44 +02:00
Yihui Xiong 73b643816c add Arch Pro target 2014-05-28 17:54:42 +08:00
0xc0170 48cc27f405 [LPC targets + K20 + F407VG] spi,serial, i2c asserts logic corrections 2014-05-28 10:35:50 +02:00
0xc0170 6a84ffa433 Merge branch 'master' into dev_error_assert
Conflicts:
	libraries/mbed/targets/hal/TARGET_Freescale/TARGET_K20D5M/spi_api.c
	libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11U6X/gpio_api.c
	libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/gpio_api.c
	libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/analogin_api.c
	libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/gpio_api.c
	libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/i2c_api.c
	libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/pwmout_api.c
	libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/serial_api.c
	libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/spi_api.c
	libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F103RB/i2c_api.c
	libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F302R8/i2c_api.c
	libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/i2c_api.c
2014-05-28 09:53:51 +02:00
0xc0170 f9091a237c [Freescale targets] - spi, serial assers corrections
- reverted gpio change in TARGET_LPC11U6X
2014-05-28 08:23:28 +02:00
0xc0170 9a39c1ddee [NRF51822] analog read - set channel 2014-05-27 12:57:45 +02:00
Toyomasa Watarai d8a81cde30 [LPC1549] Fixed ADC channel 1 issue 2014-05-27 11:20:12 +09:00
Rohit Grover f65b7d9077 removing warnings discovered by using -Weffc++ flag for gcc 2014-05-26 18:04:46 +01:00
Neil Thiessen 0438beba09 Update gpio_api.c
Modified gpio_set() to allow PIO0_0, PIO0_10, and PIO0_15 to be properly configured for GPIO.
2014-05-22 15:58:01 -06:00
Neil Thiessen 1073702cd2 Changed LED mapping to RGB
Changed the pin mapping for LED1, LED2, and LED3, to Red, Green, and Blue respectively. This matches the KL25Z and LPC11U68, and makes more sense in my opinion.
2014-05-22 08:52:10 -06:00
Neil Thiessen e441e0aa4f Update gpio_api.c
Modified gpio_set() to allow PIO0_0, PIO0_10, and PIO0_15 to be properly configured for GPIO.
2014-05-21 09:21:43 -06:00
Martin Kojtal 5831f87601 Merge pull request #317 from neilt6/master
[LPC11U6X] PinName LED mapping to RGB
2014-05-21 15:11:46 +01:00
0xc0170 b728ea1324 [LPC11CXX] can_frequency - bug fix
- link on the mbed issue report: https://mbed.org/users/mbed_official/code/mbed-src/issues/2
2014-05-21 15:08:55 +01:00
0xc0170 0306d52fc5 [K20, LCP1768, F100RB] asserts corrections 2014-05-21 14:33:42 +01:00
Neil Thiessen ed0b72233e Changed LED mapping to RGB
Changed the pin mapping for LED1, LED2, and LED3, to Red, Green, and Blue respectively. This matches the KL25Z, and makes more sense in my opinion.
2014-05-20 11:03:49 -06:00
0xc0170 906a6745a9 assert - logic corrections 2014-05-20 17:10:11 +01:00
0xc0170 60276a7cac __ASSERT_MSG macro for uvision, corrections in LPC targets - serial - assert 2014-05-20 16:41:30 +01:00
0xc0170 d843d56c08 [ALL TARGETS] error replaced by assert for preconditions 2014-05-20 14:20:37 +01:00
Martin Kojtal e7f82dfb52 Merge pull request #312 from mazgch/master
fix wrong pin in C027 platform api
2014-05-19 08:43:22 +01:00
mazgch ec6104a0fd typo 2014-05-16 18:19:06 +02:00
Martin Kojtal 32deaca3f9 Merge pull request #308 from mazgch/master
[ublox c027] platform api to manage peripheral power supplies and level shifters
2014-05-16 16:08:12 +01:00
0xc0170 fb90157c9a All targets except STM - asserts for checking presumptions (function parameters) 2014-05-16 15:45:12 +01:00
Toyomasa Watarai 71b734812b [LPC11U68] Added PwmOut and USBDevice support
Added PwmOut support using SCT0/1
Added USBDevice support
Fixed analog mode issue for ADC
2014-05-16 16:00:43 +09:00
Bogdan Marinescu 7fda8e7eb7 Merge branch 'master' of github.com:mbedmicro/mbed 2014-05-15 17:12:41 +01:00
Bogdan Marinescu 4d4ac9cd81 Fixed LPC11U68 flow control issue 2014-05-15 17:12:28 +01:00
mazgch a36ad6c0b6 address coding style concerns of some individuals 2014-05-15 17:37:15 +02:00
mazgch f8e0d9cf3e added a api to manage the power supplies of peripheral power supplies and level shifters 2014-05-15 17:10:30 +02:00
0xc0170 09fe00f041 gpio and pinmap - asserts for NC as parameters (not init), abort retarget
- retarget - abort - calls mbed_die
	- asserts added to gpio mbed hal for all targets
2014-05-15 15:30:14 +01:00
mazgch 7bc41ef504 some more pin names 2014-05-14 17:59:32 +02:00
0xc0170 4c61464ee7 all targets - gpio - NC guard
- gpio init enables to set pin to NC, thus the rest of gpio HAL should not do any action
	  if pin is set to NC.
2014-05-14 15:44:33 +01:00
Toyomasa Watarai e756237ebf [LPC11U68] Fixed PLL lock issue etc
Fixed PLL lock issue
Corrected system clock related code
2014-05-12 15:25:23 +09:00
Martin Kojtal f62e0e4d9f Merge pull request #289 from neilt6/master
LPC11UXX and LPCU13XX - Fix reset glitch in pwmout_write()
2014-05-08 08:45:19 +01:00
Neil Thiessen 0b449bb1d7 Fix reset glitch in pwmout_write() on LPC13XX
Fixed the same problem as https://github.com/mbedmicro/mbed/pull/289 on the LPC13XX.
2014-05-07 08:53:55 -06:00
Bogdan Marinescu 06edaf703a Merge pull request #294 from mazgch/master
increase timeout for slow I2C slaves that make use of extensive clock stretching
2014-05-07 13:18:30 +01:00
mazgch 94ac072267 fix multibyte reads (was polling wrong status value) 2014-05-07 13:39:27 +02:00
Mihail Stoyanov 0cd322f5c3 Added D14, D15 pins for LPC812 2014-05-07 13:15:32 +03:00
mazgch e61b2f1f88 make sure we remove any function from a physical pin so that we can assign a new function to it. 2014-05-07 09:38:26 +02:00
Neil Thiessen 3e42b889ac Fix reset glitch in pwmout_write()
Resetting the timer every time the duty cycle is changed causes unwanted glitches to be produced on the output. These glitches manifest as a tone at the update frequency when PWM is used for class D style audio.
2014-05-01 09:19:14 -06:00
Bogdan Marinescu b5f6c135e4 Merge pull request #279 from xiongyihui/master
fix prescaler settings
2014-04-29 16:46:12 +01:00
Toyomasa Watarai 3de6ec9451 [LPC11U68] Initial release
Initial release of NXP LPC11U68 target.
2014-04-29 10:32:24 +09:00
Yihui Xiong f11cb671e5 fix prescaler settings 2014-04-29 07:30:50 +08:00
sg- b64e32299f add fflush to exit
enable DEVICE_STDIO_MESSAGES on k64f
remove all line endings from error messages throughout mbed sdk (all targets)
2014-04-09 16:24:13 -05:00
Yihui Xiong 61a0f59bad add I2C pins name to Arch and Arch Pro 2014-04-04 10:40:31 +08:00
Mihail Stoyanov 4e46149448 Added pins D14 and D15 for LPC1549 2014-04-02 14:40:02 +01:00
Mihail Stoyanov 4110d25404 Added D14 and D15 pins for Arch Pro 2014-04-01 18:39:41 +01:00
neilt6 e57e69c772 Changed error(...) to a weak function
Made error(...) a weak function so that it can be overridden in
production projects. Also fixed several serial_api.c files that required
stdlib.h, but were getting it from error.h.
2014-03-31 10:27:14 -06:00
Bogdan Marinescu 71b306a2d4 Improvements to Sam's platform_init.c commit 2014-03-25 11:43:54 +00:00
sg- ecad62a205 Updates to build_api.py (platform_init.c remains platform_init.o in mbed.bld) and moved NMI_Handler from gpio_irq_api.c to platform_init.c for KL05Z, KL25Z and KL46Z target platforms to take advantage of this change. 2014-03-24 18:41:19 -05:00
Bogdan Marinescu c013d6e6a9 Restore serial_api.c on LPC1768
Michael's GPIO fix changed this to a previous version, this commit restores
it to the last version.
2014-03-18 10:53:33 +00:00
Toyomasa Watarai 84a654d200 [LPC1549] Added AnalogOut API and PWM improvement
Added AnalogOut
I2C code cleanup
PWM now support 4ch
us_ticker now use RIT instead of SCT
2014-03-12 19:23:14 +09:00
Bogdan Marinescu f34be80874 Fix compilation errors from GPIO pull request 2014-03-10 13:41:31 +00:00
Bogdan Marinescu 423ddcb86e Merge pull request #198 from mazgch/gpio_api
proposed change of gpio_api (new update pull request)
2014-03-10 11:15:59 +00:00
Toyomasa Watarai 855bafe8d5 Added PwmOut for LPC1549 target 2014-03-07 18:40:45 +09:00
mazgch 8f5a2a580a fix indentation and make helpers static inline 2014-03-04 15:00:28 +01:00
mazgch c1d3cb5aa3 address concern from watarai-san about code size and performance by creating a set of common initialization functions 2014-03-04 14:09:41 +01:00
mazgch be8bca4aa0 proposed change of gpio_api 2014-03-04 11:27:30 +01:00
Emilio Monti 6d79406112 Merge pull request #196 from toyowata/master
Added LPC11U35_501 target support
2014-03-04 10:20:01 +00:00
Toyomasa Watarai 7216c36d0f Added LPC11U35_501 target support
Tested with CQ's LPC11U35/501 target board
2014-03-04 17:57:33 +09:00
Emilio Monti 8431561fc7 Merge pull request #194 from Sissors/master
LPC1768 writeable fix + KL25Z/KL46Z RTC pin function
2014-03-03 11:05:07 +00:00
mazgch ca1d76687b adding back tx fifo, this also fixes the tx interrupts 2014-03-03 12:00:32 +01:00
Sissors 56ce1e7290 Fixed LPC1768 writable
Now if no flow control is used it will check if holding register is
empty, instead of complete UART is empty: The TxIrq uses the same
requirement.
Currently BufferedSerial (and everyone else trying something similar)
goes haywire because it doesn't just check if writable, but also if done
writing.

If flow control is enabled nothing is changed.
2014-03-01 16:58:01 +01:00
Sissors baa4003b95 Revert "Fixed writable for LPC1768"
This reverts commit 19ae097c62.
2014-03-01 16:46:48 +01:00
Sissors 19ae097c62 Fixed writable for LPC1768
Bit 6 (0x40) is true if the peripheral is completely empty.
Bit 5 (0x20) is true if the transmit hold register is empty, which is
sufficient for it to be writable.

The TxIrq uses the same requirement, so now it works together and
BufferedSerial doesn't go haywire on LPC1768
2014-03-01 16:38:03 +01:00
Yihui Xiong 891b63a14e add D0-D13 and A0-A5 for Arch V1.1 and Arch Pro 2014-02-26 21:15:06 +08:00
sg- 5a64111465 Merge branch 'nxp_merge'
Conflicts:
	workspace_tools/export/uvision4.py
2014-02-20 16:30:38 -06:00
Toyomasa Watarai ca527e4dd9 Corrected wrong pin names 2014-02-19 19:25:20 +09:00
Emilio Monti a2a5490f5d Merge pull request #171 from Sissors/master
Fixed LPC1114 InterruptIn for Port1 (and higher)
2014-02-18 10:19:35 +00:00
Sissors 8da53457ab Fixed LPC1114 InterruptIn for Port1 (and higher)
Channel was only calculated using bits set, port number was ignored.
2014-02-18 07:58:25 +01:00
Toyomasa Watarai 01cfe17b3d [LPC1549] Added InterruptIn support 2014-02-16 22:38:09 +09:00
ytsuboi a2f2f44258 [LPC1549] Added I2C master support 2014-02-15 18:23:06 +09:00
Toyomasa Watarai 95f4057499 [LPC1549] Added AnalogIn support 2014-02-15 15:18:35 +09:00
Toyomasa Watarai e2a47d9daa [LPC1549] Corrected wrong pin name 2014-02-14 19:14:05 +09:00
Toyomasa Watarai 5fbea95fe2 [LPC1549] Added Arduino Shield Receptacles Names 2014-02-14 16:18:48 +09:00
Toyomasa Watarai 1c2e2ce572 [LPC1549] Fixed us_ticker problem 2014-02-13 17:00:25 +09:00
Toyomasa Watarai 07706f0821 [LPC1549] Added SPI support 2014-02-13 16:52:38 +09:00
ytsuboi 78d4c7345b [LPC1549] Added UART support 2014-02-12 23:43:27 +09:00
Toyomasa Watarai 741bfc22b1 [LPC1549] Fixed GPIO
Clean-up PinNames.h and GPIOrelated functions.
2014-02-11 23:18:59 +09:00
ytsuboi e06e842221 [LPC1549] initial commit 2014-02-11 15:54:38 +09:00
Bogdan Marinescu 2665d5bac4 Modified call-before-main mechanism
Added a new function (mbed_sdk_init) that can be used by the SDK itself to
do initializations before main() is called.
2014-01-31 11:58:18 +02:00
Bogdan Marinescu 2a782f5067 Merge pull request #149 from cobrid/master
Remove unnecessary semicolons.
2014-01-31 00:55:41 -08:00
Bogdan Marinescu 6c4dc5cd33 Merge pull request #155 from sg-/c027_lpc1768_refactor
Forgot to add this file...
2014-01-31 00:54:56 -08:00
sg- 1db40f89a7 Forgot to add this file... 2014-01-30 09:55:50 -06:00
Bogdan Marinescu 6e82b54538 Merge branch 'c027_lpc1768_refactor' of git://github.com/sg-/mbed into sg--c027_lpc1768_refactor
Conflicts:
	workspace_tools/export/uvision4.py
2014-01-30 11:31:56 +02:00
sg- 28f0cf71b3 Update to macro test in board.c, remove C027.cpp(h), set default IO in mbed_main and fixed copy paste error in MBED_LPC1768 reserved_pins.h 2014-01-29 22:33:41 -06:00
sg- f1fa9a0c25 Added support for C027. Small re-factor to LPC1768 to accommodate this. 2014-01-28 20:44:32 -06:00
Chiel de Roest 8b3cdc0067 Remove unnecessary semicolons.
Remove unnecessary colon that was placed in all SPI drivers for NXP
targets.
2014-01-24 22:49:09 +01:00
neilt6 8e346fc498 Fixed sleep and disabled semihosting on LPC11U35
I created 3 separate device.h headers for the three LPC11UXX targets,
and disabled the features that the LPC11U35 board doesn't have like
Semihosting and LocalFileSystem. I also made the call to
mbed_interface_disconnect() require DEVICE_SEMIHOSTING, which prevents
calls to sleep() from hanging the system on an LPC11U35.
2014-01-24 10:51:48 -07:00
ytsuboi 4fbf286ee3 [LPC812] change ssp_busy() to check RXOV 2013-12-31 20:24:46 +09:00
ytsuboi 0a11767877 [LPC812] enable SPISlave 2013-12-29 19:18:50 +09:00
Bogdan Marinescu 34a43eaa41 Merge branch 'flow_control'
Conflicts:
	workspace_tools/tests.py
2013-12-19 11:36:45 +02:00
Bogdan Marinescu bb8ed20a47 LPC1768 flow control fixes
- Disable TX buffer, this isn't compatible with the software CTS implementation
- Properly set hardware RTS/CTS pins when possible
- Modified test to use hardware CTS and software RTS
2013-12-19 11:31:23 +02:00
Yihui Xiong 6501b16213 Merge remote-tracking branch 'upstream/master' 2013-12-19 12:38:04 +08:00
Yihui Xiong a3465b5eac fix 16bit timer pwm output 2013-12-19 12:31:31 +08:00
Bogdan Marinescu 1ae5a1d340 Added pin definitions for LPC11U35 quick stard board 2013-12-13 13:35:19 +02:00
Bogdan Marinescu c3d4d3079f Added DEVICE_SERIAL_FC as an indicator for the flow control implementation 2013-12-11 10:26:18 +02:00
Bogdan Marinescu 53cd64775d Hardware flow control implementation for LPC81X 2013-12-05 17:33:16 +02:00
Bogdan Marinescu 2ac6c4c531 Fixed RTS/CTS bit-banging on LPC1768 2013-12-04 19:46:12 +02:00
Bogdan Marinescu fbeb52d613 Added RTS/CTS flow control
Currently implemented only for LPC1768. On this platform, when hardware
flow control is not directly supported, it will be emulated.
Also added "not_implemented.c" as a placeholder for various HAL functions
that might not be implemented on all platforms (in this particular case,
serial_set_flow_control). These are weak implementations that default to a
"not implemented" error message.
2013-12-04 19:42:11 +02:00
Michael Moon a249e39826 Improved baudrate calculation function.
Uses 100% integer math, delivers more accurate results with fewer iterations in less time.

Since it seems most of the NXP chips use identical math, I have also altered the other targets in this commit.

If there are non-NXP chips which use a similar serial block, consider porting to those as well

Comparison:

         BAUD   DL MUL DIV  CPU_CLOCK
      -------  --- --- --- ----------
new: {   9600, 625,  1,  0,  96000000},	// Actual baud:    9600, error =0.00%,    1 iterations
old: {   9600, 625,  1,  0,  96000000},	// Actual baud:    9600, error =0.00%,    0 iterations

new: {  38400, 125,  4,  1,  96000000},	// Actual baud:   38400, error =0.00%,    8 iterations
old: {  38400,  81, 14, 13,  96000000},	// Actual baud:   38409, error +0.02%,  420 iterations

new: {  57600,  81,  7,  2,  96000000},	// Actual baud:   57613, error +0.02%,  120 iterations
old: {  57600,  54, 14, 13,  96000000},	// Actual baud:   57613, error +0.02%,  315 iterations

new: { 115200,  27, 14, 13,  96000000},	// Actual baud:  115226, error +0.02%,  120 iterations
old: { 115200,  27, 14, 13,  96000000},	// Actual baud:  115226, error +0.02%,  210 iterations

new: { 230400,  23, 15,  2,  96000000},	// Actual baud:  230179, error -0.10%,  120 iterations
old: { 230400,  17, 15,  8,  96000000},	// Actual baud:  230179, error -0.10%,  525 iterations

new: { 250000,  24,  1,  0,  96000000},	// Actual baud:  250000, error =0.00%,    1 iterations
old: { 250000,  24,  1,  0,  96000000},	// Actual baud:  250000, error =0.00%,    0 iterations

new: {1000000,   6,  1,  0,  96000000},	// Actual baud: 1000000, error =0.00%,    1 iterations
old: {1000000,   6,  1,  0,  96000000},	// Actual baud: 1000000, error =0.00%,    0 iterations

new: {2000000,   3,  1,  0,  96000000},	// Actual baud: 2000000, error =0.00%,    1 iterations
old: {2000000,   3,  1,  0,  96000000},	// Actual baud: 2000000, error =0.00%,    0 iterations

new: {   9600, 514, 15,  4, 100000000},	// Actual baud:    9600, error =0.00%,  110 iterations
old: {   9600, 337, 15, 14, 100000000},	// Actual baud:    9593, error -0.07%, 1365 iterations

new: {  38400,  93,  4,  3, 100000000},	// Actual baud:   38402, error +0.01%,  120 iterations
old: {  38400,  85, 12, 11, 100000000},	// Actual baud:   38363, error -0.10%,  525 iterations

new: {  57600,  62,  4,  3, 100000000},	// Actual baud:   57604, error +0.01%,  120 iterations
old: {  57600,  61,  9,  7, 100000000},	// Actual baud:   57633, error +0.06%,  840 iterations

new: { 115200,  31,  4,  3, 100000000},	// Actual baud:  115207, error +0.01%,  120 iterations
old: { 115200,  31,  4,  3, 100000000},	// Actual baud:  115207, error +0.01%,  525 iterations

new: { 230400,  19,  7,  3, 100000000},	// Actual baud:  230263, error -0.06%,  120 iterations
old: { 230400,  19,  7,  3, 100000000},	// Actual baud:  230263, error -0.06%,  735 iterations

new: { 250000,  25,  1,  0, 100000000},	// Actual baud:  250000, error =0.00%,    1 iterations
old: { 250000,  25,  1,  0, 100000000},	// Actual baud:  250000, error =0.00%,    0 iterations

new: {1000000,   5,  4,  1, 100000000},	// Actual baud: 1000000, error =0.00%,    8 iterations
old: {1000000,   5,  4,  1, 100000000},	// Actual baud: 1000000, error =0.00%,  315 iterations

new: {2000000,   2,  9,  5, 100000000},	// Actual baud: 2008929, error +0.45%,  120 iterations
old: {2000000,   2,  9,  5, 100000000},	// Actual baud: 2008929, error +0.45%,  315 iterations

new: {   9600, 625,  4,  1, 120000000},	// Actual baud:    9600, error =0.00%,    8 iterations
old: {   9600, 404, 15, 14, 120000000},	// Actual baud:    9602, error +0.02%, 1575 iterations

new: {  38400, 179, 11,  1, 120000000},	// Actual baud:   38408, error +0.02%,  120 iterations
old: {  38400, 101, 15, 14, 120000000},	// Actual baud:   38409, error +0.02%,  525 iterations

new: {  57600,  93,  5,  2, 120000000},	// Actual baud:   57604, error +0.01%,  120 iterations
old: {  57600,  68, 12, 11, 120000000},	// Actual baud:   57545, error -0.10%,  420 iterations

new: { 115200,  47, 13,  5, 120000000},	// Actual baud:  115248, error +0.04%,  120 iterations
old: { 115200,  34, 12, 11, 120000000},	// Actual baud:  115090, error -0.10%,  315 iterations

new: { 230400,  19,  7,  5, 120000000},	// Actual baud:  230263, error -0.06%,  120 iterations
old: { 230400,  17, 12, 11, 120000000},	// Actual baud:  230179, error -0.10%,  210 iterations

new: { 250000,  30,  1,  0, 120000000},	// Actual baud:  250000, error =0.00%,    1 iterations
old: { 250000,  30,  1,  0, 120000000},	// Actual baud:  250000, error =0.00%,    0 iterations

new: {1000000,   5,  2,  1, 120000000},	// Actual baud: 1000000, error =0.00%,    3 iterations
old: {1000000,   4,  8,  7, 120000000},	// Actual baud: 1000000, error =0.00%,  210 iterations

new: {2000000,   3,  4,  1, 120000000},	// Actual baud: 2000000, error =0.00%,    8 iterations
old: {2000000,   2,  8,  7, 120000000},	// Actual baud: 2000000, error =0.00%,  210 iterations
2013-11-29 02:44:14 +11:00
Bogdan Marinescu 256f70fffc Merge remote-tracking branch 'origin/master' 2013-11-26 17:14:46 +02:00
Bogdan Marinescu 3c0a8b633f Provide generic pinout defines
This commit adds generic peripheral names to various mbed enabled
boards, to make it easier to write portable code amongst various
mbed boards.
2013-11-26 17:12:36 +02:00
Sissors 585e05ca6a Added sleep to LPC81x
http://mbed.org/users/mbed_official/code/mbed-src/pull-request/6
2013-11-21 08:19:44 +01:00
Bogdan Marinescu 5b6faea448 Removed redundant label TARGET_LPC81X_COMMON 2013-11-11 13:28:18 +02:00
Joris Aerts 76ffc4935e Fix bug in gpio_set not setting reserved pins correctly
Loop going over reserved pins was not going over all entries as result of incorrect sizeof
2013-11-08 13:39:00 -08:00
Emilio Monti 317a1f66d2 Merge pull request #91 from jorisa/master
Add CAN api filter support and LPC11CXX CAN implementation
2013-10-25 06:58:05 -07:00
Adam Green 969733ae8f serial_putc() to make better use of Tx FIFO
If don't know if this is an issue that anyone cares about.  I am also
not sure what the best way to solve it is either.  I just thought I
would issue a pull request with this commit to bring the issue to light
and show a possible solution that I have tested on my mbed-1768 device.

Previously the serial_putc() API didn't make any use of the Tx FIFO
since the serial_writable() API it utilizes only returns true when the
FIFO is completely empty.  This is due to the fact that the THRE bit of
the UART's LSR (Line Status Register) only goes high when the whole
FIFO is empty.

I noticed this when doing some performance testing with the network
stack.  I went from calling printf() to output 3 bytes every 10 seconds
(with packet drop stats) to instead output 4 bytes every 10 seconds.
I thought these should easily fit in the 16 byte FIFO but outputting
one extra byte caused an additional three 550 byte UDP packets to be
dropped.  This should only happen if the additional character being
sent to the UART was taking away extra CPU cycles from the network
stack.

My solution is to keep track of the number of bytes that have been
placed in the Tx FIFO since it was last detected as being completely
empty (via the THRE bit).  Only once this count hits 16 does the code
then block, waiting for the THRE bit to go high.  Each time the THRE
bit does go high, the count is reset to 0 again and it is incremented
for each byte that is loaded into the THR.
2013-10-25 15:17:06 +03:00
Bogdan Marinescu 544ac9e728 Disable DEVICE_STDIO_MESSAGES for LPC81X
Because the LPC81X HAL implementation calls error(), which in turn calls
fprintf(), quite a bit of code is added to the image, which is not a good
idea on such resource constrained targets.
2013-10-25 14:51:01 +03:00
Joris Aerts 739f2a6375 Add can_api hal implementation to LPC11CXX target
Most of the functionality works, interrupts might need a little more work.
2013-10-22 11:02:10 -07:00
Joris Aerts 067e446ae2 Add CAN->filter to API and add placeholders to hal's
Add filter function and modify CAN->read definition to allow reading specific messages.
2013-10-22 10:57:28 -07:00
0xc0170 b0537af763 gpio irq enable/disable
- InterruptIn disable_irq/enable_irq
2013-10-19 22:28:29 +02:00
Andreas Rebert a0a6cbe1d3 Merge branch 'master' into lpc4088 2013-10-11 14:02:59 +02:00
Andreas Rebert a574fd73b3 Bugfixes for I2C and port impl 2013-10-11 14:01:49 +02:00
Joris Aerts 7ed6acb08a Move pwmout_api.c/PeripheralNames.h to LPC11XX_11CXX common
Because CT32B1 (P1_1, P1_2 and P1_3) is used by us_ticker.c for wait and ticker function. Since wait/ticker is commonly used by mbed code and I decided CT32B1 of LPC11XX should only be used for this function, not for PwmOut.
P1_6 and P1_7 are used by UART (USBTX/USBRX) and I think they should not be assigned to other function.
2013-09-30 08:11:56 -07:00
Joris Aerts 4d0c864b16 Move adc_pinmap.h to LPC11XX_11CXX common
Merge back into analog_api.c. P1_3/ADC0_4 (SWDIO) now disabled for both targets
2013-09-30 08:07:26 -07:00