Platform drivers for Mbed.

Dependents:   EVAL-CN0535-FMCZ EVAL-CN0535-FMCZ EVAL-AD568x-AD569x EVAL-AD7606 ... more

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?

UserRevisionLine numberNew 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 */