Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BaseDAP SWD USBDAP USBLocalFileSystem mbed DA14580 SWSPI W25X40BV
USB memory + Writer for DA14580 BLE chip + CMSIS-DAP debugger + USB-UART functions in one chip
One button input loads your application into DA14580 or DA14580 included BLE modules
Quote:
Current compatible hardware description can be found at https://github.com/K4zuki/da14580/releases/tag/MurataBLEr04
DA14580/DA14580.h@2:228291df190e, 2015-08-19 (annotated)
- Committer:
- k4zuki
- Date:
- Wed Aug 19 13:23:10 2015 +0000
- Revision:
- 2:228291df190e
11U35 CMSIS-DAP; add DA14580.h/.cpp
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| k4zuki | 2:228291df190e | 1 | /** |
| k4zuki | 2:228291df190e | 2 | * @file DA1458X.h |
| k4zuki | 2:228291df190e | 3 | * @brief DA1458X writer |
| k4zuki | 2:228291df190e | 4 | **/ |
| k4zuki | 2:228291df190e | 5 | #ifndef DA1458X_H |
| k4zuki | 2:228291df190e | 6 | #define DA1458X_H |
| k4zuki | 2:228291df190e | 7 | |
| k4zuki | 2:228291df190e | 8 | #include "mbed.h" |
| k4zuki | 2:228291df190e | 9 | |
| k4zuki | 2:228291df190e | 10 | #define LOADER_FILE "/local/loader.bin" |
| k4zuki | 2:228291df190e | 11 | #define TARGET_FILE "/local/target.bin" |
| k4zuki | 2:228291df190e | 12 | |
| k4zuki | 2:228291df190e | 13 | /** \class DA14580 |
| k4zuki | 2:228291df190e | 14 | * \brief mbed library for Dialog Semiconductor DA14580 Bluetooth LE chip |
| k4zuki | 2:228291df190e | 15 | * |
| k4zuki | 2:228291df190e | 16 | * Example: |
| k4zuki | 2:228291df190e | 17 | * @code |
| k4zuki | 2:228291df190e | 18 | * #include "mbed.h" |
| k4zuki | 2:228291df190e | 19 | * #include "DA14580.h" |
| k4zuki | 2:228291df190e | 20 | * |
| k4zuki | 2:228291df190e | 21 | * DA14580 BLE(P0_18, P0_19, P0_1); |
| k4zuki | 2:228291df190e | 22 | * Serial pc(USBTX, USBRX); |
| k4zuki | 2:228291df190e | 23 | * |
| k4zuki | 2:228291df190e | 24 | * int main() |
| k4zuki | 2:228291df190e | 25 | * { |
| k4zuki | 2:228291df190e | 26 | * int result=0; |
| k4zuki | 2:228291df190e | 27 | * pc.baud(115200); |
| k4zuki | 2:228291df190e | 28 | * |
| k4zuki | 2:228291df190e | 29 | * wait_ms(1); |
| k4zuki | 2:228291df190e | 30 | * fp = fopen( SOURCE_FILE, "rb" ); |
| k4zuki | 2:228291df190e | 31 | * result = BLE.load(fp); |
| k4zuki | 2:228291df190e | 32 | * fclose(fp); |
| k4zuki | 2:228291df190e | 33 | #if defined(__MICROLIB) && defined(__ARMCC_VERSION) // with microlib and ARM compiler |
| k4zuki | 2:228291df190e | 34 | * free(fp); |
| k4zuki | 2:228291df190e | 35 | #endif |
| k4zuki | 2:228291df190e | 36 | * pc.printf("Result = %d \n\r",&result); |
| k4zuki | 2:228291df190e | 37 | * } |
| k4zuki | 2:228291df190e | 38 | * @endcode |
| k4zuki | 2:228291df190e | 39 | */ |
| k4zuki | 2:228291df190e | 40 | |
| k4zuki | 2:228291df190e | 41 | enum XMODEM_CONST { |
| k4zuki | 2:228291df190e | 42 | SOH = (0x01), |
| k4zuki | 2:228291df190e | 43 | STX = (0x02), |
| k4zuki | 2:228291df190e | 44 | EOT = (0x04), |
| k4zuki | 2:228291df190e | 45 | ACK = (0x06), |
| k4zuki | 2:228291df190e | 46 | DLE = (0x10), |
| k4zuki | 2:228291df190e | 47 | NAK = (0x15), |
| k4zuki | 2:228291df190e | 48 | CAN = (0x18), |
| k4zuki | 2:228291df190e | 49 | }; |
| k4zuki | 2:228291df190e | 50 | |
| k4zuki | 2:228291df190e | 51 | enum DA14580_STATUS{ |
| k4zuki | 2:228291df190e | 52 | SUCCESS, |
| k4zuki | 2:228291df190e | 53 | E_NOT_CONNECTED, |
| k4zuki | 2:228291df190e | 54 | E_FILE_NOT_FOUND, |
| k4zuki | 2:228291df190e | 55 | E_TIMEOUT_STX, |
| k4zuki | 2:228291df190e | 56 | E_ACK_NOT_RETURNED, |
| k4zuki | 2:228291df190e | 57 | E_CRC_MISMATCH |
| k4zuki | 2:228291df190e | 58 | }; |
| k4zuki | 2:228291df190e | 59 | |
| k4zuki | 2:228291df190e | 60 | class DA14580 |
| k4zuki | 2:228291df190e | 61 | { |
| k4zuki | 2:228291df190e | 62 | public: |
| k4zuki | 2:228291df190e | 63 | DA14580( PinName TX, PinName RX, PinName RESET ); |
| k4zuki | 2:228291df190e | 64 | DA14580( Serial &ble, PinName RESET ); |
| k4zuki | 2:228291df190e | 65 | ~DA14580(); |
| k4zuki | 2:228291df190e | 66 | |
| k4zuki | 2:228291df190e | 67 | void init(); |
| k4zuki | 2:228291df190e | 68 | int load(); |
| k4zuki | 2:228291df190e | 69 | int file_size( FILE *fp ); // copied from ika_shouyu_poppoyaki |
| k4zuki | 2:228291df190e | 70 | RawSerial _ble; |
| k4zuki | 2:228291df190e | 71 | |
| k4zuki | 2:228291df190e | 72 | private: |
| k4zuki | 2:228291df190e | 73 | uint8_t _recieve; |
| k4zuki | 2:228291df190e | 74 | uint8_t _read; |
| k4zuki | 2:228291df190e | 75 | int _filesize; |
| k4zuki | 2:228291df190e | 76 | int _timeout; |
| k4zuki | 2:228291df190e | 77 | int _status; |
| k4zuki | 2:228291df190e | 78 | FILE* _fp; |
| k4zuki | 2:228291df190e | 79 | int _crc; |
| k4zuki | 2:228291df190e | 80 | DigitalInOut _reset; |
| k4zuki | 2:228291df190e | 81 | }; |
| k4zuki | 2:228291df190e | 82 | |
| k4zuki | 2:228291df190e | 83 | #endif //DA1458X_H |