EVAL-AD593x Mbed Project.

Dependencies:   platform_drivers

Committer:
malavikasaji
Date:
Tue Sep 03 17:00:18 2019 +0000
Revision:
0:86671e9c8db0
Child:
1:bd8aea0d51e0
Repository Created.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
malavikasaji 0:86671e9c8db0 1 /* Copyright (c) 2019 Analog Devices, Inc. All rights reserved.
malavikasaji 0:86671e9c8db0 2
malavikasaji 0:86671e9c8db0 3 Redistribution and use in source and binary forms, with or without modification,
malavikasaji 0:86671e9c8db0 4 are permitted provided that the following conditions are met:
malavikasaji 0:86671e9c8db0 5 - Redistributions of source code must retain the above copyright notice,
malavikasaji 0:86671e9c8db0 6 this list of conditions and the following disclaimer.
malavikasaji 0:86671e9c8db0 7 - Redistributions in binary form must reproduce the above copyright notice,
malavikasaji 0:86671e9c8db0 8 this list of conditions and the following disclaimer in the documentation
malavikasaji 0:86671e9c8db0 9 and/or other materials provided with the distribution.
malavikasaji 0:86671e9c8db0 10 - Modified versions of the software must be conspicuously marked as such.
malavikasaji 0:86671e9c8db0 11 - This software is licensed solely and exclusively for use with processors/products
malavikasaji 0:86671e9c8db0 12 manufactured by or for Analog Devices, Inc.
malavikasaji 0:86671e9c8db0 13 - This software may not be combined or merged with other code in any manner
malavikasaji 0:86671e9c8db0 14 that would cause the software to become subject to terms and conditions which
malavikasaji 0:86671e9c8db0 15 differ from those listed here.
malavikasaji 0:86671e9c8db0 16 - Neither the name of Analog Devices, Inc. nor the names of its contributors
malavikasaji 0:86671e9c8db0 17 may be used to endorse or promote products derived from this software without
malavikasaji 0:86671e9c8db0 18 specific prior written permission.
malavikasaji 0:86671e9c8db0 19 - The use of this software ma y or may not infringe the patent rights of one or
malavikasaji 0:86671e9c8db0 20 more patent holders. This license does not release you from the requirement
malavikasaji 0:86671e9c8db0 21 that you obtain separate licenses from these patent holders to use this software.
malavikasaji 0:86671e9c8db0 22
malavikasaji 0:86671e9c8db0 23 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" AND
malavikasaji 0:86671e9c8db0 24 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
malavikasaji 0:86671e9c8db0 25 TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
malavikasaji 0:86671e9c8db0 26 NO EVENT SHALL ANALOG DEVICES, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
malavikasaji 0:86671e9c8db0 27 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES
malavikasaji 0:86671e9c8db0 28 (INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF INTELLECTUAL
malavikasaji 0:86671e9c8db0 29 PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
malavikasaji 0:86671e9c8db0 30 OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
malavikasaji 0:86671e9c8db0 31 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
malavikasaji 0:86671e9c8db0 32 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
malavikasaji 0:86671e9c8db0 33 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
malavikasaji 0:86671e9c8db0 34
malavikasaji 0:86671e9c8db0 35 2019-01-10-7CBSD SLA
malavikasaji 0:86671e9c8db0 36
malavikasaji 0:86671e9c8db0 37 */
malavikasaji 0:86671e9c8db0 38
malavikasaji 0:86671e9c8db0 39 /***Libraries***/
malavikasaji 0:86671e9c8db0 40 #include <stdio.h> /*Standard Library*/
malavikasaji 0:86671e9c8db0 41 #include "mbed.h" /*mbed header file*/
malavikasaji 0:86671e9c8db0 42 #include "AD593x.h"
malavikasaji 0:86671e9c8db0 43
malavikasaji 0:86671e9c8db0 44 /***Defines for UART Protocol***/
malavikasaji 0:86671e9c8db0 45 #define BAUD_RATE 115200 /*Baud Rate*/
malavikasaji 0:86671e9c8db0 46
malavikasaji 0:86671e9c8db0 47 /*Configure and instantiate UART protocol
malavikasaji 0:86671e9c8db0 48 and baud rate*/
malavikasaji 0:86671e9c8db0 49 Serial port(USBTX, USBRX, BAUD_RATE);
malavikasaji 0:86671e9c8db0 50
malavikasaji 0:86671e9c8db0 51 AD1234 device(D10);
malavikasaji 0:86671e9c8db0 52 // If you have a second device on board, define it as a new device. For e.g. AD1234 device2(D9);
malavikasaji 0:86671e9c8db0 53
malavikasaji 0:86671e9c8db0 54 /***Function Declarations***/
malavikasaji 0:86671e9c8db0 55 static void setup_devices(void);
malavikasaji 0:86671e9c8db0 56 static void print_title(void);
malavikasaji 0:86671e9c8db0 57 static void print_prompt(void);
malavikasaji 0:86671e9c8db0 58 static void menu_1_function1(void);
malavikasaji 0:86671e9c8db0 59 static void menu_2_function2(void);
malavikasaji 0:86671e9c8db0 60 static void menu_3_function3(void);
malavikasaji 0:86671e9c8db0 61
malavikasaji 0:86671e9c8db0 62 int main()
malavikasaji 0:86671e9c8db0 63 {
malavikasaji 0:86671e9c8db0 64 uint8_t user_command; /*User input variable*/
malavikasaji 0:86671e9c8db0 65 uint8_t connected = 1; /*Initialize SPI*/
malavikasaji 0:86671e9c8db0 66
malavikasaji 0:86671e9c8db0 67 print_title();
malavikasaji 0:86671e9c8db0 68
malavikasaji 0:86671e9c8db0 69 while(connected == 1) {
malavikasaji 0:86671e9c8db0 70 print_prompt();
malavikasaji 0:86671e9c8db0 71 port.scanf("%2d", (int *) &user_command);
malavikasaji 0:86671e9c8db0 72 port.printf("%2d\n", user_command);
malavikasaji 0:86671e9c8db0 73 switch (user_command) {
malavikasaji 0:86671e9c8db0 74 case 1:
malavikasaji 0:86671e9c8db0 75 menu_1_function1();
malavikasaji 0:86671e9c8db0 76 break;
malavikasaji 0:86671e9c8db0 77
malavikasaji 0:86671e9c8db0 78 case 2:
malavikasaji 0:86671e9c8db0 79 menu_2_function2();
malavikasaji 0:86671e9c8db0 80 break;
malavikasaji 0:86671e9c8db0 81
malavikasaji 0:86671e9c8db0 82 case 3:
malavikasaji 0:86671e9c8db0 83 menu_3_function3();
malavikasaji 0:86671e9c8db0 84 break;
malavikasaji 0:86671e9c8db0 85
malavikasaji 0:86671e9c8db0 86 default:
malavikasaji 0:86671e9c8db0 87 port.printf(" ***Invalid Entry****\n\n");
malavikasaji 0:86671e9c8db0 88 break;
malavikasaji 0:86671e9c8db0 89
malavikasaji 0:86671e9c8db0 90 }
malavikasaji 0:86671e9c8db0 91 }
malavikasaji 0:86671e9c8db0 92 return 0;
malavikasaji 0:86671e9c8db0 93 }
malavikasaji 0:86671e9c8db0 94
malavikasaji 0:86671e9c8db0 95 /***Function Definitions***/
malavikasaji 0:86671e9c8db0 96
malavikasaji 0:86671e9c8db0 97
malavikasaji 0:86671e9c8db0 98 static void setup_devices(void)
malavikasaji 0:86671e9c8db0 99 {
malavikasaji 0:86671e9c8db0 100 device.frequency(1000000);
malavikasaji 0:86671e9c8db0 101 //device2.frequency(2000000);
malavikasaji 0:86671e9c8db0 102 }
malavikasaji 0:86671e9c8db0 103
malavikasaji 0:86671e9c8db0 104
malavikasaji 0:86671e9c8db0 105 /*Function to print the title block when program first starts
malavikasaji 0:86671e9c8db0 106 Parameters: None
malavikasaji 0:86671e9c8db0 107 Return Value: None*/
malavikasaji 0:86671e9c8db0 108 void print_title()
malavikasaji 0:86671e9c8db0 109 {
malavikasaji 0:86671e9c8db0 110 port.printf("\n*****************************************************************\n");
malavikasaji 0:86671e9c8db0 111 port.printf("* EVAL-AD1234 Demonstration Program *\n");
malavikasaji 0:86671e9c8db0 112 port.printf("* *\n");
malavikasaji 0:86671e9c8db0 113 port.printf("* This program demonstrates how to measure strain gauge or *\n");
malavikasaji 0:86671e9c8db0 114 port.printf("* other form of a Wheatstone bridge sensors with the AD1234 *\n");
malavikasaji 0:86671e9c8db0 115 port.printf("* *\n");
malavikasaji 0:86671e9c8db0 116 port.printf("* *\n");
malavikasaji 0:86671e9c8db0 117 port.printf("* Set the baud rate to 115200 and select the newline terminator.*\n");
malavikasaji 0:86671e9c8db0 118 port.printf("* *\n");
malavikasaji 0:86671e9c8db0 119 port.printf("*****************************************************************\n");
malavikasaji 0:86671e9c8db0 120 }
malavikasaji 0:86671e9c8db0 121
malavikasaji 0:86671e9c8db0 122 /*Function to print command summary
malavikasaji 0:86671e9c8db0 123 Parameters: None
malavikasaji 0:86671e9c8db0 124 Return Value: None */
malavikasaji 0:86671e9c8db0 125 void print_prompt() {
malavikasaji 0:86671e9c8db0 126 port.printf("\nCommand Summary\n");
malavikasaji 0:86671e9c8db0 127 port.printf(" 1 - CS high\n");
malavikasaji 0:86671e9c8db0 128 port.printf(" 2 - CS low\n");
malavikasaji 0:86671e9c8db0 129 port.printf(" 3 - Spi transaction\n");
malavikasaji 0:86671e9c8db0 130 port.printf(" x - Put More Menu Items Here\n");
malavikasaji 0:86671e9c8db0 131 port.printf("Select an option: ");
malavikasaji 0:86671e9c8db0 132 }
malavikasaji 0:86671e9c8db0 133
malavikasaji 0:86671e9c8db0 134
malavikasaji 0:86671e9c8db0 135 /*Function to
malavikasaji 0:86671e9c8db0 136 Parameters: None
malavikasaji 0:86671e9c8db0 137 Return Value: None */
malavikasaji 0:86671e9c8db0 138 void menu_1_function1()
malavikasaji 0:86671e9c8db0 139 {
malavikasaji 0:86671e9c8db0 140 device.AD1234_function1();
malavikasaji 0:86671e9c8db0 141 port.printf("In function 1\n");
malavikasaji 0:86671e9c8db0 142 }
malavikasaji 0:86671e9c8db0 143
malavikasaji 0:86671e9c8db0 144
malavikasaji 0:86671e9c8db0 145 /*Function to
malavikasaji 0:86671e9c8db0 146 Parameters: None
malavikasaji 0:86671e9c8db0 147 Return Value: None */
malavikasaji 0:86671e9c8db0 148 void menu_2_function2()
malavikasaji 0:86671e9c8db0 149 {
malavikasaji 0:86671e9c8db0 150 device.AD1234_function2();
malavikasaji 0:86671e9c8db0 151 port.printf("In function 2\n");
malavikasaji 0:86671e9c8db0 152 }
malavikasaji 0:86671e9c8db0 153
malavikasaji 0:86671e9c8db0 154 void menu_3_function3()
malavikasaji 0:86671e9c8db0 155 {
malavikasaji 0:86671e9c8db0 156 device.write_16b_spi(0x5050);
malavikasaji 0:86671e9c8db0 157 port.printf("In function 3\n");
malavikasaji 0:86671e9c8db0 158 }