The official mbed C/C SDK provides the software platform and libraries to build your applications.
Fork of mbed by
(01.May.2014) started sales! http://www.switch-science.com/catalog/1717/
(13.March.2014) updated to 0.5.0
This is a pin conversion PCB from mbed 1768/11U24 to arduino UNO.
- So if you have both mbed and arduino shields, I guess you would be happy with such a conversion board :)
Photos
- Board photo vvv
- Schematic photo vvv
- Functionality photo vvv
Latest eagle files
PCB >> /media/uploads/k4zuki/mbedshield050.brd
SCH >> /media/uploads/k4zuki/mbedshield050.sch
BIG changes from previous version
- Ethernet RJ45 connector is removed.
- http://mbed.org/components/Seeed-Ethernet-Shield-V20/ is the biggest hint to use Ethernet!
MostALL of components can be bought at Akizuki http://akizukidenshi.com/- But sorry, they do not send parts to abroad
- Pinout is changed!
arduino | 0.4.0 | 0.5.0 |
---|---|---|
D4 | p12 | p21 |
D5 | p11 | p22 |
MOSI_ | none | p11 |
MISO_ | none | p12 |
SCK_ | none | p13 |
This design has bug(s)
- I2C functional pin differs between 1768 and 11U24.
Fixed bugs here
- MiniUSB cable cannot be connected on mbed if you solder high-height electrolytic capacitor on C3.
- http://akizukidenshi.com/catalog/g/gP-05002/ is the solution to make this 100% AKIZUKI parts!
- the 6-pin ISP port is not inprimented in version 0.4.0
it will be fixed in later version 0.4.1/0.4.2/0.5.0This has beenfixed
I am doing some porting to use existing arduino shields but it may faster if you do it by yourself...
you can use arduino PinName "A0-A5,D0-D13" plus backside SPI port for easier porting.
To do this you have to edit PinName enum in
- "mbed/TARGET_LPC1768/PinNames.h" or
- "mbed/TARGET_LPC11U24/PinNames.h" as per your target mbed.
here is the actual list: This list includes define switch to switch pin assignment
part_of_PinNames.h
USBTX = P0_2, USBRX = P0_3, //from here mbeDshield mod D0=p27, D1=p28, D2=p14, D3=p13, #ifdef MBEDSHIELD_050 MOSI_=p11, MISO_=p12, SCK_=p13, D4=p21, D5=p22, #else D4=p12, D5=p11, #endif D6=p23, D7=p24, D8=p25, D9=p26, D10=p8, D11=p5, D12=p6, D13=p7, A0=p15, A1=p16, A2=p17, A3=p18, A4=p19, A5=p20, SDA=p9, SCL=p10, //mbeDshield mod ends here // Not connected NC = (int)0xFFFFFFFF
semihost_api.h@59:0883845fe643, 2013-02-18 (annotated)
- Committer:
- emilmont
- Date:
- Mon Feb 18 11:12:58 2013 +0000
- Revision:
- 59:0883845fe643
- Parent:
- 57:0480438fc29c
- Child:
- 61:5e5da4a5990b
Add pinmap NC terminators for LPC1768 CAN.
Update the license from MIT to Apache v2.
Make the semihost code target independent using opportune defines for the UID and MAC.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emilmont | 44:24d45a770a51 | 1 | /* mbed Microcontroller Library |
emilmont | 54:71b101360fb9 | 2 | * Copyright (c) 2006-2013 ARM Limited |
emilmont | 44:24d45a770a51 | 3 | * |
emilmont | 59:0883845fe643 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
emilmont | 59:0883845fe643 | 5 | * you may not use this file except in compliance with the License. |
emilmont | 59:0883845fe643 | 6 | * You may obtain a copy of the License at |
emilmont | 59:0883845fe643 | 7 | * |
emilmont | 59:0883845fe643 | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
emilmont | 44:24d45a770a51 | 9 | * |
emilmont | 59:0883845fe643 | 10 | * Unless required by applicable law or agreed to in writing, software |
emilmont | 59:0883845fe643 | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
emilmont | 59:0883845fe643 | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
emilmont | 59:0883845fe643 | 13 | * See the License for the specific language governing permissions and |
emilmont | 59:0883845fe643 | 14 | * limitations under the License. |
emilmont | 44:24d45a770a51 | 15 | */ |
emilmont | 44:24d45a770a51 | 16 | #ifndef MBED_SEMIHOST_H |
emilmont | 44:24d45a770a51 | 17 | #define MBED_SEMIHOST_H |
emilmont | 44:24d45a770a51 | 18 | |
emilmont | 44:24d45a770a51 | 19 | #include "device.h" |
emilmont | 44:24d45a770a51 | 20 | #include "toolchain.h" |
emilmont | 44:24d45a770a51 | 21 | |
emilmont | 44:24d45a770a51 | 22 | #ifdef __cplusplus |
emilmont | 44:24d45a770a51 | 23 | extern "C" { |
emilmont | 44:24d45a770a51 | 24 | #endif |
emilmont | 44:24d45a770a51 | 25 | |
emilmont | 55:d722ed6a4237 | 26 | #if DEVICE_SEMIHOST |
emilmont | 57:0480438fc29c | 27 | |
emilmont | 44:24d45a770a51 | 28 | #ifndef __CC_ARM |
emilmont | 44:24d45a770a51 | 29 | |
emilmont | 57:0480438fc29c | 30 | #if defined(__ICCARM__) |
emilmont | 57:0480438fc29c | 31 | inline int __semihost(int reason, const void *arg) { |
emilmont | 57:0480438fc29c | 32 | return __semihosting(reason, (void*)arg); |
emilmont | 57:0480438fc29c | 33 | } |
emilmont | 57:0480438fc29c | 34 | #else |
emilmont | 57:0480438fc29c | 35 | |
emilmont | 44:24d45a770a51 | 36 | #ifdef __thumb__ |
emilmont | 55:d722ed6a4237 | 37 | # define AngelSWI 0xAB |
emilmont | 55:d722ed6a4237 | 38 | # define AngelSWIInsn "bkpt" |
emilmont | 55:d722ed6a4237 | 39 | # define AngelSWIAsm bkpt |
emilmont | 44:24d45a770a51 | 40 | #else |
emilmont | 55:d722ed6a4237 | 41 | # define AngelSWI 0x123456 |
emilmont | 55:d722ed6a4237 | 42 | # define AngelSWIInsn "swi" |
emilmont | 55:d722ed6a4237 | 43 | # define AngelSWIAsm swi |
emilmont | 44:24d45a770a51 | 44 | #endif |
emilmont | 44:24d45a770a51 | 45 | |
emilmont | 44:24d45a770a51 | 46 | inline int __semihost(int reason, const void *arg) { |
emilmont | 44:24d45a770a51 | 47 | int value; |
emilmont | 59:0883845fe643 | 48 | |
emilmont | 57:0480438fc29c | 49 | asm volatile ( |
emilmont | 57:0480438fc29c | 50 | "mov r0, %1" "\n\t" |
emilmont | 57:0480438fc29c | 51 | "mov r1, %2" "\n\t" |
emilmont | 57:0480438fc29c | 52 | AngelSWIInsn " %a3" "\n\t" |
emilmont | 57:0480438fc29c | 53 | "mov %0, r0" |
emilmont | 57:0480438fc29c | 54 | : "=r" (value) /* output operands */ |
emilmont | 57:0480438fc29c | 55 | : "r" (reason), "r" (arg), "i" (AngelSWI) /* input operands */ |
emilmont | 57:0480438fc29c | 56 | : "r0", "r1", "r2", "r3", "ip", "lr", "memory", "cc" /* list of clobbered registers */ |
emilmont | 57:0480438fc29c | 57 | ); |
emilmont | 59:0883845fe643 | 58 | |
emilmont | 44:24d45a770a51 | 59 | return value; |
emilmont | 44:24d45a770a51 | 60 | } |
emilmont | 57:0480438fc29c | 61 | #endif |
emilmont | 44:24d45a770a51 | 62 | #endif |
emilmont | 44:24d45a770a51 | 63 | |
emilmont | 44:24d45a770a51 | 64 | #if DEVICE_LOCALFILESYSTEM |
emilmont | 44:24d45a770a51 | 65 | FILEHANDLE semihost_open(const char* name, int openmode); |
emilmont | 44:24d45a770a51 | 66 | int semihost_close (FILEHANDLE fh); |
emilmont | 44:24d45a770a51 | 67 | int semihost_read (FILEHANDLE fh, unsigned char* buffer, unsigned int length, int mode); |
emilmont | 44:24d45a770a51 | 68 | int semihost_write (FILEHANDLE fh, const unsigned char* buffer, unsigned int length, int mode); |
emilmont | 44:24d45a770a51 | 69 | int semihost_ensure(FILEHANDLE fh); |
emilmont | 44:24d45a770a51 | 70 | long semihost_flen (FILEHANDLE fh); |
emilmont | 44:24d45a770a51 | 71 | int semihost_seek (FILEHANDLE fh, long position); |
emilmont | 44:24d45a770a51 | 72 | int semihost_istty (FILEHANDLE fh); |
emilmont | 44:24d45a770a51 | 73 | |
emilmont | 44:24d45a770a51 | 74 | int semihost_remove(const char *name); |
emilmont | 44:24d45a770a51 | 75 | int semihost_rename(const char *old_name, const char *new_name); |
emilmont | 44:24d45a770a51 | 76 | #endif |
emilmont | 44:24d45a770a51 | 77 | |
emilmont | 44:24d45a770a51 | 78 | int semihost_uid(char *uid); |
emilmont | 44:24d45a770a51 | 79 | int semihost_reset(void); |
emilmont | 44:24d45a770a51 | 80 | int semihost_vbus(void); |
emilmont | 44:24d45a770a51 | 81 | int semihost_powerdown(void); |
emilmont | 44:24d45a770a51 | 82 | int semihost_exit(void); |
emilmont | 44:24d45a770a51 | 83 | |
emilmont | 44:24d45a770a51 | 84 | int semihost_connected(void); |
emilmont | 44:24d45a770a51 | 85 | int semihost_disabledebug(void); |
emilmont | 44:24d45a770a51 | 86 | |
emilmont | 55:d722ed6a4237 | 87 | #endif |
emilmont | 55:d722ed6a4237 | 88 | |
emilmont | 44:24d45a770a51 | 89 | #ifdef __cplusplus |
emilmont | 44:24d45a770a51 | 90 | } |
emilmont | 44:24d45a770a51 | 91 | #endif |
emilmont | 44:24d45a770a51 | 92 | |
emilmont | 44:24d45a770a51 | 93 | #endif |