Platform drivers for Mbed.
Dependents: EVAL-CN0535-FMCZ EVAL-CN0535-FMCZ EVAL-AD568x-AD569x EVAL-AD7606 ... more
src/uart_extra.h@15:fd2c3c3038bf, 2021-02-19 (annotated)
- Committer:
- mahphalke
- Date:
- Fri Feb 19 15:53:52 2021 +0530
- Revision:
- 15:fd2c3c3038bf
- Parent:
- 9:9e247b9c9abf
1. Reverted SPI to use fixed 8-bit format but with time efficient version of spi write function.
2. Integrated USB CDC (Virtual COM Port) functionality into UART module
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
EndaKilgarriff | 9:9e247b9c9abf | 1 | /***************************************************************************//** |
EndaKilgarriff | 9:9e247b9c9abf | 2 | * @file uart_extra.h |
EndaKilgarriff | 9:9e247b9c9abf | 3 | * @brief: Header containing extra types required for UART interface |
EndaKilgarriff | 9:9e247b9c9abf | 4 | ******************************************************************************** |
EndaKilgarriff | 9:9e247b9c9abf | 5 | * Copyright (c) 2020 Analog Devices, Inc. |
EndaKilgarriff | 9:9e247b9c9abf | 6 | * |
EndaKilgarriff | 9:9e247b9c9abf | 7 | * All rights reserved. |
EndaKilgarriff | 9:9e247b9c9abf | 8 | * |
EndaKilgarriff | 9:9e247b9c9abf | 9 | * This software is proprietary to Analog Devices, Inc. and its licensors. |
EndaKilgarriff | 9:9e247b9c9abf | 10 | * By using this software you agree to the terms of the associated |
EndaKilgarriff | 9:9e247b9c9abf | 11 | * Analog Devices Software License Agreement. |
EndaKilgarriff | 9:9e247b9c9abf | 12 | *******************************************************************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 13 | |
EndaKilgarriff | 9:9e247b9c9abf | 14 | #ifndef UART_EXTRA_H |
EndaKilgarriff | 9:9e247b9c9abf | 15 | #define UART_EXTRA_H |
EndaKilgarriff | 9:9e247b9c9abf | 16 | |
EndaKilgarriff | 9:9e247b9c9abf | 17 | |
EndaKilgarriff | 9:9e247b9c9abf | 18 | // Platform support needs to be C-compatible to work with other drivers |
EndaKilgarriff | 9:9e247b9c9abf | 19 | #ifdef __cplusplus |
EndaKilgarriff | 9:9e247b9c9abf | 20 | extern "C" |
EndaKilgarriff | 9:9e247b9c9abf | 21 | { |
EndaKilgarriff | 9:9e247b9c9abf | 22 | #endif |
EndaKilgarriff | 9:9e247b9c9abf | 23 | |
EndaKilgarriff | 9:9e247b9c9abf | 24 | /******************************************************************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 25 | /***************************** Include Files **********************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 26 | /******************************************************************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 27 | #include <stdio.h> |
EndaKilgarriff | 9:9e247b9c9abf | 28 | |
EndaKilgarriff | 9:9e247b9c9abf | 29 | /******************************************************************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 30 | /********************** Macros and Constants Definitions **********************/ |
EndaKilgarriff | 9:9e247b9c9abf | 31 | /******************************************************************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 32 | |
EndaKilgarriff | 9:9e247b9c9abf | 33 | /******************************************************************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 34 | /********************** Variables and User defined data types *****************/ |
EndaKilgarriff | 9:9e247b9c9abf | 35 | /******************************************************************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 36 | |
EndaKilgarriff | 9:9e247b9c9abf | 37 | /* |
EndaKilgarriff | 9:9e247b9c9abf | 38 | * Note: The structure members are not strongly typed, as this file is included |
EndaKilgarriff | 9:9e247b9c9abf | 39 | * in application specific '.c' files. The mbed code structure does not |
EndaKilgarriff | 9:9e247b9c9abf | 40 | * allow inclusion of mbed driver files (e.g. mbed.h) into '.c' files. |
EndaKilgarriff | 9:9e247b9c9abf | 41 | * All the members are hence typecasted to mbed specific type during |
EndaKilgarriff | 9:9e247b9c9abf | 42 | * uart init and read/write operations. |
EndaKilgarriff | 9:9e247b9c9abf | 43 | **/ |
EndaKilgarriff | 9:9e247b9c9abf | 44 | |
EndaKilgarriff | 9:9e247b9c9abf | 45 | /** |
EndaKilgarriff | 9:9e247b9c9abf | 46 | * @struct mbed_uart_init_param |
EndaKilgarriff | 9:9e247b9c9abf | 47 | * @brief Structure holding the UART init parameters for mbed platform. |
EndaKilgarriff | 9:9e247b9c9abf | 48 | */ |
EndaKilgarriff | 9:9e247b9c9abf | 49 | typedef struct { |
mahphalke |
15:fd2c3c3038bf | 50 | bool virtual_com_enable; /* Flag that enables the selection between |
mahphalke |
15:fd2c3c3038bf | 51 | * Virtual COM Port Or standard UART link */ |
mahphalke |
15:fd2c3c3038bf | 52 | uint8_t uart_tx_pin; /* UART Transmit Pin (only for UART comm) */ |
mahphalke |
15:fd2c3c3038bf | 53 | uint8_t uart_rx_pin; /* UART Receive Pin (only for UART comm) */ |
mahphalke |
15:fd2c3c3038bf | 54 | uint16_t vendor_id; /* USB VCOM Vendor ID (only for USB Virtual comm) */ |
mahphalke |
15:fd2c3c3038bf | 55 | uint16_t product_id; /* USB VCOM Product ID (only for USB Virtual comm) */ |
mahphalke |
15:fd2c3c3038bf | 56 | uint16_t product_release; /* USB VCOM product release value (only for USB Virtual comm) */ |
EndaKilgarriff | 9:9e247b9c9abf | 57 | } mbed_uart_init_param; |
EndaKilgarriff | 9:9e247b9c9abf | 58 | |
EndaKilgarriff | 9:9e247b9c9abf | 59 | /** |
EndaKilgarriff | 9:9e247b9c9abf | 60 | * @struct mbed_uart_desc |
EndaKilgarriff | 9:9e247b9c9abf | 61 | * @brief UART specific descriptor for the mbed platform. |
EndaKilgarriff | 9:9e247b9c9abf | 62 | */ |
EndaKilgarriff | 9:9e247b9c9abf | 63 | typedef struct { |
mahphalke |
15:fd2c3c3038bf | 64 | void *uart_port; /* UART port instance */ |
mahphalke |
15:fd2c3c3038bf | 65 | bool virtual_com_enable; /* Flag that enables the selection between |
mahphalke |
15:fd2c3c3038bf | 66 | * Virtual COM Port Or standard UART link */ |
EndaKilgarriff | 9:9e247b9c9abf | 67 | } mbed_uart_desc; |
EndaKilgarriff | 9:9e247b9c9abf | 68 | |
EndaKilgarriff | 9:9e247b9c9abf | 69 | /******************************************************************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 70 | /************************ Functions Declarations ******************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 71 | /******************************************************************************/ |
EndaKilgarriff | 9:9e247b9c9abf | 72 | |
EndaKilgarriff | 9:9e247b9c9abf | 73 | |
EndaKilgarriff | 9:9e247b9c9abf | 74 | #ifdef __cplusplus // Closing extern c |
EndaKilgarriff | 9:9e247b9c9abf | 75 | } |
EndaKilgarriff | 9:9e247b9c9abf | 76 | #endif |
EndaKilgarriff | 9:9e247b9c9abf | 77 | |
EndaKilgarriff | 9:9e247b9c9abf | 78 | #endif /* UART_EXTRA_H */ |