DA14580 Bluetooth Smart IC writer library
Dependents: 11u35_usbLocalFilesystem
DA14580.h@0:3bdbabca8a09, 2015-08-19 (annotated)
- Committer:
- k4zuki
- Date:
- Wed Aug 19 14:41:13 2015 +0000
- Revision:
- 0:3bdbabca8a09
- Child:
- 1:b2d4a4e2f362
DA14580 Bluetooth Smart IC writer library: first version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
k4zuki | 0:3bdbabca8a09 | 1 | /** |
k4zuki | 0:3bdbabca8a09 | 2 | * @file DA1458X.h |
k4zuki | 0:3bdbabca8a09 | 3 | * @brief DA1458X writer |
k4zuki | 0:3bdbabca8a09 | 4 | **/ |
k4zuki | 0:3bdbabca8a09 | 5 | #ifndef DA1458X_H |
k4zuki | 0:3bdbabca8a09 | 6 | #define DA1458X_H |
k4zuki | 0:3bdbabca8a09 | 7 | |
k4zuki | 0:3bdbabca8a09 | 8 | #include "mbed.h" |
k4zuki | 0:3bdbabca8a09 | 9 | |
k4zuki | 0:3bdbabca8a09 | 10 | #define LOADER_FILE "/local/loader.bin" |
k4zuki | 0:3bdbabca8a09 | 11 | #define TARGET_FILE "/local/target.bin" |
k4zuki | 0:3bdbabca8a09 | 12 | |
k4zuki | 0:3bdbabca8a09 | 13 | /** \class DA14580 |
k4zuki | 0:3bdbabca8a09 | 14 | * \brief mbed library for Dialog Semiconductor DA14580 Bluetooth LE chip |
k4zuki | 0:3bdbabca8a09 | 15 | * |
k4zuki | 0:3bdbabca8a09 | 16 | * Example: |
k4zuki | 0:3bdbabca8a09 | 17 | * @code |
k4zuki | 0:3bdbabca8a09 | 18 | * #include "mbed.h" |
k4zuki | 0:3bdbabca8a09 | 19 | * #include "DA14580.h" |
k4zuki | 0:3bdbabca8a09 | 20 | * |
k4zuki | 0:3bdbabca8a09 | 21 | * DA14580 BLE(P0_18, P0_19, P0_1); |
k4zuki | 0:3bdbabca8a09 | 22 | * Serial pc(USBTX, USBRX); |
k4zuki | 0:3bdbabca8a09 | 23 | * |
k4zuki | 0:3bdbabca8a09 | 24 | * int main() |
k4zuki | 0:3bdbabca8a09 | 25 | * { |
k4zuki | 0:3bdbabca8a09 | 26 | * int result=0; |
k4zuki | 0:3bdbabca8a09 | 27 | * pc.baud(115200); |
k4zuki | 0:3bdbabca8a09 | 28 | * |
k4zuki | 0:3bdbabca8a09 | 29 | * wait_ms(1); |
k4zuki | 0:3bdbabca8a09 | 30 | * fp = fopen( SOURCE_FILE, "rb" ); |
k4zuki | 0:3bdbabca8a09 | 31 | * result = BLE.load(fp); |
k4zuki | 0:3bdbabca8a09 | 32 | * fclose(fp); |
k4zuki | 0:3bdbabca8a09 | 33 | #if defined(__MICROLIB) && defined(__ARMCC_VERSION) // with microlib and ARM compiler |
k4zuki | 0:3bdbabca8a09 | 34 | * free(fp); |
k4zuki | 0:3bdbabca8a09 | 35 | #endif |
k4zuki | 0:3bdbabca8a09 | 36 | * pc.printf("Result = %d \n\r",&result); |
k4zuki | 0:3bdbabca8a09 | 37 | * } |
k4zuki | 0:3bdbabca8a09 | 38 | * @endcode |
k4zuki | 0:3bdbabca8a09 | 39 | */ |
k4zuki | 0:3bdbabca8a09 | 40 | |
k4zuki | 0:3bdbabca8a09 | 41 | enum XMODEM_CONST { |
k4zuki | 0:3bdbabca8a09 | 42 | SOH = (0x01), |
k4zuki | 0:3bdbabca8a09 | 43 | STX = (0x02), |
k4zuki | 0:3bdbabca8a09 | 44 | EOT = (0x04), |
k4zuki | 0:3bdbabca8a09 | 45 | ACK = (0x06), |
k4zuki | 0:3bdbabca8a09 | 46 | DLE = (0x10), |
k4zuki | 0:3bdbabca8a09 | 47 | NAK = (0x15), |
k4zuki | 0:3bdbabca8a09 | 48 | CAN = (0x18), |
k4zuki | 0:3bdbabca8a09 | 49 | }; |
k4zuki | 0:3bdbabca8a09 | 50 | |
k4zuki | 0:3bdbabca8a09 | 51 | enum DA14580_STATUS { |
k4zuki | 0:3bdbabca8a09 | 52 | SUCCESS = '0', |
k4zuki | 0:3bdbabca8a09 | 53 | E_NOT_CONNECTED = '1', |
k4zuki | 0:3bdbabca8a09 | 54 | E_FILE_NOT_FOUND = '2', |
k4zuki | 0:3bdbabca8a09 | 55 | E_TIMEOUT_STX = '3', |
k4zuki | 0:3bdbabca8a09 | 56 | E_ACK_NOT_RETURNED = '4', |
k4zuki | 0:3bdbabca8a09 | 57 | E_CRC_MISMATCH = '5' |
k4zuki | 0:3bdbabca8a09 | 58 | }; |
k4zuki | 0:3bdbabca8a09 | 59 | |
k4zuki | 0:3bdbabca8a09 | 60 | class DA14580 |
k4zuki | 0:3bdbabca8a09 | 61 | { |
k4zuki | 0:3bdbabca8a09 | 62 | public: |
k4zuki | 0:3bdbabca8a09 | 63 | DA14580( PinName TX, PinName RX, PinName RESET ); |
k4zuki | 0:3bdbabca8a09 | 64 | DA14580( RawSerial &ble, PinName RESET ); |
k4zuki | 0:3bdbabca8a09 | 65 | ~DA14580(); |
k4zuki | 0:3bdbabca8a09 | 66 | |
k4zuki | 0:3bdbabca8a09 | 67 | void init(); |
k4zuki | 0:3bdbabca8a09 | 68 | int load(); |
k4zuki | 0:3bdbabca8a09 | 69 | int file_size( FILE *fp ); // copied from ika_shouyu_poppoyaki |
k4zuki | 0:3bdbabca8a09 | 70 | RawSerial _ble; |
k4zuki | 0:3bdbabca8a09 | 71 | |
k4zuki | 0:3bdbabca8a09 | 72 | private: |
k4zuki | 0:3bdbabca8a09 | 73 | uint8_t _recieve; |
k4zuki | 0:3bdbabca8a09 | 74 | uint8_t _read; |
k4zuki | 0:3bdbabca8a09 | 75 | int _filesize; |
k4zuki | 0:3bdbabca8a09 | 76 | int _timeout; |
k4zuki | 0:3bdbabca8a09 | 77 | int _status; |
k4zuki | 0:3bdbabca8a09 | 78 | FILE* _fp; |
k4zuki | 0:3bdbabca8a09 | 79 | int _crc; |
k4zuki | 0:3bdbabca8a09 | 80 | DigitalOut _reset; |
k4zuki | 0:3bdbabca8a09 | 81 | }; |
k4zuki | 0:3bdbabca8a09 | 82 | |
k4zuki | 0:3bdbabca8a09 | 83 | #endif //DA1458X_H |