Commit Graph

726 Commits (f28afaedfc1de0b7c1f94088ded584b0037e858f)

Author SHA1 Message Date
bcostm a2efcd2c92 [NUCLEO_L152RE] analog_in improvement 2014-01-16 13:25:43 +01:00
bcostm e5b641777a [NUCLEO_L152RE] Add analogin api 2014-01-16 13:16:35 +01:00
Bogdan Marinescu 8ef99f8562 Merge pull request #145 from Sissors/master
Added MCGPLLFLL clock function, squished some 'bugs'
2014-01-14 14:12:48 -08:00
Sissors 153a9ddb49 Added MCGPLLFLL clock function, squished some 'bugs'
PWM bug mentioned here:
https://mbed.org/questions/2315/BUG-Exporting-to-ARM-GCC-does-not-work-n/

Fast internal osc prescaler wasn't taken into account at us_ticker
interrupt clock source, now it is.
2014-01-14 22:57:43 +01:00
0xc0170 937430a130 clk freq header file
- HAL clock improvement
2014-01-14 17:51:09 +01:00
0xc0170 4e5993e7ee Merge branch 'master' into dev_k20d5m_testing 2014-01-14 15:47:22 +01:00
bcostm ffb7f13018 [NUCLEO_F152RE] Correction in pinmap 2014-01-14 10:14:08 +01:00
bcostm ba5866b35e [NUCLEO_L152RE] Fix bugs with gpio and serial 2014-01-13 14:20:27 +01:00
Bogdan Marinescu f1904ba15c Merge pull request #140 from Sissors/master
KL46Z: Added Sleep, LED3 and LED4 definitions, switches
2014-01-13 02:37:11 -08:00
bcostm cbfdc4e26d [NUCLEO_L152RE] Cleanup in available ports/pins 2014-01-13 10:27:47 +01:00
bcostm bef6fdf339 [NUCLEO_F103RB] Code cleanup, correction in pins definition 2014-01-13 09:24:31 +01:00
Sissors aa0f7a7026 Added clk_freqs.h for clock related functions
Serial now also works when PLL/FLL is disabled and extosc is available.

us_ticker tries to divide extosc to 1MHz, otherwise use fast internal
oscillator
2014-01-11 19:10:36 +01:00
Sissors ebdbf53ba1 Updat PWM prescaler correctly 2014-01-11 09:40:10 +01:00
Sissors eedce209c5 Removed hardcoded frequencies, replaced by automatically calculated
ADC frequency 1.5MHz -> 6MHz (if possible, otherwise it tries as close
to, but less than 6MHz)
pwm tries to get its clock as close as possible to 1MHz, but not lower
than 1MHz
2014-01-10 21:45:26 +01:00
bcostm 7d145c8dc4 [NUCLEO_L152RE] Add first files (gpio, pinmap, us_ticker) 2014-01-10 17:46:18 +01:00
tkuyucu fdb41b0ccb serial will choose the nearest lower baudrate if an unsupported value is chosen. 2014-01-10 15:53:43 +01:00
tkuyucu 29560a3195 SPI and I2C will accept unsupported frequencies and match them with the closest available frequency instead of generating an error.
Sleep is now implemented (deepsleep will cause nrf to work in System OFF mode).
2014-01-10 14:21:43 +01:00
tkuyucu c7eabcd977 Interrupt priorities set to low application level (3) in order to ensure no conflict with the SD. 2014-01-09 14:03:20 +01:00
Andreas Rebert e8b09cbc2d [LPC4088] Corrected an invalid header file dependecy. 2014-01-09 09:10:10 +01:00
Andreas Rebert 1448b871c1 [LPC4088] Making it possible to reserve stack space by weak function. 2014-01-09 08:52:33 +01:00
Andreas Rebert 3157d5afb2 [LPC4088] Making it possible to reserve stack space by weak function. 2014-01-09 08:51:30 +01:00
Sissors 7df2622a76 SPI clock fix for KL05Z and KL46Z 2014-01-09 07:57:45 +01:00
Andreas Rebert a1a2fec259 [LPC4088]: Corrected RAM size in linker script (ARM_GCC) 2014-01-09 07:44:15 +01:00
Sissors ed7954f5ac Fixed KL25Z SPI clock
https://mbed.org/questions/2309/spifrequency-for-KL25Z/
2014-01-08 21:00:40 +01:00
0xc0170 4732796ab4 PWM channels definition update, serial uses external global variable system clock 2014-01-08 17:32:28 +01:00
0xc0170 ffac7e6d6a PWM - pwmload removed from the objects header file 2014-01-08 12:05:11 +01:00
tkuyucu 694f9c726c fixes and updates after the mbed unit tests have been carried out. 2014-01-08 11:14:19 +01:00
0xc0170 889952790f PWM - mux addition 2014-01-08 10:58:51 +01:00
0xc0170 a6e45b7d38 spi - disable rx/tx fifo, write/readable flags change 2014-01-07 20:23:54 +01:00
Sissors e5f13c047c Added Sleep, LED3 and LED4 definitions, switches
Sleep = KL25Z sleep (verified to work correctly)
LED3 = LED1, LED4 = LED2 (for compatibility, similar to LED3 = LED4 in
KL25Z code)
SW1 and SW3 for the two switches (SW2 is reset switch)
2014-01-07 18:35:41 +01:00
0xc0170 5d95041620 PWM - legacy mode, LOAD use for updating 2014-01-06 18:43:17 +01:00
bcostm dace8653e6 [NUCLEO_F103RB] Remove HSE re-configuration in sleep code. 2014-01-06 15:07:49 +01:00
bcostm 989c66165c Merge branch 'master' of https://github.com/mbedmicro/mbed 2014-01-06 11:22:35 +01:00
Bogdan Marinescu b311c56b44 Merge pull request #138 from ytsuboi/master
[LPC812] Add SPISlave function
2013-12-31 07:25:41 -08:00
ytsuboi 4fbf286ee3 [LPC812] change ssp_busy() to check RXOV 2013-12-31 20:24:46 +09:00
0xc0170 aa501c003b Shared PORT interrupt - check improved
- clocks must be enabled and also interrupt detected, otherwise
	  interrupt handler is not invoked.
2013-12-31 08:34:12 +01:00
0xc0170 a384d1d875 pwm channel 7 correction, enhanced mode 2013-12-30 18:12:01 +01:00
0xc0170 dc19dcbb94 fix - KL46Z cmsis header (v2.2), shared interrupt PORTCD
- Ports C and D sharing same interrupt vectors
	- KL46Z CMSIS header update
	- InterruptIn methods irq_disable/enable comment update
2013-12-30 12:19:24 +01:00
0xc0170 8d7c3da179 i2c clock from global clock value, syntax corrections 2013-12-30 11:39:36 +01:00
ytsuboi 0a11767877 [LPC812] enable SPISlave 2013-12-29 19:18:50 +09:00
0xc0170 ee7c33d055 K20D5M default irq handler 2013-12-26 12:11:32 +01:00
0xc0170 15e246fc9f Merge branch 'master' into K20D50 2013-12-26 09:05:11 +01:00
0xc0170 63526032d9 K20D5M flash algo for template 2013-12-26 09:03:19 +01:00
0xc0170 78140c4aa1 LPTMR timer - OSCEN set, GCC startup vectors add 2013-12-25 20:02:56 +01:00
Bogdan Marinescu 82aa7b7f2b Enable RTOS with GCC_CR
1. Provide the required __end__ symbol
2. Call software_init_hook() if present, which in turn starts the RTOS

The fix was applied for all targets with a TOOLCHAIN_GCC_CR folder,
but it only works with LPC1768 and LPC4088 because of incomplete or
missing support for GCC_CR and/or the RTOS for the other targets.
Tested by running RTOS_1, RTOS_2 and RTOS_3 with LPC1768 and LPC4088.
2013-12-24 23:13:50 +02:00
0xc0170 b73b57db26 I2C, pullup 2013-12-23 20:56:48 +01:00
0xc0170 c9a029ce6f Merge branch 'master' into K20D50 2013-12-23 20:01:05 +01:00
0xc0170 366221524a SPI, RTC, Serial changes
- SPI - implementation
	- RTC - there's 32.768kHz crystal, use that as a source
	- Serial - 10bit transfer
2013-12-23 19:57:10 +01:00
tkuyucu eb5fd7d6e0 timer overflow sync issue fixed. 2013-12-20 16:37:28 +01:00
Bogdan Marinescu 728084c52f Merge pull request #134 from Joey-Ye/master
Clean up GCC_ARM startup code
2013-12-20 06:53:16 -08:00
Joey Ye feacef8f3a Clean up GCC_ARM startup code 2013-12-20 15:08:20 +08:00
Bogdan Marinescu 425e197ba6 Fix missing case in flow control code 2013-12-19 17:59:24 +02:00
tkuyucu 4756fb3a51 timer interrupts implemented correctly. TimeOut and Ticker classes should work. 2013-12-19 15:53:11 +01:00
tkuyucu f0994c710b SoftDevice is now enabled by the startup code by calling EnableSoftDevice (defined in system_nRF51822). 2013-12-19 15:09:09 +01:00
Bogdan Marinescu 4b4b986cdb Changed flow control test pin assignments 2013-12-19 15:05:36 +02:00
Bogdan Marinescu 5f62a399db Added preliminary printf() support to RawSerial 2013-12-19 15:05:17 +02:00
bcostm 28120ffb19 [NUCLEO_F103RB] Change license text in ALL target files 2013-12-19 11:44:15 +01:00
tkuyucu 76d25ffb25 16-bit timer with sw overflow is used instead of the 32-bit timer. 2013-12-19 10:41:16 +01: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
Joey Ye 9213137011 Discard \r change as pull request rejected 2013-12-19 09:30:18 +08:00
tkuyucu 3c2258956b AnalogIn, Interrupts, and I2C are added. 2013-12-18 15:04:16 +01:00
0xc0170 988894e837 Merge branch 'master' into K20D50 2013-12-17 16:13:27 +01:00
Bogdan Marinescu 8ec31ead80 Merge pull request #132 from mazgch/master
Detection of modem when using serial port, CDMA version of linkmonitor
2013-12-17 06:24:12 -08:00
mazgch 6b9f2079f1 Add detection of LISA-C to select CDMA protocol when using serial port.
Make link monitor compatible with CDMA (no AT+COPS).
2013-12-17 11:35:23 +01:00
bcostm 9702a131d4 Merge branch 'master' of https://github.com/mbedmicro/mbed 2013-12-17 11:10:12 +01:00
Bogdan Marinescu c560db3233 Merge branch 'KL46_DEV' of git://github.com/sg-/mbed into sg--KL46_DEV
Conflicts:
	README.md
2013-12-17 12:06:12 +02:00
bcostm c84b8f9193 [NUCLEO_F103RB] Use HSI/LSI instead of HSE/LSE
Due to Nucleo board revision C requirements.
2013-12-17 11:04:28 +01:00
Bogdan Marinescu 572b22395f Merge pull request #129 from bcostm/master
[NUCLEO_F103RB] InterruptIn, Sleep, RTC added
2013-12-17 00:41:36 -08:00
Bogdan Marinescu 2fb9de927c Merge pull request #127 from 0xc0170/dev_KL05Z_exporters
Dev kl05 z exporters
2013-12-17 00:40:49 -08:00
sg- 33ae2fe364 Updates to comments and README.md to add new target links 2013-12-16 18:41:39 -06:00
sg- 4445a11673 Add pulldown support to PinMode enum and fix pullup value to match register definition 2013-12-16 13:05:13 -06:00
bcostm adce27f269 [NUCLEO_F103RB] Add RTC 2013-12-16 14:33:58 +01:00
bcostm f8ecc9be46 [NUCLEO_F103RB] Allow ACK polling with I2C (again)
Go back to the last modification made by Bogdan.
2013-12-16 10:13:31 +01:00
mazgch 5dea203d16 Fix for USBHost build issue 2013-12-16 11:10:10 +02:00
Bogdan Marinescu ed106b7ba6 Merge branch 'master' of github.com:mbedmicro/mbed 2013-12-16 11:02:51 +02:00
bcostm b42dacb13d Merge branch 'master' of https://github.com/mbedmicro/mbed 2013-12-16 10:00:20 +01:00
bcostm 967509de53 [NUCLEO_F103RB] Add sleep 2013-12-16 09:56:00 +01:00
Bogdan Marinescu 170ac6562b Merge pull request #121 from mazgch/master
improve USB host library and cellular modem stack
2013-12-16 00:52:14 -08:00
0xc0170 5747a4502d One section for vectors and flash protection bits. The unused space is filled with 0xff 2013-12-15 23:30:03 +01:00
0xc0170 f7cee14193 KL05Z GCC support, exporters for arm_gcc, uvision 2013-12-15 11:54:44 +01:00
bcostm 956064b4bc [NUCLEO_F103RB] Add InterruptIn 2013-12-14 18:53:57 +01:00
Bogdan Marinescu bb3d95e9e5 Merge branch 'master' of github.com:mbedmicro/mbed 2013-12-13 13:37:50 +02:00
Bogdan Marinescu 1ae5a1d340 Added pin definitions for LPC11U35 quick stard board 2013-12-13 13:35:19 +02:00
Bogdan Marinescu da605b82a5 Merge pull request #126 from bcostm/master
[NUCLEO_F103RB] Update PWM IOs used + I2C cleanup
2013-12-13 01:29:29 -08:00
Bogdan Marinescu f5e1f7037f Ported more tests to NUCLEO_F103RB 2013-12-12 20:00:56 +02:00
Bogdan Marinescu a164c6f498 [NUCLEO_F103RB] Allow ACK polling with I2C 2013-12-12 20:00:02 +02:00
Bogdan Marinescu 7d1c888204 Added LED PWM test 2013-12-12 19:59:31 +02:00
bcostm 18136e3f09 [NUCLEO_F103RB] Update PWM IOs used + I2C cleanup 2013-12-12 15:44:21 +01:00
Bogdan Marinescu bd51e4eb73 Merge pull request #123 from bcostm/master
[NUCLEO_F103RB] Add I2C master, code cleanup, ...
2013-12-12 02:34:48 -08:00
Anders Lindvall 0c774294fb LPC4088 target fixes
- changed scatter file to keep all the code in the internal flash
- added tests for SPIFI memory usage
2013-12-12 12:29:00 +02:00
bcostm 2310b4c031 [NUCLEO_F103RB] Code cleanup 2013-12-12 10:35:04 +01:00
bcostm a129b8f8fa [NUCLEO_F103RB] Add more generic signal names for the examples. 2013-12-11 18:38:35 +01:00
Bogdan Marinescu 8ee4396f01 Ported 'sd' test to the Nucleo board 2013-12-11 18:50:35 +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
bcostm 37b8acad68 [NUCLEO_F103RB] Code cleanup 2013-12-10 16:46:15 +01:00
0xc0170 5e9e53f934 PWM - changes to start the channel 2013-12-10 15:57:43 +01:00
mazgch 6a9083527e CDMA currently only uses one CDC 2013-12-10 15:25:08 +01:00
bcostm 5ebce384b5 [NUCLEO_F103RB] Align startup files with other targets 2013-12-10 11:14:56 +01:00
bcostm d44996c26c Merge branch 'master' of https://github.com/mbedmicro/mbed 2013-12-10 10:35:26 +01:00
mazgch 20776dbaa5 fixed the comparison 2013-12-09 23:43:51 +01:00
mazgch 44c2e02e51 - add support for MultiPort Serial Devices
- allow to configure the debug level of the USB stack
2013-12-09 22:04:21 +01:00
mazgch ad65dfff5a Merge branch 'master' of https://github.com/mbedmicro/mbed 2013-12-09 21:55:00 +01:00
mazgch d5da332367 only use one port with CDMA at the moment. 2013-12-09 21:48:01 +01:00
mazgch ea42c3b726 typo 2013-12-09 21:28:56 +01:00
mazgch d0d4476659 adding support for serial port 2013-12-09 21:22:02 +01:00
Bogdan Marinescu 28b16e995d Merge pull request #120 from arebert/lpc4088
[LPC4088]: Networking was broking when splitting peripheral RAM into two...
2013-12-09 07:07:45 -08:00
Bogdan Marinescu 7a7c14e050 [NUCLEO_F103RB] Test porting
Ported GPIO and UART tests, verified as working.
2013-12-09 15:36:51 +02:00
Bogdan Marinescu faee2bf073 [NUCLEO_F103RB] Serial interrupt fixes
- use TC flag instead of TXE for TX interrupt
- clear interrupt flags to prevent possible interrupt storm
2013-12-09 13:01:39 +02:00
Bogdan Marinescu 2b8e05e002 [NUCLEO_F103RB] Timer fixes
- the timer data structures were not properly initialized
- changed slave timer mode to external clock 1 (section 15.3.15 of the manual)
- avoid a possible race condition when concatenating the values of the
  two 16-bit timers
2013-12-07 14:26:54 +02:00
Andreas Rebert f5511ff82a [LPC4088]: elif should have been else 2013-12-07 12:29:06 +01:00
Andreas Rebert 4109fb7d07 [LPC4088]: Networking was broking when splitting peripheral RAM into two sections 2013-12-06 15:36:37 +01:00
tkuyucu 3faaff74ee PwmOut working. 2013-12-06 15:30:58 +01:00
Joey Ye b747181e0d Add \r in retarget 2013-12-06 18:06:11 +08:00
tkuyucu 105c31bcb3 SPISlave works. 2013-12-06 10:01:28 +01:00
tkuyucu 4ba79b77b4 SPISlave works. pwm_out works but needs more work to properly implement 0 pulse and 100% pulse. 2013-12-06 09:59:40 +01:00
Bogdan Marinescu 53cd64775d Hardware flow control implementation for LPC81X 2013-12-05 17:33:16 +02:00
Bogdan Marinescu d0b2fb6c66 Added flow control test
Since this requires a separate serial port connection, added this as a
new attribute of the MUTs.
2013-12-04 19:46:51 +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
bcostm 0aa8b93e26 NUCLEO_F103RB: Add I2C master api 2013-12-04 11:17:10 +01:00
Joe Turner 0438e70bd9 Revert accidental deletion 2013-12-03 16:02:29 +00:00
Joe Turner 4a66961d79 Merge branch 'master' into USBDevice-STM32F4 2013-12-03 15:58:11 +00:00
Joe Turner f56a13410b Remove magic number. 2013-12-03 15:44:35 +00:00
Joe Turner 8d36ce12cb Clean up STM32 USB HAL 2013-12-03 14:25:33 +00:00
Joe Turner 1ad15e4ef7 More changes to bring STM32 USB HAL to a pretty much working state. 2013-12-03 12:52:08 +00:00
Bogdan Marinescu 3f82e7fa6f Use correct scatter file for LPC4088 2013-12-03 11:04:37 +02:00
tkuyucu 685274563e Port, Buffer, DigitalInOut, and Spi (master) works. 2013-12-02 16:33:08 +01:00
Bogdan Marinescu 49df530ae7 Merge pull request #118 from bcostm/master
Add STMicroelectronics NUCLEO_F103RB target
2013-12-02 03:15:58 -08:00
Bogdan Marinescu 6aaa134516 Merge pull request #117 from Sissors/master
Added (deep)sleep to KL25Z
2013-12-02 01:55:33 -08:00
bcostm 3bcf77e4f7 NUCLEO_F103RB: minor changes 2013-12-02 09:22:28 +01:00
Sissors 9f89a4d218 Added (deep)sleep to KL25Z
Sleep is wait mode

Deepsleep is very low power stop mode

During the interrupt that removes it from deepsleep it will run at low
speed until the PLL is automatically re-enabled after the interrupt.
2013-11-30 19:28:00 +01:00
0xc0170 d8d526f656 Merge branch 'master' into K20D50 2013-11-28 17:24:57 +01: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
tkuyucu 820e0473f6 Bogdan's startup fix added. 2013-11-28 13:21:21 +01:00
Joe Turner 089c1bb549 Add start to STM32 USB device driver. 2013-11-28 11:19:12 +00:00
0xc0170 c5a2e6ed0e pwm, spi - pin definition, dac removed 2013-11-27 18:46:30 +01:00
bcostm 1159845529 NUCLEO_F103RB: update channels management in analogin api 2013-11-27 15:39:57 +01:00
tkuyucu 511e24ecc9 nRF51822 mbed SDK with working GPIO, RawSerial, and timer 2013-11-27 13:16:11 +01:00
0xc0170 0e99a7c9bd Analog API - pins, analog pins (arduino) correction, irq
- ADC - pins, mux
	- analog pins - Ax
	- irq - port A - E
2013-11-26 20:08:13 +01: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
bcostm dd292a7e71 NUCLEO_F103RB: Add pwmout api + change timers for ticker 2013-11-26 09:26:08 +01:00
bcostm c33dbfd63d Enable STDIO messages used by the test firmwares 2013-11-25 10:20:39 +01:00
0xc0170 3dc97b20c0 startup ARM - stack pointer, serial functional
- stack pointer correction
	- startup for ARM - clean up
	- GCC ARM linker - RAM size correction
	- NVIC - RAM address
2013-11-22 21:21:01 +01:00
bcostm c47bc1780a Add UseMicroLIB option for exported project 2013-11-22 11:41:07 +01:00
Bogdan Marinescu f6c9c8db5e Fixed initial SP value 2013-11-21 19:07:52 +02:00
Emilio Monti 64952d4f7e Merge pull request #114 from mazgch/master
Avoid hardfault when CAN object is destructed.
2013-11-21 08:40:43 -08:00
mazgch a3a16b3683 Avoid hardfault when CAN object is destructed.
interrupts have to be disabled(can_irq_free) before we turn off(can_free) the peripheral
2013-11-21 17:31:17 +01:00
Emilio Monti 5278dd43f2 Merge pull request #113 from mazgch/master
fix the documentation to ethernet api to match implementation
2013-11-21 02:32:05 -08:00
mazgch 2b7d2bb343 fix the documentation to match implementation 2013-11-21 11:24:58 +01:00
Emilio Monti 6a5335a40e Merge pull request #112 from Sissors/master
Added sleep to LPC81x
2013-11-21 01:58:28 -08: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
hototogi 03b79b5920 support GCC_ARM for LPC4330_M4
- Linker script is based on LPC1768
     number of NVIC is 16 (CORE) + 53 (M4 in LPC43xx) = 69,
    therefor, reserve at the top of RAM0 (address:0x10000000)
    to relocate NVIC vector table
 - startup file is based on startup_ARMCM4.S in CMSIS V3.20
     change NVIC name for cortex-M4 of LPC43xx
 - add GCC_ARM for LPC4330_M4 in python scripts
 - add some descriptions for GCC_ARM
2013-11-20 17:03:59 +09:00
0xc0170 4e09b52a71 K20 uVision files, ld NVIC offset
- K20 KEIL files
	- clock set to 1 (48MHz)
	- offset in GCC ld for vectors in RAM
	- us ticker - PIT timer interrupt implementation
2013-11-19 20:06:26 +01:00
Adam Green 10126e0b2f Increase available RAM for RTX on LPC11U24
The INITIAL_SP value used by RTX was originally at the 4k limit instead
of at the 8k limit.  The HEAP_START macro was defined to __HeapLimit
but the heap really starts at __end__.  __HeapLimit is just used for
some link time sanity checks to verify that the heap and stack can
grow a bit without colliding.
2013-11-19 00:38:12 -08:00
bcostm 415ac34b56 Add analogin, serial and spi support for NUCLEO_F103RB 2013-11-19 09:11:31 +01:00
0xc0170 8ca8014c00 Merge branch 'master' into K20D50 2013-11-18 20:34:45 +01:00
bcostm 70dd0d891e Add STM32F10x standard periph driver 2013-11-14 11:33:29 +01:00
bcostm 6d9b523185 Update workspace_tools files 2013-11-14 11:07:01 +01:00
bcostm beb779b3d6 Rename target 2013-11-13 09:29:29 +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
Bogdan Marinescu e69956aba2 Updated DSP library + build system changes
Updated CMSIS DSP to latest version (CMSIS-SP-00300-r3p2-00rel1.zip)
Build system changes to be able to preprocess assembler sources before compiling them:

- GCC: use gcc '-x assembler-with-cpp'
- ARM: preprocess first, then assemble (two separate commands)
- IAR: added macro definitions and include directories to the assembler command line

Removed CORTEX_ARM_SUPPORT restriction for the DSP libraries.
Tested: LPC1768 with ARM, GCC_ARM and IAR, LPC11U24 with ARM.
2013-11-08 15:38:23 +02:00
bcostm b8ddfce3d0 Change folder name to TARGET_NUCLEO-F103RB 2013-11-08 11:19:09 +01:00
bcostm 96a96f2cb6 Add STM32F10X cmsis files 2013-11-07 14:16:01 +01:00
bcostm c0d5675480 Add STM NUCLEO64 STM32F10X basic files 2013-11-07 11:32:01 +01:00
0xc0170 f4591dbbab Merge branch 'upstream_master' into dev_kl46z 2013-11-05 22:08:07 +01:00
Bogdan Marinescu cf71d0831b Merge pull request #99 from xiongyihui/master
add readable(), writeable() and settings changed callback to USBSerial
2013-11-05 01:37:35 -08:00
Bogdan Marinescu bb04bf917a Merge branch 'lpc4088' of git://github.com/arebert/mbed into arebert-lpc4088
Conflicts:
	workspace_tools/export/gccarm.py
2013-11-04 12:19:29 +02:00
Yihui Xiong d3ca818905 add readable(), writeable() and settings changed callback to USBSerial 2013-11-01 12:38:27 +08:00
Andreas Rebert 09cf4ef128 Support for exporting to GCC_ARM 2013-10-31 13:28:05 +01:00
Adam Green 64620e2e78 lwip: Stop dropping long TCP segments
If lwIP placed more than 2 pbufs in a TCP segment, the ethernet driver
would fail to send it as it didn't have enough Tx descriptors.  The
maximum number of pbufs outstanding for transmit that lwIP keeps is
defined by the TCP_SND_QUEUELEN macro.  I modifed the value of
LPC_NUM_BUFF_TXDESCS to take advantage of this lwIP value.  The +1
takes into account that LPC_EMAC->TxProduceIndex ==
LPC->TxConsumeIndex is reserved for indicating that the queue is empty
so a full queue uses one less than the maximum count.
2013-10-29 23:41:21 -07:00
Adam Green 692cbd11f6 lwip: Fix invalid checksum bug
tcp_write() would incorrectly byte swap the checksum 1 too many times
when concatenating a pbuf to an existing TCP segment if the number of
bytes in the concatenated data was odd.  I hit this issue when I tried
to reproduce a lost segment issue reported by a mbed user in this forum
thread: http://mbed.org/forum/mbed/topic/4354/?page=2#comment-22657
2013-10-29 23:41:21 -07:00
pbrier b1d88905a9 fixed can_filter() prototype (prevents build of LPC1768) 2013-10-26 17:02:29 +02: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
Bogdan Marinescu 9d881770c9 Merge remote-tracking branch 'github/master' 2013-10-25 15:43:01 +03: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
Joe Turner 6ae1e9e360 Merge branch 'master' of git://github.com/mbedmicro/mbed into bugfix-STM32-vectors 2013-10-25 13:11:25 +01:00
Joe Turner 0ef4905728 Fix relocation of vector on STM32. 2013-10-25 13:09:06 +01: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
Bogdan Marinescu 5742abe6d9 Added the new RawSerial.h in mbed.h 2013-10-23 17:28:05 +03:00
Bogdan Marinescu 2404dc0092 Added new serial class, remove interrupt chaining
The new RawSerial class is a simple wrapper over the serial HAL that can
be safely used from an interrupt handler.
Interrupt chaining code was removed from InterruptIn, Serial and Ticker
because it caused lots of issues with the RTOS. Interrupt chaining is
still possible using the InterruptManager class.
2013-10-23 16:08:34 +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 08c1483eb3 Add bitfields definition to LPC11XX target
Generated from UM10398
2013-10-22 11:00:17 -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
Bogdan Marinescu fe7021d433 Renamed ubloxusbgsm in main to ubloxusb
Since the tests are now generic (both GSM and CDMA), rename the directory
to reflect this.
2013-10-22 12:41:01 +03:00
Bogdan Marinescu ae0bc41693 Added support for CDMA modem in SMSTest
Also remove unnecessary thread from main
2013-10-22 12:27:18 +03:00
Bogdan Marinescu 7f35fc4b76 Added support for CMDA modem in HTTPClientTest
Also remove unnecessary thread from main
2013-10-22 11:59:11 +03:00
Bogdan Marinescu dfb472ceaf fixed invalid include name 2013-10-21 14:43:46 +03:00
Bogdan Marinescu 8557b24b61 Merge remote-tracking branch 'github/master' 2013-10-21 14:23:04 +03:00
Bogdan Marinescu 8aaa1b76a6 Added auto synchronization for the u-blox GSM modem test
Also changed the test to look more like the original VodafoneUSBModem SMS
test (added another thread).
2013-10-21 14:21:42 +03:00
0xc0170 5129cd05f3 Merge branch 'upstream_master' into dev_gpio_irq_endis 2013-10-21 12:29:43 +02:00
0xc0170 b0537af763 gpio irq enable/disable
- InterruptIn disable_irq/enable_irq
2013-10-19 22:28:29 +02:00
Bogdan Marinescu 5e6262a91a Fixed macro definitions in u-blox test 2013-10-19 14:39:50 +03:00
Bogdan Marinescu ea9ba23ff5 Changed u-blox modem test
The test is not automated now, so it can be synced with the official
repository.
Also changed it to look more like the original VodafoneUSBModem test by
adding another thread in the code.
2013-10-19 00:54:32 +03:00
0xc0170 d9ed7aba77 CMSIS KL46 files (were KL25 renamed) 2013-10-17 19:32:40 +02:00
Bogdan Marinescu bdf5d03ba1 Updated tests
- Vodafone tests are gone for now
- Added u-blox TCP test (UB_1) and SMS test (UB_2).
- tests can now have more than a single source directory
2013-10-17 18:57:02 +03:00