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
CallChain.h
- Committer:
- k4zuki
- Date:
- 2014-05-06
- Revision:
- 72:e0dca162df14
- Parent:
- 66:9c8f0e3462fb
File content as of revision 72:e0dca162df14:
/* mbed Microcontroller Library * Copyright (c) 2006-2013 ARM Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MBED_CALLCHAIN_H #define MBED_CALLCHAIN_H #include "FunctionPointer.h" #include <string.h> namespace mbed { /** Group one or more functions in an instance of a CallChain, then call them in * sequence using CallChain::call(). Used mostly by the interrupt chaining code, * but can be used for other purposes. * * Example: * @code * #include "mbed.h" * * CallChain chain; * * void first(void) { * printf("'first' function.\n"); * } * * void second(void) { * printf("'second' function.\n"); * } * * class Test { * public: * void f(void) { * printf("A::f (class member).\n"); * } * }; * * int main() { * Test test; * * chain.add(second); * chain.add_front(first); * chain.add(&test, &Test::f); * chain.call(); * } * @endcode */ typedef FunctionPointer* pFunctionPointer_t; class CallChain { public: /** Create an empty chain * * @param size (optional) Initial size of the chain */ CallChain(int size = 4); virtual ~CallChain(); /** Add a function at the end of the chain * * @param function A pointer to a void function * * @returns * The function object created for 'function' */ pFunctionPointer_t add(void (*function)(void)); /** Add a function at the end of the chain * * @param tptr pointer to the object to call the member function on * @param mptr pointer to the member function to be called * * @returns * The function object created for 'tptr' and 'mptr' */ template<typename T> pFunctionPointer_t add(T *tptr, void (T::*mptr)(void)) { return common_add(new FunctionPointer(tptr, mptr)); } /** Add a function at the beginning of the chain * * @param function A pointer to a void function * * @returns * The function object created for 'function' */ pFunctionPointer_t add_front(void (*function)(void)); /** Add a function at the beginning of the chain * * @param tptr pointer to the object to call the member function on * @param mptr pointer to the member function to be called * * @returns * The function object created for 'tptr' and 'mptr' */ template<typename T> pFunctionPointer_t add_front(T *tptr, void (T::*mptr)(void)) { return common_add_front(new FunctionPointer(tptr, mptr)); } /** Get the number of functions in the chain */ int size() const; /** Get a function object from the chain * * @param i function object index * * @returns * The function object at position 'i' in the chain */ pFunctionPointer_t get(int i) const; /** Look for a function object in the call chain * * @param f the function object to search * * @returns * The index of the function object if found, -1 otherwise. */ int find(pFunctionPointer_t f) const; /** Clear the call chain (remove all functions in the chain). */ void clear(); /** Remove a function object from the chain * * @arg f the function object to remove * * @returns * true if the function object was found and removed, false otherwise. */ bool remove(pFunctionPointer_t f); /** Call all the functions in the chain in sequence */ void call(); #ifdef MBED_OPERATORS void operator ()(void) { call(); } pFunctionPointer_t operator [](int i) const { return get(i); } #endif private: void _check_size(); pFunctionPointer_t common_add(pFunctionPointer_t pf); pFunctionPointer_t common_add_front(pFunctionPointer_t pf); pFunctionPointer_t* _chain; int _size; int _elements; }; } // namespace mbed #endif