Mark Underwood / Mbed OS Internal_DataLogger_NoUSB_MAX32625PICO

Dependencies:   max32625pico CmdLine

Committer:
whismanoid
Date:
Sun Nov 29 11:06:18 2020 +0000
Revision:
6:f6d16658342b
Parent:
5:aaf8b5f5fda1
Child:
7:949ec8581f5e
MAX32625PICO AUXserial WIP

Who changed what in which revision?

UserRevisionLine numberNew contents of line
whismanoid 0:cb44e2e9ec4c 1 // /*******************************************************************************
whismanoid 0:cb44e2e9ec4c 2 // * Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved.
whismanoid 0:cb44e2e9ec4c 3 // *
whismanoid 0:cb44e2e9ec4c 4 // * Permission is hereby granted, free of charge, to any person obtaining a
whismanoid 0:cb44e2e9ec4c 5 // * copy of this software and associated documentation files (the "Software"),
whismanoid 0:cb44e2e9ec4c 6 // * to deal in the Software without restriction, including without limitation
whismanoid 0:cb44e2e9ec4c 7 // * the rights to use, copy, modify, merge, publish, distribute, sublicense,
whismanoid 0:cb44e2e9ec4c 8 // * and/or sell copies of the Software, and to permit persons to whom the
whismanoid 0:cb44e2e9ec4c 9 // * Software is furnished to do so, subject to the following conditions:
whismanoid 0:cb44e2e9ec4c 10 // *
whismanoid 0:cb44e2e9ec4c 11 // * The above copyright notice and this permission notice shall be included
whismanoid 0:cb44e2e9ec4c 12 // * in all copies or substantial portions of the Software.
whismanoid 0:cb44e2e9ec4c 13 // *
whismanoid 0:cb44e2e9ec4c 14 // * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
whismanoid 0:cb44e2e9ec4c 15 // * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
whismanoid 0:cb44e2e9ec4c 16 // * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
whismanoid 0:cb44e2e9ec4c 17 // * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
whismanoid 0:cb44e2e9ec4c 18 // * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
whismanoid 0:cb44e2e9ec4c 19 // * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
whismanoid 0:cb44e2e9ec4c 20 // * OTHER DEALINGS IN THE SOFTWARE.
whismanoid 0:cb44e2e9ec4c 21 // *
whismanoid 0:cb44e2e9ec4c 22 // * Except as contained in this notice, the name of Maxim Integrated
whismanoid 0:cb44e2e9ec4c 23 // * Products, Inc. shall not be used except as stated in the Maxim Integrated
whismanoid 0:cb44e2e9ec4c 24 // * Products, Inc. Branding Policy.
whismanoid 0:cb44e2e9ec4c 25 // *
whismanoid 0:cb44e2e9ec4c 26 // * The mere transfer of this software does not imply any licenses
whismanoid 0:cb44e2e9ec4c 27 // * of trade secrets, proprietary technology, copyrights, patents,
whismanoid 0:cb44e2e9ec4c 28 // * trademarks, maskwork rights, or any other form of intellectual
whismanoid 0:cb44e2e9ec4c 29 // * property whatsoever. Maxim Integrated Products, Inc. retains all
whismanoid 0:cb44e2e9ec4c 30 // * ownership rights.
whismanoid 0:cb44e2e9ec4c 31 // *******************************************************************************
whismanoid 0:cb44e2e9ec4c 32 // */
whismanoid 0:cb44e2e9ec4c 33 // *******************************************************************************
whismanoid 0:cb44e2e9ec4c 34 // COM port settings are 9600 baud 8N1
whismanoid 0:cb44e2e9ec4c 35 // *******************************************************************************
whismanoid 0:cb44e2e9ec4c 36 //---------- CODE GENERATOR: DataLogHelloCppCodeList
whismanoid 0:cb44e2e9ec4c 37 // CODE GENERATOR: example code includes
whismanoid 0:cb44e2e9ec4c 38
whismanoid 0:cb44e2e9ec4c 39 // example code includes
whismanoid 0:cb44e2e9ec4c 40 // standard include for target platform -- Platform_Include_Boilerplate
whismanoid 0:cb44e2e9ec4c 41 #include "mbed.h"
whismanoid 0:cb44e2e9ec4c 42 // Platforms:
whismanoid 0:cb44e2e9ec4c 43 // - MAX32625MBED
whismanoid 0:cb44e2e9ec4c 44 // - supports mbed-os-5.11, requires USBDevice library
whismanoid 0:cb44e2e9ec4c 45 // - add https://developer.mbed.org/teams/MaximIntegrated/code/USBDevice/
whismanoid 0:cb44e2e9ec4c 46 // - remove max32630fthr library (if present)
whismanoid 0:cb44e2e9ec4c 47 // - remove MAX32620FTHR library (if present)
whismanoid 0:cb44e2e9ec4c 48 // - MAX32600MBED
whismanoid 0:cb44e2e9ec4c 49 // - remove max32630fthr library (if present)
whismanoid 0:cb44e2e9ec4c 50 // - remove MAX32620FTHR library (if present)
whismanoid 0:cb44e2e9ec4c 51 // - Windows 10 note: Don't connect HDK until you are ready to load new firmware into the board.
whismanoid 0:cb44e2e9ec4c 52 // - NUCLEO_F446RE
whismanoid 0:cb44e2e9ec4c 53 // - remove USBDevice library
whismanoid 0:cb44e2e9ec4c 54 // - remove max32630fthr library (if present)
whismanoid 0:cb44e2e9ec4c 55 // - remove MAX32620FTHR library (if present)
whismanoid 0:cb44e2e9ec4c 56 // - NUCLEO_F401RE
whismanoid 0:cb44e2e9ec4c 57 // - remove USBDevice library
whismanoid 0:cb44e2e9ec4c 58 // - remove max32630fthr library (if present)
whismanoid 0:cb44e2e9ec4c 59 // - remove MAX32620FTHR library (if present)
whismanoid 0:cb44e2e9ec4c 60 // - MAX32630FTHR
whismanoid 0:cb44e2e9ec4c 61 // - #include "max32630fthr.h"
whismanoid 0:cb44e2e9ec4c 62 // - add http://os.mbed.org/teams/MaximIntegrated/code/max32630fthr/
whismanoid 0:cb44e2e9ec4c 63 // - remove MAX32620FTHR library (if present)
whismanoid 0:cb44e2e9ec4c 64 // - MAX32620FTHR
whismanoid 0:cb44e2e9ec4c 65 // - #include "MAX32620FTHR.h"
whismanoid 0:cb44e2e9ec4c 66 // - remove max32630fthr library (if present)
whismanoid 0:cb44e2e9ec4c 67 // - add https://os.mbed.com/teams/MaximIntegrated/code/MAX32620FTHR/
whismanoid 0:cb44e2e9ec4c 68 // - not tested yet
whismanoid 0:cb44e2e9ec4c 69 // - MAX32625PICO
whismanoid 0:cb44e2e9ec4c 70 // - #include "max32625pico.h"
whismanoid 0:cb44e2e9ec4c 71 // - add https://os.mbed.com/users/switches/code/max32625pico/
whismanoid 0:cb44e2e9ec4c 72 // - remove max32630fthr library (if present)
whismanoid 0:cb44e2e9ec4c 73 // - remove MAX32620FTHR library (if present)
whismanoid 0:cb44e2e9ec4c 74 // - not tested yet
whismanoid 0:cb44e2e9ec4c 75 // - see https://os.mbed.com/users/switches/code/max32625pico/
whismanoid 0:cb44e2e9ec4c 76 // - see https://os.mbed.com/users/switches/code/PICO_board_demo/
whismanoid 0:cb44e2e9ec4c 77 // - see https://os.mbed.com/users/switches/code/PICO_USB_I2C_SPI/
whismanoid 0:cb44e2e9ec4c 78 // - see https://os.mbed.com/users/switches/code/SerialInterface/
whismanoid 0:cb44e2e9ec4c 79 // - Note: To load the MAX32625PICO firmware, hold the button while
whismanoid 0:cb44e2e9ec4c 80 // connecting the USB cable, then copy firmware bin file
whismanoid 0:cb44e2e9ec4c 81 // to the MAINTENANCE drive.
whismanoid 0:cb44e2e9ec4c 82 // - see https://os.mbed.com/platforms/MAX32625PICO/
whismanoid 0:cb44e2e9ec4c 83 // - see https://os.mbed.com/teams/MaximIntegrated/wiki/MAX32625PICO-Firmware-Updates
whismanoid 0:cb44e2e9ec4c 84 //
whismanoid 0:cb44e2e9ec4c 85 // end Platform_Include_Boilerplate
whismanoid 0:cb44e2e9ec4c 86
whismanoid 0:cb44e2e9ec4c 87 //--------------------------------------------------
whismanoid 3:9055e17e181a 88 // Option to use SPI connected ADC
whismanoid 3:9055e17e181a 89 #ifndef SPI_ADC_DeviceName
whismanoid 3:9055e17e181a 90 //~ #define SPI_ADC_DeviceName MAX11410
whismanoid 3:9055e17e181a 91 #undef SPI_ADC_DeviceName
whismanoid 3:9055e17e181a 92 #endif
whismanoid 3:9055e17e181a 93 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 3:9055e17e181a 94 #include "MAX11410.h"
whismanoid 3:9055e17e181a 95 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 0:cb44e2e9ec4c 96
whismanoid 0:cb44e2e9ec4c 97 #if defined(TARGET)
whismanoid 0:cb44e2e9ec4c 98 // TARGET_NAME macros from targets/TARGET_Maxim/TARGET_MAX32625/device/mxc_device.h
whismanoid 0:cb44e2e9ec4c 99 // Create a string definition for the TARGET
whismanoid 0:cb44e2e9ec4c 100 #define STRING_ARG(arg) #arg
whismanoid 0:cb44e2e9ec4c 101 #define STRING_NAME(name) STRING_ARG(name)
whismanoid 0:cb44e2e9ec4c 102 #define TARGET_NAME STRING_NAME(TARGET)
whismanoid 0:cb44e2e9ec4c 103 #elif defined(TARGET_MAX32600)
whismanoid 0:cb44e2e9ec4c 104 #define TARGET_NAME "MAX32600"
whismanoid 0:cb44e2e9ec4c 105 #elif defined(TARGET_LPC1768)
whismanoid 0:cb44e2e9ec4c 106 #define TARGET_NAME "LPC1768"
whismanoid 0:cb44e2e9ec4c 107 #elif defined(TARGET_NUCLEO_F446RE)
whismanoid 0:cb44e2e9ec4c 108 #define TARGET_NAME "NUCLEO_F446RE"
whismanoid 0:cb44e2e9ec4c 109 #elif defined(TARGET_NUCLEO_F401RE)
whismanoid 0:cb44e2e9ec4c 110 #define TARGET_NAME "NUCLEO_F401RE"
whismanoid 0:cb44e2e9ec4c 111 #else
whismanoid 0:cb44e2e9ec4c 112 #error TARGET NOT DEFINED
whismanoid 0:cb44e2e9ec4c 113 #endif
whismanoid 0:cb44e2e9ec4c 114 #if defined(TARGET_MAX32630)
whismanoid 0:cb44e2e9ec4c 115 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 116 // TARGET=MAX32630FTHR ARM Cortex-M4F 96MHz 2048kB Flash 512kB SRAM
whismanoid 0:cb44e2e9ec4c 117 // +-------------[microUSB]-------------+
whismanoid 0:cb44e2e9ec4c 118 // | J1 MAX32630FTHR J2 |
whismanoid 0:cb44e2e9ec4c 119 // ______ | [ ] RST GND [ ] |
whismanoid 0:cb44e2e9ec4c 120 // ______ | [ ] 3V3 BAT+[ ] |
whismanoid 0:cb44e2e9ec4c 121 // ______ | [ ] 1V8 reset SW1 |
whismanoid 0:cb44e2e9ec4c 122 // ______ | [ ] GND J4 J3 |
whismanoid 0:cb44e2e9ec4c 123 // analogIn0/4 | [a] AIN_0 1.2Vfs (bat) SYS [ ] | switched BAT+
whismanoid 0:cb44e2e9ec4c 124 // analogIn1/5 | [a] AIN_1 1.2Vfs PWR [ ] | external pwr btn
whismanoid 0:cb44e2e9ec4c 125 // analogIn2 | [a] AIN_2 1.2Vfs +5V VBUS [ ] | USB +5V power
whismanoid 0:cb44e2e9ec4c 126 // analogIn3 | [a] AIN_3 1.2Vfs 1-WIRE P4_0 [d] | D0 dig9
whismanoid 0:cb44e2e9ec4c 127 // (I2C2.SDA) | [d] P5_7 SDA2 SRN P5_6 [d] | D1 dig8
whismanoid 0:cb44e2e9ec4c 128 // (I2C2.SCL) | [d] P6_0 SCL2 SDIO3 P5_5 [d] | D2 dig7
whismanoid 0:cb44e2e9ec4c 129 // D13/SCLK | [s] P5_0 SCLK SDIO2 P5_4 [d] | D3 dig6
whismanoid 0:cb44e2e9ec4c 130 // D11/MOSI | [s] P5_1 MOSI SSEL P5_3 [d] | D4 dig5
whismanoid 0:cb44e2e9ec4c 131 // D12/MISO | [s] P5_2 MISO RTS P3_3 [d] | D5 dig4
whismanoid 0:cb44e2e9ec4c 132 // D10/CS | [s] P3_0 RX CTS P3_2 [d] | D6 dig3
whismanoid 0:cb44e2e9ec4c 133 // D9 dig0 | [d] P3_1 TX SCL P3_5 [d] | D7 dig2
whismanoid 0:cb44e2e9ec4c 134 // ______ | [ ] GND SDA P3_4 [d] | D8 dig1
whismanoid 0:cb44e2e9ec4c 135 // | |
whismanoid 0:cb44e2e9ec4c 136 // | XIP Flash MAX14690N |
whismanoid 0:cb44e2e9ec4c 137 // | XIP_SCLK P1_0 SDA2 P5_7 |
whismanoid 0:cb44e2e9ec4c 138 // | XIP_MOSI P1_1 SCL2 P6_0 |
whismanoid 0:cb44e2e9ec4c 139 // | XIP_MISO P1_2 PMIC_INIT P3_7 |
whismanoid 0:cb44e2e9ec4c 140 // | XIP_SSEL P1_3 MPC P2_7 |
whismanoid 0:cb44e2e9ec4c 141 // | XIP_DIO2 P1_4 MON AIN_0 |
whismanoid 0:cb44e2e9ec4c 142 // | XIP_DIO3 P1_5 |
whismanoid 0:cb44e2e9ec4c 143 // | |
whismanoid 0:cb44e2e9ec4c 144 // | PAN1326B MicroSD LED |
whismanoid 0:cb44e2e9ec4c 145 // | BT_RX P0_0 SD_SCLK P0_4 r P2_4 |
whismanoid 0:cb44e2e9ec4c 146 // | BT_TX P0_1 SD_MOSI P0_5 g P2_5 |
whismanoid 0:cb44e2e9ec4c 147 // | BT_CTS P0_2 SD_MISO P0_6 b P2_6 |
whismanoid 0:cb44e2e9ec4c 148 // | BT_RTS P0_3 SD_SSEL P0_7 |
whismanoid 0:cb44e2e9ec4c 149 // | BT_RST P1_6 DETECT P2_2 |
whismanoid 0:cb44e2e9ec4c 150 // | BT_CLK P1_7 SW2 P2_3 |
whismanoid 0:cb44e2e9ec4c 151 // +------------------------------------+
whismanoid 0:cb44e2e9ec4c 152 // MAX32630FTHR board has MAX14690 PMIC on I2C bus (P5_7 SDA, P6_0 SCL) at slave address 0101_000r 0x50 (or 0x28 for 7 MSbit address).
whismanoid 0:cb44e2e9ec4c 153 // MAX32630FTHR board has BMI160 accelerometer on I2C bus (P5_7 SDA, P6_0 SCL) at slave address 1101_000r 0xD0 (or 0x68 for 7 MSbit address).
whismanoid 0:cb44e2e9ec4c 154 // AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 155 // AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 156 // AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 157 // AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 158 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 159 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 160 // AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 161 // AIN_7 = VDD18 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 162 // AIN_8 = VDD12 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 163 // AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 0:cb44e2e9ec4c 164 // AIN_10 = x undefined?
whismanoid 0:cb44e2e9ec4c 165 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 166 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 167 //
whismanoid 0:cb44e2e9ec4c 168 #include "max32630fthr.h"
whismanoid 0:cb44e2e9ec4c 169 MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
whismanoid 0:cb44e2e9ec4c 170 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 1
whismanoid 0:cb44e2e9ec4c 171 // MAX32630FTHR board supports only internal VREF = 1.200V at bypass capacitor C15
whismanoid 0:cb44e2e9ec4c 172 const float ADC_FULL_SCALE_VOLTAGE = 1.200;
whismanoid 0:cb44e2e9ec4c 173 // Arduino connector
whismanoid 0:cb44e2e9ec4c 174 #ifndef A0
whismanoid 0:cb44e2e9ec4c 175 #define A0 AIN_0
whismanoid 0:cb44e2e9ec4c 176 #endif
whismanoid 0:cb44e2e9ec4c 177 #ifndef A1
whismanoid 0:cb44e2e9ec4c 178 #define A1 AIN_1
whismanoid 0:cb44e2e9ec4c 179 #endif
whismanoid 0:cb44e2e9ec4c 180 #ifndef A2
whismanoid 0:cb44e2e9ec4c 181 #define A2 AIN_2
whismanoid 0:cb44e2e9ec4c 182 #endif
whismanoid 0:cb44e2e9ec4c 183 #ifndef A3
whismanoid 0:cb44e2e9ec4c 184 #define A3 AIN_3
whismanoid 0:cb44e2e9ec4c 185 #endif
whismanoid 0:cb44e2e9ec4c 186 #ifndef D0
whismanoid 0:cb44e2e9ec4c 187 #define D0 P4_0
whismanoid 0:cb44e2e9ec4c 188 #endif
whismanoid 0:cb44e2e9ec4c 189 #ifndef D1
whismanoid 0:cb44e2e9ec4c 190 #define D1 P5_6
whismanoid 0:cb44e2e9ec4c 191 #endif
whismanoid 0:cb44e2e9ec4c 192 #ifndef D2
whismanoid 0:cb44e2e9ec4c 193 #define D2 P5_5
whismanoid 0:cb44e2e9ec4c 194 #endif
whismanoid 0:cb44e2e9ec4c 195 #ifndef D3
whismanoid 0:cb44e2e9ec4c 196 #define D3 P5_4
whismanoid 0:cb44e2e9ec4c 197 #endif
whismanoid 0:cb44e2e9ec4c 198 #ifndef D4
whismanoid 0:cb44e2e9ec4c 199 #define D4 P5_3
whismanoid 0:cb44e2e9ec4c 200 #endif
whismanoid 0:cb44e2e9ec4c 201 #ifndef D5
whismanoid 0:cb44e2e9ec4c 202 #define D5 P3_3
whismanoid 0:cb44e2e9ec4c 203 #endif
whismanoid 0:cb44e2e9ec4c 204 #ifndef D6
whismanoid 0:cb44e2e9ec4c 205 #define D6 P3_2
whismanoid 0:cb44e2e9ec4c 206 #endif
whismanoid 0:cb44e2e9ec4c 207 #ifndef D7
whismanoid 0:cb44e2e9ec4c 208 #define D7 P3_5
whismanoid 0:cb44e2e9ec4c 209 #endif
whismanoid 0:cb44e2e9ec4c 210 #ifndef D8
whismanoid 0:cb44e2e9ec4c 211 #define D8 P3_4
whismanoid 0:cb44e2e9ec4c 212 #endif
whismanoid 0:cb44e2e9ec4c 213 #ifndef D9
whismanoid 0:cb44e2e9ec4c 214 #define D9 P3_1
whismanoid 0:cb44e2e9ec4c 215 #endif
whismanoid 0:cb44e2e9ec4c 216 #ifndef D10
whismanoid 0:cb44e2e9ec4c 217 #define D10 P3_0
whismanoid 0:cb44e2e9ec4c 218 #endif
whismanoid 0:cb44e2e9ec4c 219 #ifndef D11
whismanoid 0:cb44e2e9ec4c 220 #define D11 P5_1
whismanoid 0:cb44e2e9ec4c 221 #endif
whismanoid 0:cb44e2e9ec4c 222 #ifndef D12
whismanoid 0:cb44e2e9ec4c 223 #define D12 P5_2
whismanoid 0:cb44e2e9ec4c 224 #endif
whismanoid 0:cb44e2e9ec4c 225 #ifndef D13
whismanoid 0:cb44e2e9ec4c 226 #define D13 P5_0
whismanoid 0:cb44e2e9ec4c 227 #endif
whismanoid 0:cb44e2e9ec4c 228 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 229 #elif defined(TARGET_MAX32625MBED)
whismanoid 0:cb44e2e9ec4c 230 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 231 // TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM
whismanoid 0:cb44e2e9ec4c 232 // +-------------------------------------+
whismanoid 0:cb44e2e9ec4c 233 // | MAX32625MBED Arduino UNO header |
whismanoid 0:cb44e2e9ec4c 234 // | |
whismanoid 0:cb44e2e9ec4c 235 // | A5/SCL[ ] | P1_7 dig15
whismanoid 0:cb44e2e9ec4c 236 // | A4/SDA[ ] | P1_6 dig14
whismanoid 0:cb44e2e9ec4c 237 // | AREF=N/C[ ] |
whismanoid 0:cb44e2e9ec4c 238 // | GND[ ] |
whismanoid 0:cb44e2e9ec4c 239 // | [ ]N/C SCK/13[ ] | P1_0 dig13
whismanoid 0:cb44e2e9ec4c 240 // | [ ]IOREF=3V3 MISO/12[ ] | P1_2 dig12
whismanoid 0:cb44e2e9ec4c 241 // | [ ]RST MOSI/11[ ]~| P1_1 dig11
whismanoid 0:cb44e2e9ec4c 242 // | [ ]3V3 CS/10[ ]~| P1_3 dig10
whismanoid 0:cb44e2e9ec4c 243 // | [ ]5V0 9[ ]~| P1_5 dig9
whismanoid 0:cb44e2e9ec4c 244 // | [ ]GND 8[ ] | P1_4 dig8
whismanoid 0:cb44e2e9ec4c 245 // | [ ]GND |
whismanoid 0:cb44e2e9ec4c 246 // | [ ]Vin 7[ ] | P0_7 dig7
whismanoid 0:cb44e2e9ec4c 247 // | 6[ ]~| P0_6 dig6
whismanoid 0:cb44e2e9ec4c 248 // AIN_0 | [ ]A0 5[ ]~| P0_5 dig5
whismanoid 0:cb44e2e9ec4c 249 // AIN_1 | [ ]A1 4[ ] | P0_4 dig4
whismanoid 0:cb44e2e9ec4c 250 // AIN_2 | [ ]A2 INT1/3[ ]~| P0_3 dig3
whismanoid 0:cb44e2e9ec4c 251 // AIN_3 | [ ]A3 INT0/2[ ] | P0_2 dig2
whismanoid 0:cb44e2e9ec4c 252 // dig16 P3_4 | [ ]A4/SDA RST SCK MISO TX>1[ ] | P0_1 dig1
whismanoid 0:cb44e2e9ec4c 253 // dig17 P3_5 | [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] | P0_0 dig0
whismanoid 0:cb44e2e9ec4c 254 // | [ ] [ ] [ ] |
whismanoid 0:cb44e2e9ec4c 255 // | UNO_R3 GND MOSI 5V ____________/
whismanoid 0:cb44e2e9ec4c 256 // \_______________________/
whismanoid 0:cb44e2e9ec4c 257 //
whismanoid 0:cb44e2e9ec4c 258 // +------------------------+
whismanoid 0:cb44e2e9ec4c 259 // | |
whismanoid 0:cb44e2e9ec4c 260 // | MicroSD LED |
whismanoid 0:cb44e2e9ec4c 261 // | SD_SCLK P2_4 r P3_0 |
whismanoid 0:cb44e2e9ec4c 262 // | SD_MOSI P2_5 g P3_1 |
whismanoid 0:cb44e2e9ec4c 263 // | SD_MISO P2_6 b P3_2 |
whismanoid 0:cb44e2e9ec4c 264 // | SD_SSEL P2_7 y P3_3 |
whismanoid 0:cb44e2e9ec4c 265 // | |
whismanoid 0:cb44e2e9ec4c 266 // | DAPLINK BUTTONS |
whismanoid 0:cb44e2e9ec4c 267 // | TX P2_1 SW3 P2_3 |
whismanoid 0:cb44e2e9ec4c 268 // | RX P2_0 SW2 P2_2 |
whismanoid 0:cb44e2e9ec4c 269 // +------------------------+
whismanoid 0:cb44e2e9ec4c 270 //
whismanoid 0:cb44e2e9ec4c 271 // AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 272 // AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 273 // AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 274 // AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 275 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 276 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 277 // AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 278 // AIN_7 = VDD18 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 279 // AIN_8 = VDD12 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 280 // AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 0:cb44e2e9ec4c 281 // AIN_10 = x undefined?
whismanoid 0:cb44e2e9ec4c 282 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 283 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 284 //
whismanoid 0:cb44e2e9ec4c 285 //#include "max32625mbed.h" // ?
whismanoid 0:cb44e2e9ec4c 286 //MAX32625MBED mbed(MAX32625MBED::VIO_3V3); // ?
whismanoid 0:cb44e2e9ec4c 287 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 1
whismanoid 0:cb44e2e9ec4c 288 // MAX32630FTHR board supports only internal VREF = 1.200V at bypass capacitor C15
whismanoid 0:cb44e2e9ec4c 289 const float ADC_FULL_SCALE_VOLTAGE = 1.200; // TODO: ADC_FULL_SCALE_VOLTAGE Pico?
whismanoid 0:cb44e2e9ec4c 290 // Arduino connector
whismanoid 0:cb44e2e9ec4c 291 #ifndef A0
whismanoid 0:cb44e2e9ec4c 292 #define A0 AIN_0
whismanoid 0:cb44e2e9ec4c 293 #endif
whismanoid 0:cb44e2e9ec4c 294 #ifndef A1
whismanoid 0:cb44e2e9ec4c 295 #define A1 AIN_1
whismanoid 0:cb44e2e9ec4c 296 #endif
whismanoid 0:cb44e2e9ec4c 297 #ifndef A2
whismanoid 0:cb44e2e9ec4c 298 #define A2 AIN_2
whismanoid 0:cb44e2e9ec4c 299 #endif
whismanoid 0:cb44e2e9ec4c 300 #ifndef A3
whismanoid 0:cb44e2e9ec4c 301 #define A3 AIN_3
whismanoid 0:cb44e2e9ec4c 302 #endif
whismanoid 0:cb44e2e9ec4c 303 #ifndef D0
whismanoid 0:cb44e2e9ec4c 304 #define D0 P0_0
whismanoid 0:cb44e2e9ec4c 305 #endif
whismanoid 0:cb44e2e9ec4c 306 #ifndef D1
whismanoid 0:cb44e2e9ec4c 307 #define D1 P0_1
whismanoid 0:cb44e2e9ec4c 308 #endif
whismanoid 0:cb44e2e9ec4c 309 #ifndef D2
whismanoid 0:cb44e2e9ec4c 310 #define D2 P0_2
whismanoid 0:cb44e2e9ec4c 311 #endif
whismanoid 0:cb44e2e9ec4c 312 #ifndef D3
whismanoid 0:cb44e2e9ec4c 313 #define D3 P0_3
whismanoid 0:cb44e2e9ec4c 314 #endif
whismanoid 0:cb44e2e9ec4c 315 #ifndef D4
whismanoid 0:cb44e2e9ec4c 316 #define D4 P0_4
whismanoid 0:cb44e2e9ec4c 317 #endif
whismanoid 0:cb44e2e9ec4c 318 #ifndef D5
whismanoid 0:cb44e2e9ec4c 319 #define D5 P0_5
whismanoid 0:cb44e2e9ec4c 320 #endif
whismanoid 0:cb44e2e9ec4c 321 #ifndef D6
whismanoid 0:cb44e2e9ec4c 322 #define D6 P0_6
whismanoid 0:cb44e2e9ec4c 323 #endif
whismanoid 0:cb44e2e9ec4c 324 #ifndef D7
whismanoid 0:cb44e2e9ec4c 325 #define D7 P0_7
whismanoid 0:cb44e2e9ec4c 326 #endif
whismanoid 0:cb44e2e9ec4c 327 #ifndef D8
whismanoid 0:cb44e2e9ec4c 328 #define D8 P1_4
whismanoid 0:cb44e2e9ec4c 329 #endif
whismanoid 0:cb44e2e9ec4c 330 #ifndef D9
whismanoid 0:cb44e2e9ec4c 331 #define D9 P1_5
whismanoid 0:cb44e2e9ec4c 332 #endif
whismanoid 0:cb44e2e9ec4c 333 #ifndef D10
whismanoid 0:cb44e2e9ec4c 334 #define D10 P1_3
whismanoid 0:cb44e2e9ec4c 335 #endif
whismanoid 0:cb44e2e9ec4c 336 #ifndef D11
whismanoid 0:cb44e2e9ec4c 337 #define D11 P1_1
whismanoid 0:cb44e2e9ec4c 338 #endif
whismanoid 0:cb44e2e9ec4c 339 #ifndef D12
whismanoid 0:cb44e2e9ec4c 340 #define D12 P1_2
whismanoid 0:cb44e2e9ec4c 341 #endif
whismanoid 0:cb44e2e9ec4c 342 #ifndef D13
whismanoid 0:cb44e2e9ec4c 343 #define D13 P1_0
whismanoid 0:cb44e2e9ec4c 344 #endif
whismanoid 0:cb44e2e9ec4c 345 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 346 #elif defined(TARGET_MAX32600)
whismanoid 0:cb44e2e9ec4c 347 // target MAX32600
whismanoid 0:cb44e2e9ec4c 348 //
whismanoid 0:cb44e2e9ec4c 349 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 0
whismanoid 0:cb44e2e9ec4c 350 const float ADC_FULL_SCALE_VOLTAGE = 1.500;
whismanoid 0:cb44e2e9ec4c 351 //
whismanoid 0:cb44e2e9ec4c 352 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 353 #elif defined(TARGET_MAX32620FTHR)
whismanoid 0:cb44e2e9ec4c 354 #warning "TARGET_MAX32620FTHR not previously tested; need to define pins..."
whismanoid 0:cb44e2e9ec4c 355 #include "MAX32620FTHR.h"
whismanoid 0:cb44e2e9ec4c 356 // Initialize I/O voltages on MAX32620FTHR board
whismanoid 0:cb44e2e9ec4c 357 MAX32620FTHR fthr(MAX32620FTHR::VIO_3V3);
whismanoid 0:cb44e2e9ec4c 358 //#define USE_LEDS 0 ?
whismanoid 0:cb44e2e9ec4c 359 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 1
whismanoid 0:cb44e2e9ec4c 360 #warning "TARGET_MAX32620FTHR not previously tested; need to verify ADC_FULL_SCALE_VOLTAGE..."
whismanoid 0:cb44e2e9ec4c 361 const float ADC_FULL_SCALE_VOLTAGE = 1.200;
whismanoid 0:cb44e2e9ec4c 362 //
whismanoid 0:cb44e2e9ec4c 363 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 364 #elif defined(TARGET_MAX32625PICO)
whismanoid 0:cb44e2e9ec4c 365 #warning "TARGET_MAX32625PICO not previously tested; need to define pins..."
whismanoid 0:cb44e2e9ec4c 366 #include "max32625pico.h"
whismanoid 0:cb44e2e9ec4c 367 // configure MAX32625PICO VDDIOH mode, and I/O voltages for DIP pins and SWD pins
whismanoid 0:cb44e2e9ec4c 368 MAX32625PICO pico(
whismanoid 0:cb44e2e9ec4c 369 // vddioh_mode_t iohMode
whismanoid 0:cb44e2e9ec4c 370 //~ MAX32625PICO::IOH_OFF, // No connections to VDDIOH
whismanoid 0:cb44e2e9ec4c 371 //~ MAX32625PICO::IOH_DIP_IN, // VDDIOH input from DIP pin 1 (AIN0)
whismanoid 0:cb44e2e9ec4c 372 //~ MAX32625PICO::IOH_SWD_IN, // VDDIOH input from SWD pin 1
whismanoid 0:cb44e2e9ec4c 373 MAX32625PICO::IOH_3V3, // VDDIOH = 3.3V from local supply
whismanoid 0:cb44e2e9ec4c 374 //~ MAX32625PICO::IOH_DIP_OUT, // VDDIOH = 3.3V output to DIP pin 1
whismanoid 0:cb44e2e9ec4c 375 //~ MAX32625PICO::IOH_SWD_OUT, // VDDIOH = 3.3V output to SWD pin 1
whismanoid 0:cb44e2e9ec4c 376 //
whismanoid 0:cb44e2e9ec4c 377 // vio_t dipVio = MAX32625PICO::VIO_1V8 or MAX32625PICO::VIO_IOH
whismanoid 0:cb44e2e9ec4c 378 //~ MAX32625PICO::VIO_1V8, // 1.8V IO (local)
whismanoid 0:cb44e2e9ec4c 379 MAX32625PICO::VIO_IOH, // Use VDDIOH (from DIP pin 1, or SWD pin1, or local 3.3V)
whismanoid 0:cb44e2e9ec4c 380 //
whismanoid 0:cb44e2e9ec4c 381 // vio_t swdVio
whismanoid 0:cb44e2e9ec4c 382 //~ MAX32625PICO::VIO_1V8 // 1.8V IO (local)
whismanoid 0:cb44e2e9ec4c 383 MAX32625PICO::VIO_IOH // Use VDDIOH (from DIP pin 1, or SWD pin1, or local 3.3V)
whismanoid 0:cb44e2e9ec4c 384 );
whismanoid 0:cb44e2e9ec4c 385 //#define USE_LEDS 0 ?
whismanoid 0:cb44e2e9ec4c 386 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 1
whismanoid 0:cb44e2e9ec4c 387 #warning "TARGET_MAX32625PICO not previously tested; need to verify ADC_FULL_SCALE_VOLTAGE..."
whismanoid 0:cb44e2e9ec4c 388 const float ADC_FULL_SCALE_VOLTAGE = 1.200;
whismanoid 0:cb44e2e9ec4c 389 //
whismanoid 0:cb44e2e9ec4c 390 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 391 #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE)
whismanoid 0:cb44e2e9ec4c 392 // TODO1: target NUCLEO_F446RE
whismanoid 0:cb44e2e9ec4c 393 //
whismanoid 0:cb44e2e9ec4c 394 // USER_BUTTON PC13
whismanoid 0:cb44e2e9ec4c 395 // LED1 is shared with SPI_SCK on NUCLEO_F446RE PA_5, so don't use LED1.
whismanoid 0:cb44e2e9ec4c 396 #define USE_LEDS 0
whismanoid 0:cb44e2e9ec4c 397 // SPI spi(SPI_MOSI, SPI_MISO, SPI_SCK);
whismanoid 0:cb44e2e9ec4c 398 // Serial serial(SERIAL_TX, SERIAL_RX);
whismanoid 0:cb44e2e9ec4c 399 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 0
whismanoid 0:cb44e2e9ec4c 400 const float ADC_FULL_SCALE_VOLTAGE = 3.300; // TODO: ADC_FULL_SCALE_VOLTAGE Pico?
whismanoid 0:cb44e2e9ec4c 401 //
whismanoid 0:cb44e2e9ec4c 402 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 403 #elif defined(TARGET_LPC1768)
whismanoid 0:cb44e2e9ec4c 404 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 405 // TARGET=LPC1768 ARM Cortex-M3 100 MHz 512kB flash 64kB SRAM
whismanoid 0:cb44e2e9ec4c 406 // +-------------[microUSB]-------------+
whismanoid 0:cb44e2e9ec4c 407 // ______ | [ ] GND +3.3V VOUT [ ] | ______
whismanoid 0:cb44e2e9ec4c 408 // ______ | [ ] 4.5V<VIN<9.0V +5.0V VU [ ] | ______
whismanoid 0:cb44e2e9ec4c 409 // ______ | [ ] VB USB.IF- [ ] | ______
whismanoid 0:cb44e2e9ec4c 410 // ______ | [ ] nR USB.IF+ [ ] | ______
whismanoid 0:cb44e2e9ec4c 411 // digitalInOut0 | [ ] p5 MOSI ETHERNET.RD- [ ] | ______
whismanoid 0:cb44e2e9ec4c 412 // digitalInOut1 | [ ] p6 MISO ETHERNET.RD+ [ ] | ______
whismanoid 0:cb44e2e9ec4c 413 // digitalInOut2 | [ ] p7 SCLK ETHERNET.TD- [ ] | ______
whismanoid 0:cb44e2e9ec4c 414 // digitalInOut3 | [ ] p8 ETHERNET.TD+ [ ] | ______
whismanoid 0:cb44e2e9ec4c 415 // digitalInOut4 | [ ] p9 TX SDA USB.D- [ ] | ______
whismanoid 0:cb44e2e9ec4c 416 // digitalInOut5 | [ ] p10 RX SCL USB.D+ [ ] | ______
whismanoid 0:cb44e2e9ec4c 417 // digitalInOut6 | [ ] p11 MOSI CAN-RD p30 [ ] | digitalInOut13
whismanoid 0:cb44e2e9ec4c 418 // digitalInOut7 | [ ] p12 MISO CAN-TD p29 [ ] | digitalInOut12
whismanoid 0:cb44e2e9ec4c 419 // digitalInOut8 | [ ] p13 TX SCLK SDA TX p28 [ ] | digitalInOut11
whismanoid 0:cb44e2e9ec4c 420 // digitalInOut9 | [ ] p14 RX SCL RX p27 [ ] | digitalInOut10
whismanoid 0:cb44e2e9ec4c 421 // analogIn0 | [ ] p15 AIN0 3.3Vfs PWM1 p26 [ ] | pwmDriver1
whismanoid 0:cb44e2e9ec4c 422 // analogIn1 | [ ] p16 AIN1 3.3Vfs PWM2 p25 [ ] | pwmDriver2
whismanoid 0:cb44e2e9ec4c 423 // analogIn2 | [ ] p17 AIN2 3.3Vfs PWM3 p24 [ ] | pwmDriver3
whismanoid 0:cb44e2e9ec4c 424 // analogIn3 | [ ] p18 AIN3 AOUT PWM4 p23 [ ] | pwmDriver4
whismanoid 0:cb44e2e9ec4c 425 // analogIn4 | [ ] p19 AIN4 3.3Vfs PWM5 p22 [ ] | pwmDriver5
whismanoid 0:cb44e2e9ec4c 426 // analogIn5 | [ ] p20 AIN5 3.3Vfs PWM6 p21 [ ] | pwmDriver6
whismanoid 0:cb44e2e9ec4c 427 // +------------------------------------+
whismanoid 0:cb44e2e9ec4c 428 // AIN6 = P0.3 = TGT_SBL_RXD?
whismanoid 0:cb44e2e9ec4c 429 // AIN7 = P0.2 = TGT_SBL_TXD?
whismanoid 0:cb44e2e9ec4c 430 //
whismanoid 0:cb44e2e9ec4c 431 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 432 // LPC1768 board uses VREF = 3.300V +A3,3V thru L1 to bypass capacitor C14
whismanoid 0:cb44e2e9ec4c 433 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 0
whismanoid 0:cb44e2e9ec4c 434 const float ADC_FULL_SCALE_VOLTAGE = 3.300;
whismanoid 0:cb44e2e9ec4c 435 #else // not defined(TARGET_LPC1768 etc.)
whismanoid 0:cb44e2e9ec4c 436 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 437 // unknown target
whismanoid 0:cb44e2e9ec4c 438 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 439 #endif // target definition
whismanoid 0:cb44e2e9ec4c 440
whismanoid 0:cb44e2e9ec4c 441
whismanoid 0:cb44e2e9ec4c 442
whismanoid 0:cb44e2e9ec4c 443
whismanoid 0:cb44e2e9ec4c 444 // uncrustify-0.66.1 *INDENT-OFF*
whismanoid 0:cb44e2e9ec4c 445 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 446 // Declare the DigitalInOut GPIO pins
whismanoid 0:cb44e2e9ec4c 447 // Optional digitalInOut support. If there is only one it should be digitalInOut1.
whismanoid 0:cb44e2e9ec4c 448 // D) Digital High/Low/Input Pin
whismanoid 0:cb44e2e9ec4c 449 #if defined(TARGET_MAX32630)
whismanoid 0:cb44e2e9ec4c 450 // +-------------[microUSB]-------------+
whismanoid 0:cb44e2e9ec4c 451 // | J1 MAX32630FTHR J2 |
whismanoid 0:cb44e2e9ec4c 452 // | [ ] RST GND [ ] |
whismanoid 0:cb44e2e9ec4c 453 // | [ ] 3V3 BAT+[ ] |
whismanoid 0:cb44e2e9ec4c 454 // | [ ] 1V8 reset SW1 |
whismanoid 0:cb44e2e9ec4c 455 // | [ ] GND J4 J3 |
whismanoid 0:cb44e2e9ec4c 456 // | [ ] AIN_0 1.2Vfs (bat) SYS [ ] |
whismanoid 0:cb44e2e9ec4c 457 // | [ ] AIN_1 1.2Vfs PWR [ ] |
whismanoid 0:cb44e2e9ec4c 458 // | [ ] AIN_2 1.2Vfs +5V VBUS [ ] |
whismanoid 0:cb44e2e9ec4c 459 // | [ ] AIN_3 1.2Vfs 1-WIRE P4_0 [ ] | dig9
whismanoid 0:cb44e2e9ec4c 460 // dig10 | [x] P5_7 SDA2 SRN P5_6 [ ] | dig8
whismanoid 0:cb44e2e9ec4c 461 // dig11 | [x] P6_0 SCL2 SDIO3 P5_5 [ ] | dig7
whismanoid 0:cb44e2e9ec4c 462 // dig12 | [x] P5_0 SCLK SDIO2 P5_4 [ ] | dig6
whismanoid 0:cb44e2e9ec4c 463 // dig13 | [x] P5_1 MOSI SSEL P5_3 [x] | dig5
whismanoid 0:cb44e2e9ec4c 464 // dig14 | [ ] P5_2 MISO RTS P3_3 [ ] | dig4
whismanoid 0:cb44e2e9ec4c 465 // dig15 | [ ] P3_0 RX CTS P3_2 [ ] | dig3
whismanoid 0:cb44e2e9ec4c 466 // dig0 | [ ] P3_1 TX SCL P3_5 [x] | dig2
whismanoid 0:cb44e2e9ec4c 467 // | [ ] GND SDA P3_4 [x] | dig1
whismanoid 0:cb44e2e9ec4c 468 // +------------------------------------+
whismanoid 0:cb44e2e9ec4c 469 #define HAS_digitalInOut0 1 // P3_1 TARGET_MAX32630 J1.15
whismanoid 0:cb44e2e9ec4c 470 #define HAS_digitalInOut1 1 // P3_4 TARGET_MAX32630 J3.12
whismanoid 0:cb44e2e9ec4c 471 #define HAS_digitalInOut2 1 // P3_5 TARGET_MAX32630 J3.11
whismanoid 0:cb44e2e9ec4c 472 #define HAS_digitalInOut3 1 // P3_2 TARGET_MAX32630 J3.10
whismanoid 0:cb44e2e9ec4c 473 #define HAS_digitalInOut4 1 // P3_3 TARGET_MAX32630 J3.9
whismanoid 0:cb44e2e9ec4c 474 #define HAS_digitalInOut5 1 // P5_3 TARGET_MAX32630 J3.8
whismanoid 0:cb44e2e9ec4c 475 #define HAS_digitalInOut6 1 // P5_4 TARGET_MAX32630 J3.7
whismanoid 0:cb44e2e9ec4c 476 #define HAS_digitalInOut7 1 // P5_5 TARGET_MAX32630 J3.6
whismanoid 0:cb44e2e9ec4c 477 #define HAS_digitalInOut8 1 // P5_6 TARGET_MAX32630 J3.5
whismanoid 0:cb44e2e9ec4c 478 #define HAS_digitalInOut9 1 // P4_0 TARGET_MAX32630 J3.4
whismanoid 0:cb44e2e9ec4c 479 #if HAS_I2C
whismanoid 0:cb44e2e9ec4c 480 // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut
whismanoid 0:cb44e2e9ec4c 481 #define HAS_digitalInOut10 0 // P5_7 TARGET_MAX32630 J1.9
whismanoid 0:cb44e2e9ec4c 482 #define HAS_digitalInOut11 0 // P6_0 TARGET_MAX32630 J1.10
whismanoid 0:cb44e2e9ec4c 483 #else // HAS_I2C
whismanoid 0:cb44e2e9ec4c 484 #define HAS_digitalInOut10 1 // P5_7 TARGET_MAX32630 J1.9
whismanoid 0:cb44e2e9ec4c 485 #define HAS_digitalInOut11 1 // P6_0 TARGET_MAX32630 J1.10
whismanoid 0:cb44e2e9ec4c 486 #endif // HAS_I2C
whismanoid 0:cb44e2e9ec4c 487 #if HAS_SPI
whismanoid 0:cb44e2e9ec4c 488 // avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut
whismanoid 0:cb44e2e9ec4c 489 #define HAS_digitalInOut12 0 // P5_0 TARGET_MAX32630 J1.11
whismanoid 0:cb44e2e9ec4c 490 #define HAS_digitalInOut13 0 // P5_1 TARGET_MAX32630 J1.12
whismanoid 0:cb44e2e9ec4c 491 #define HAS_digitalInOut14 0 // P5_2 TARGET_MAX32630 J1.13
whismanoid 0:cb44e2e9ec4c 492 #define HAS_digitalInOut15 0 // P3_0 TARGET_MAX32630 J1.14
whismanoid 0:cb44e2e9ec4c 493 #else // HAS_SPI
whismanoid 0:cb44e2e9ec4c 494 #define HAS_digitalInOut12 1 // P5_0 TARGET_MAX32630 J1.11
whismanoid 0:cb44e2e9ec4c 495 #define HAS_digitalInOut13 1 // P5_1 TARGET_MAX32630 J1.12
whismanoid 0:cb44e2e9ec4c 496 #define HAS_digitalInOut14 1 // P5_2 TARGET_MAX32630 J1.13
whismanoid 0:cb44e2e9ec4c 497 #define HAS_digitalInOut15 1 // P3_0 TARGET_MAX32630 J1.14
whismanoid 0:cb44e2e9ec4c 498 #endif // HAS_SPI
whismanoid 0:cb44e2e9ec4c 499 #if HAS_digitalInOut0
whismanoid 0:cb44e2e9ec4c 500 DigitalInOut digitalInOut0(P3_1, PIN_INPUT, PullUp, 1); // P3_1 TARGET_MAX32630 J1.15
whismanoid 0:cb44e2e9ec4c 501 #endif
whismanoid 0:cb44e2e9ec4c 502 #if HAS_digitalInOut1
whismanoid 0:cb44e2e9ec4c 503 DigitalInOut digitalInOut1(P3_4, PIN_INPUT, PullUp, 1); // P3_4 TARGET_MAX32630 J3.12
whismanoid 0:cb44e2e9ec4c 504 #endif
whismanoid 0:cb44e2e9ec4c 505 #if HAS_digitalInOut2
whismanoid 0:cb44e2e9ec4c 506 DigitalInOut digitalInOut2(P3_5, PIN_INPUT, PullUp, 1); // P3_5 TARGET_MAX32630 J3.11
whismanoid 0:cb44e2e9ec4c 507 #endif
whismanoid 0:cb44e2e9ec4c 508 #if HAS_digitalInOut3
whismanoid 0:cb44e2e9ec4c 509 DigitalInOut digitalInOut3(P3_2, PIN_INPUT, PullUp, 1); // P3_2 TARGET_MAX32630 J3.10
whismanoid 0:cb44e2e9ec4c 510 #endif
whismanoid 0:cb44e2e9ec4c 511 #if HAS_digitalInOut4
whismanoid 0:cb44e2e9ec4c 512 DigitalInOut digitalInOut4(P3_3, PIN_INPUT, PullUp, 1); // P3_3 TARGET_MAX32630 J3.9
whismanoid 0:cb44e2e9ec4c 513 #endif
whismanoid 0:cb44e2e9ec4c 514 #if HAS_digitalInOut5
whismanoid 0:cb44e2e9ec4c 515 DigitalInOut digitalInOut5(P5_3, PIN_INPUT, PullUp, 1); // P5_3 TARGET_MAX32630 J3.8
whismanoid 0:cb44e2e9ec4c 516 #endif
whismanoid 0:cb44e2e9ec4c 517 #if HAS_digitalInOut6
whismanoid 0:cb44e2e9ec4c 518 DigitalInOut digitalInOut6(P5_4, PIN_INPUT, PullUp, 1); // P5_4 TARGET_MAX32630 J3.7
whismanoid 0:cb44e2e9ec4c 519 #endif
whismanoid 0:cb44e2e9ec4c 520 #if HAS_digitalInOut7
whismanoid 0:cb44e2e9ec4c 521 DigitalInOut digitalInOut7(P5_5, PIN_INPUT, PullUp, 1); // P5_5 TARGET_MAX32630 J3.6
whismanoid 0:cb44e2e9ec4c 522 #endif
whismanoid 0:cb44e2e9ec4c 523 #if HAS_digitalInOut8
whismanoid 0:cb44e2e9ec4c 524 DigitalInOut digitalInOut8(P5_6, PIN_INPUT, PullUp, 1); // P5_6 TARGET_MAX32630 J3.5
whismanoid 0:cb44e2e9ec4c 525 #endif
whismanoid 0:cb44e2e9ec4c 526 #if HAS_digitalInOut9
whismanoid 0:cb44e2e9ec4c 527 DigitalInOut digitalInOut9(P4_0, PIN_INPUT, PullUp, 1); // P4_0 TARGET_MAX32630 J3.4
whismanoid 0:cb44e2e9ec4c 528 #endif
whismanoid 0:cb44e2e9ec4c 529 #if HAS_digitalInOut10
whismanoid 0:cb44e2e9ec4c 530 DigitalInOut digitalInOut10(P5_7, PIN_INPUT, PullUp, 1); // P5_7 TARGET_MAX32630 J1.9
whismanoid 0:cb44e2e9ec4c 531 #endif
whismanoid 0:cb44e2e9ec4c 532 #if HAS_digitalInOut11
whismanoid 0:cb44e2e9ec4c 533 DigitalInOut digitalInOut11(P6_0, PIN_INPUT, PullUp, 1); // P6_0 TARGET_MAX32630 J1.10
whismanoid 0:cb44e2e9ec4c 534 #endif
whismanoid 0:cb44e2e9ec4c 535 #if HAS_digitalInOut12
whismanoid 0:cb44e2e9ec4c 536 DigitalInOut digitalInOut12(P5_0, PIN_INPUT, PullUp, 1); // P5_0 TARGET_MAX32630 J1.11
whismanoid 0:cb44e2e9ec4c 537 #endif
whismanoid 0:cb44e2e9ec4c 538 #if HAS_digitalInOut13
whismanoid 0:cb44e2e9ec4c 539 DigitalInOut digitalInOut13(P5_1, PIN_INPUT, PullUp, 1); // P5_1 TARGET_MAX32630 J1.12
whismanoid 0:cb44e2e9ec4c 540 #endif
whismanoid 0:cb44e2e9ec4c 541 #if HAS_digitalInOut14
whismanoid 0:cb44e2e9ec4c 542 DigitalInOut digitalInOut14(P5_2, PIN_INPUT, PullUp, 1); // P5_2 TARGET_MAX32630 J1.13
whismanoid 0:cb44e2e9ec4c 543 #endif
whismanoid 0:cb44e2e9ec4c 544 #if HAS_digitalInOut15
whismanoid 0:cb44e2e9ec4c 545 DigitalInOut digitalInOut15(P3_0, PIN_INPUT, PullUp, 1); // P3_0 TARGET_MAX32630 J1.14
whismanoid 0:cb44e2e9ec4c 546 #endif
whismanoid 0:cb44e2e9ec4c 547 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 548 #elif defined(TARGET_MAX32625MBED)
whismanoid 0:cb44e2e9ec4c 549 // TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM
whismanoid 0:cb44e2e9ec4c 550 // +-------------------------------------+
whismanoid 0:cb44e2e9ec4c 551 // | MAX32625MBED Arduino UNO header |
whismanoid 0:cb44e2e9ec4c 552 // | |
whismanoid 0:cb44e2e9ec4c 553 // | A5/SCL[ ] | P1_7 dig15
whismanoid 0:cb44e2e9ec4c 554 // | A4/SDA[ ] | P1_6 dig14
whismanoid 0:cb44e2e9ec4c 555 // | AREF=N/C[ ] |
whismanoid 0:cb44e2e9ec4c 556 // | GND[ ] |
whismanoid 0:cb44e2e9ec4c 557 // | [ ]N/C SCK/13[ ] | P1_0 dig13
whismanoid 0:cb44e2e9ec4c 558 // | [ ]IOREF=3V3 MISO/12[ ] | P1_2 dig12
whismanoid 0:cb44e2e9ec4c 559 // | [ ]RST MOSI/11[ ]~| P1_1 dig11
whismanoid 0:cb44e2e9ec4c 560 // | [ ]3V3 CS/10[ ]~| P1_3 dig10
whismanoid 0:cb44e2e9ec4c 561 // | [ ]5V0 9[ ]~| P1_5 dig9
whismanoid 0:cb44e2e9ec4c 562 // | [ ]GND 8[ ] | P1_4 dig8
whismanoid 0:cb44e2e9ec4c 563 // | [ ]GND |
whismanoid 0:cb44e2e9ec4c 564 // | [ ]Vin 7[ ] | P0_7 dig7
whismanoid 0:cb44e2e9ec4c 565 // | 6[ ]~| P0_6 dig6
whismanoid 0:cb44e2e9ec4c 566 // AIN_0 | [ ]A0 5[ ]~| P0_5 dig5
whismanoid 0:cb44e2e9ec4c 567 // AIN_1 | [ ]A1 4[ ] | P0_4 dig4
whismanoid 0:cb44e2e9ec4c 568 // AIN_2 | [ ]A2 INT1/3[ ]~| P0_3 dig3
whismanoid 0:cb44e2e9ec4c 569 // AIN_3 | [ ]A3 INT0/2[ ] | P0_2 dig2
whismanoid 0:cb44e2e9ec4c 570 // dig16 P3_4 | [ ]A4/SDA RST SCK MISO TX>1[ ] | P0_1 dig1
whismanoid 0:cb44e2e9ec4c 571 // dig17 P3_5 | [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] | P0_0 dig0
whismanoid 0:cb44e2e9ec4c 572 // | [ ] [ ] [ ] |
whismanoid 0:cb44e2e9ec4c 573 // | UNO_R3 GND MOSI 5V ____________/
whismanoid 0:cb44e2e9ec4c 574 // \_______________________/
whismanoid 0:cb44e2e9ec4c 575 //
whismanoid 0:cb44e2e9ec4c 576 #define HAS_digitalInOut0 1 // P0_0 TARGET_MAX32625MBED D0
whismanoid 0:cb44e2e9ec4c 577 #define HAS_digitalInOut1 1 // P0_1 TARGET_MAX32625MBED D1
whismanoid 0:cb44e2e9ec4c 578 #if APPLICATION_MAX11131
whismanoid 0:cb44e2e9ec4c 579 #define HAS_digitalInOut2 0 // P0_2 TARGET_MAX32625MBED D2 -- MAX11131 EOC DigitalIn
whismanoid 0:cb44e2e9ec4c 580 #else
whismanoid 0:cb44e2e9ec4c 581 #define HAS_digitalInOut2 1 // P0_2 TARGET_MAX32625MBED D2
whismanoid 0:cb44e2e9ec4c 582 #endif
whismanoid 0:cb44e2e9ec4c 583 #define HAS_digitalInOut3 1 // P0_3 TARGET_MAX32625MBED D3
whismanoid 0:cb44e2e9ec4c 584 #define HAS_digitalInOut4 1 // P0_4 TARGET_MAX32625MBED D4
whismanoid 0:cb44e2e9ec4c 585 #define HAS_digitalInOut5 1 // P0_5 TARGET_MAX32625MBED D5
whismanoid 0:cb44e2e9ec4c 586 #define HAS_digitalInOut6 1 // P0_6 TARGET_MAX32625MBED D6
whismanoid 0:cb44e2e9ec4c 587 #define HAS_digitalInOut7 1 // P0_7 TARGET_MAX32625MBED D7
whismanoid 0:cb44e2e9ec4c 588 #define HAS_digitalInOut8 1 // P1_4 TARGET_MAX32625MBED D8
whismanoid 0:cb44e2e9ec4c 589 #if APPLICATION_MAX11131
whismanoid 0:cb44e2e9ec4c 590 #define HAS_digitalInOut9 0 // P1_5 TARGET_MAX32625MBED D9 -- MAX11131 CNVST DigitalOut
whismanoid 0:cb44e2e9ec4c 591 #else
whismanoid 0:cb44e2e9ec4c 592 #define HAS_digitalInOut9 1 // P1_5 TARGET_MAX32625MBED D9
whismanoid 0:cb44e2e9ec4c 593 #endif
whismanoid 0:cb44e2e9ec4c 594 #if HAS_SPI
whismanoid 0:cb44e2e9ec4c 595 // avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut
whismanoid 0:cb44e2e9ec4c 596 #define HAS_digitalInOut10 0 // P1_3 TARGET_MAX32635MBED CS/10
whismanoid 0:cb44e2e9ec4c 597 #define HAS_digitalInOut11 0 // P1_1 TARGET_MAX32635MBED MOSI/11
whismanoid 0:cb44e2e9ec4c 598 #define HAS_digitalInOut12 0 // P1_2 TARGET_MAX32635MBED MISO/12
whismanoid 0:cb44e2e9ec4c 599 #define HAS_digitalInOut13 0 // P1_0 TARGET_MAX32635MBED SCK/13
whismanoid 0:cb44e2e9ec4c 600 #else // HAS_SPI
whismanoid 0:cb44e2e9ec4c 601 #define HAS_digitalInOut10 1 // P1_3 TARGET_MAX32635MBED CS/10
whismanoid 0:cb44e2e9ec4c 602 #define HAS_digitalInOut11 1 // P1_1 TARGET_MAX32635MBED MOSI/11
whismanoid 0:cb44e2e9ec4c 603 #define HAS_digitalInOut12 1 // P1_2 TARGET_MAX32635MBED MISO/12
whismanoid 0:cb44e2e9ec4c 604 #define HAS_digitalInOut13 1 // P1_0 TARGET_MAX32635MBED SCK/13
whismanoid 0:cb44e2e9ec4c 605 #endif // HAS_SPI
whismanoid 0:cb44e2e9ec4c 606 #if HAS_I2C
whismanoid 0:cb44e2e9ec4c 607 // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut
whismanoid 0:cb44e2e9ec4c 608 #define HAS_digitalInOut14 0 // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector)
whismanoid 0:cb44e2e9ec4c 609 #define HAS_digitalInOut15 0 // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector)
whismanoid 0:cb44e2e9ec4c 610 #define HAS_digitalInOut16 0 // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector)
whismanoid 0:cb44e2e9ec4c 611 #define HAS_digitalInOut17 0 // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector)
whismanoid 0:cb44e2e9ec4c 612 #else // HAS_I2C
whismanoid 0:cb44e2e9ec4c 613 #define HAS_digitalInOut14 1 // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector)
whismanoid 0:cb44e2e9ec4c 614 #define HAS_digitalInOut15 1 // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector)
whismanoid 0:cb44e2e9ec4c 615 #define HAS_digitalInOut16 1 // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector)
whismanoid 0:cb44e2e9ec4c 616 #define HAS_digitalInOut17 1 // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector)
whismanoid 0:cb44e2e9ec4c 617 #endif // HAS_I2C
whismanoid 0:cb44e2e9ec4c 618 #if HAS_digitalInOut0
whismanoid 0:cb44e2e9ec4c 619 DigitalInOut digitalInOut0(P0_0, PIN_INPUT, PullUp, 1); // P0_0 TARGET_MAX32625MBED D0
whismanoid 0:cb44e2e9ec4c 620 #endif
whismanoid 0:cb44e2e9ec4c 621 #if HAS_digitalInOut1
whismanoid 0:cb44e2e9ec4c 622 DigitalInOut digitalInOut1(P0_1, PIN_INPUT, PullUp, 1); // P0_1 TARGET_MAX32625MBED D1
whismanoid 0:cb44e2e9ec4c 623 #endif
whismanoid 0:cb44e2e9ec4c 624 #if HAS_digitalInOut2
whismanoid 0:cb44e2e9ec4c 625 DigitalInOut digitalInOut2(P0_2, PIN_INPUT, PullUp, 1); // P0_2 TARGET_MAX32625MBED D2
whismanoid 0:cb44e2e9ec4c 626 #endif
whismanoid 0:cb44e2e9ec4c 627 #if HAS_digitalInOut3
whismanoid 0:cb44e2e9ec4c 628 DigitalInOut digitalInOut3(P0_3, PIN_INPUT, PullUp, 1); // P0_3 TARGET_MAX32625MBED D3
whismanoid 0:cb44e2e9ec4c 629 #endif
whismanoid 0:cb44e2e9ec4c 630 #if HAS_digitalInOut4
whismanoid 0:cb44e2e9ec4c 631 DigitalInOut digitalInOut4(P0_4, PIN_INPUT, PullUp, 1); // P0_4 TARGET_MAX32625MBED D4
whismanoid 0:cb44e2e9ec4c 632 #endif
whismanoid 0:cb44e2e9ec4c 633 #if HAS_digitalInOut5
whismanoid 0:cb44e2e9ec4c 634 DigitalInOut digitalInOut5(P0_5, PIN_INPUT, PullUp, 1); // P0_5 TARGET_MAX32625MBED D5
whismanoid 0:cb44e2e9ec4c 635 #endif
whismanoid 0:cb44e2e9ec4c 636 #if HAS_digitalInOut6
whismanoid 0:cb44e2e9ec4c 637 DigitalInOut digitalInOut6(P0_6, PIN_INPUT, PullUp, 1); // P0_6 TARGET_MAX32625MBED D6
whismanoid 0:cb44e2e9ec4c 638 #endif
whismanoid 0:cb44e2e9ec4c 639 #if HAS_digitalInOut7
whismanoid 0:cb44e2e9ec4c 640 DigitalInOut digitalInOut7(P0_7, PIN_INPUT, PullUp, 1); // P0_7 TARGET_MAX32625MBED D7
whismanoid 0:cb44e2e9ec4c 641 #endif
whismanoid 0:cb44e2e9ec4c 642 #if HAS_digitalInOut8
whismanoid 0:cb44e2e9ec4c 643 DigitalInOut digitalInOut8(P1_4, PIN_INPUT, PullUp, 1); // P1_4 TARGET_MAX32625MBED D8
whismanoid 0:cb44e2e9ec4c 644 #endif
whismanoid 0:cb44e2e9ec4c 645 #if HAS_digitalInOut9
whismanoid 0:cb44e2e9ec4c 646 DigitalInOut digitalInOut9(P1_5, PIN_INPUT, PullUp, 1); // P1_5 TARGET_MAX32625MBED D9
whismanoid 0:cb44e2e9ec4c 647 #endif
whismanoid 0:cb44e2e9ec4c 648 #if HAS_digitalInOut10
whismanoid 0:cb44e2e9ec4c 649 DigitalInOut digitalInOut10(P1_3, PIN_INPUT, PullUp, 1); // P1_3 TARGET_MAX32635MBED CS/10
whismanoid 0:cb44e2e9ec4c 650 #endif
whismanoid 0:cb44e2e9ec4c 651 #if HAS_digitalInOut11
whismanoid 0:cb44e2e9ec4c 652 DigitalInOut digitalInOut11(P1_1, PIN_INPUT, PullUp, 1); // P1_1 TARGET_MAX32635MBED MOSI/11
whismanoid 0:cb44e2e9ec4c 653 #endif
whismanoid 0:cb44e2e9ec4c 654 #if HAS_digitalInOut12
whismanoid 0:cb44e2e9ec4c 655 DigitalInOut digitalInOut12(P1_2, PIN_INPUT, PullUp, 1); // P1_2 TARGET_MAX32635MBED MISO/12
whismanoid 0:cb44e2e9ec4c 656 #endif
whismanoid 0:cb44e2e9ec4c 657 #if HAS_digitalInOut13
whismanoid 0:cb44e2e9ec4c 658 DigitalInOut digitalInOut13(P1_0, PIN_INPUT, PullUp, 1); // P1_0 TARGET_MAX32635MBED SCK/13
whismanoid 0:cb44e2e9ec4c 659 #endif
whismanoid 0:cb44e2e9ec4c 660 #if HAS_digitalInOut14
whismanoid 0:cb44e2e9ec4c 661 // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5
whismanoid 0:cb44e2e9ec4c 662 // DigitalInOut mode can be one of PullUp, PullDown, PullNone, OpenDrain
whismanoid 0:cb44e2e9ec4c 663 DigitalInOut digitalInOut14(P1_6, PIN_INPUT, OpenDrain, 1); // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector)
whismanoid 0:cb44e2e9ec4c 664 #endif
whismanoid 0:cb44e2e9ec4c 665 #if HAS_digitalInOut15
whismanoid 0:cb44e2e9ec4c 666 // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5
whismanoid 0:cb44e2e9ec4c 667 DigitalInOut digitalInOut15(P1_7, PIN_INPUT, OpenDrain, 1); // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector)
whismanoid 0:cb44e2e9ec4c 668 #endif
whismanoid 0:cb44e2e9ec4c 669 #if HAS_digitalInOut16
whismanoid 0:cb44e2e9ec4c 670 // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5
whismanoid 0:cb44e2e9ec4c 671 // DigitalInOut mode can be one of PullUp, PullDown, PullNone, OpenDrain
whismanoid 0:cb44e2e9ec4c 672 // PullUp-->3.4V, PullDown-->1.7V, PullNone-->3.5V, OpenDrain-->0.00V
whismanoid 0:cb44e2e9ec4c 673 DigitalInOut digitalInOut16(P3_4, PIN_INPUT, OpenDrain, 0); // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector)
whismanoid 0:cb44e2e9ec4c 674 #endif
whismanoid 0:cb44e2e9ec4c 675 #if HAS_digitalInOut17
whismanoid 0:cb44e2e9ec4c 676 // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5
whismanoid 0:cb44e2e9ec4c 677 DigitalInOut digitalInOut17(P3_5, PIN_INPUT, OpenDrain, 0); // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector)
whismanoid 0:cb44e2e9ec4c 678 #endif
whismanoid 0:cb44e2e9ec4c 679 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 680 #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE)
whismanoid 0:cb44e2e9ec4c 681 #define HAS_digitalInOut0 0
whismanoid 0:cb44e2e9ec4c 682 #define HAS_digitalInOut1 0
whismanoid 0:cb44e2e9ec4c 683 #if APPLICATION_MAX11131
whismanoid 0:cb44e2e9ec4c 684 // D2 -- MAX11131 EOC DigitalIn
whismanoid 0:cb44e2e9ec4c 685 #define HAS_digitalInOut2 0
whismanoid 0:cb44e2e9ec4c 686 #else
whismanoid 0:cb44e2e9ec4c 687 #define HAS_digitalInOut2 1
whismanoid 0:cb44e2e9ec4c 688 #endif
whismanoid 0:cb44e2e9ec4c 689 #define HAS_digitalInOut3 1
whismanoid 0:cb44e2e9ec4c 690 #define HAS_digitalInOut4 1
whismanoid 0:cb44e2e9ec4c 691 #define HAS_digitalInOut5 1
whismanoid 0:cb44e2e9ec4c 692 #define HAS_digitalInOut6 1
whismanoid 0:cb44e2e9ec4c 693 #define HAS_digitalInOut7 1
whismanoid 0:cb44e2e9ec4c 694 #if APPLICATION_MAX5715
whismanoid 0:cb44e2e9ec4c 695 // D8 -- MAX5715 CLRb DigitalOut
whismanoid 0:cb44e2e9ec4c 696 #define HAS_digitalInOut8 0
whismanoid 0:cb44e2e9ec4c 697 #else
whismanoid 0:cb44e2e9ec4c 698 #define HAS_digitalInOut8 1
whismanoid 0:cb44e2e9ec4c 699 #endif
whismanoid 0:cb44e2e9ec4c 700 #if APPLICATION_MAX5715
whismanoid 0:cb44e2e9ec4c 701 // D9 -- MAX5715 LDACb DigitalOut
whismanoid 0:cb44e2e9ec4c 702 #define HAS_digitalInOut9 0
whismanoid 0:cb44e2e9ec4c 703 #elif APPLICATION_MAX11131
whismanoid 0:cb44e2e9ec4c 704 // D9 -- MAX11131 CNVST DigitalOut
whismanoid 0:cb44e2e9ec4c 705 #define HAS_digitalInOut9 0
whismanoid 0:cb44e2e9ec4c 706 #else
whismanoid 0:cb44e2e9ec4c 707 #define HAS_digitalInOut9 1
whismanoid 0:cb44e2e9ec4c 708 #endif
whismanoid 0:cb44e2e9ec4c 709 #if HAS_SPI
whismanoid 0:cb44e2e9ec4c 710 // avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut
whismanoid 0:cb44e2e9ec4c 711 // Arduino digital pin D10 SPI function is CS/10
whismanoid 0:cb44e2e9ec4c 712 // Arduino digital pin D11 SPI function is MOSI/11
whismanoid 0:cb44e2e9ec4c 713 // Arduino digital pin D12 SPI function is MISO/12
whismanoid 0:cb44e2e9ec4c 714 // Arduino digital pin D13 SPI function is SCK/13
whismanoid 0:cb44e2e9ec4c 715 #define HAS_digitalInOut10 0
whismanoid 0:cb44e2e9ec4c 716 #define HAS_digitalInOut11 0
whismanoid 0:cb44e2e9ec4c 717 #define HAS_digitalInOut12 0
whismanoid 0:cb44e2e9ec4c 718 #define HAS_digitalInOut13 0
whismanoid 0:cb44e2e9ec4c 719 #else // HAS_SPI
whismanoid 0:cb44e2e9ec4c 720 #define HAS_digitalInOut10 1
whismanoid 0:cb44e2e9ec4c 721 #define HAS_digitalInOut11 1
whismanoid 0:cb44e2e9ec4c 722 #define HAS_digitalInOut12 1
whismanoid 0:cb44e2e9ec4c 723 #define HAS_digitalInOut13 1
whismanoid 0:cb44e2e9ec4c 724 #endif // HAS_SPI
whismanoid 0:cb44e2e9ec4c 725 #if HAS_I2C
whismanoid 0:cb44e2e9ec4c 726 // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut
whismanoid 0:cb44e2e9ec4c 727 // Arduino digital pin D14 I2C function is A4/SDA (10pin digital connector)
whismanoid 0:cb44e2e9ec4c 728 // Arduino digital pin D15 I2C function is A5/SCL (10pin digital connector)
whismanoid 0:cb44e2e9ec4c 729 // Arduino digital pin D16 I2C function is A4/SDA (6pin analog connector)
whismanoid 0:cb44e2e9ec4c 730 // Arduino digital pin D17 I2C function is A5/SCL (6pin analog connector)
whismanoid 0:cb44e2e9ec4c 731 #define HAS_digitalInOut14 0
whismanoid 0:cb44e2e9ec4c 732 #define HAS_digitalInOut15 0
whismanoid 0:cb44e2e9ec4c 733 #define HAS_digitalInOut16 0
whismanoid 0:cb44e2e9ec4c 734 #define HAS_digitalInOut17 0
whismanoid 0:cb44e2e9ec4c 735 #else // HAS_I2C
whismanoid 0:cb44e2e9ec4c 736 #define HAS_digitalInOut14 1
whismanoid 0:cb44e2e9ec4c 737 #define HAS_digitalInOut15 1
whismanoid 0:cb44e2e9ec4c 738 #define HAS_digitalInOut16 0
whismanoid 0:cb44e2e9ec4c 739 #define HAS_digitalInOut17 0
whismanoid 0:cb44e2e9ec4c 740 #endif // HAS_I2C
whismanoid 0:cb44e2e9ec4c 741 #if HAS_digitalInOut0
whismanoid 0:cb44e2e9ec4c 742 DigitalInOut digitalInOut0(D0, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 743 #endif
whismanoid 0:cb44e2e9ec4c 744 #if HAS_digitalInOut1
whismanoid 0:cb44e2e9ec4c 745 DigitalInOut digitalInOut1(D1, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 746 #endif
whismanoid 0:cb44e2e9ec4c 747 #if HAS_digitalInOut2
whismanoid 0:cb44e2e9ec4c 748 DigitalInOut digitalInOut2(D2, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 749 #endif
whismanoid 0:cb44e2e9ec4c 750 #if HAS_digitalInOut3
whismanoid 0:cb44e2e9ec4c 751 DigitalInOut digitalInOut3(D3, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 752 #endif
whismanoid 0:cb44e2e9ec4c 753 #if HAS_digitalInOut4
whismanoid 0:cb44e2e9ec4c 754 DigitalInOut digitalInOut4(D4, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 755 #endif
whismanoid 0:cb44e2e9ec4c 756 #if HAS_digitalInOut5
whismanoid 0:cb44e2e9ec4c 757 DigitalInOut digitalInOut5(D5, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 758 #endif
whismanoid 0:cb44e2e9ec4c 759 #if HAS_digitalInOut6
whismanoid 0:cb44e2e9ec4c 760 DigitalInOut digitalInOut6(D6, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 761 #endif
whismanoid 0:cb44e2e9ec4c 762 #if HAS_digitalInOut7
whismanoid 0:cb44e2e9ec4c 763 DigitalInOut digitalInOut7(D7, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 764 #endif
whismanoid 0:cb44e2e9ec4c 765 #if HAS_digitalInOut8
whismanoid 0:cb44e2e9ec4c 766 DigitalInOut digitalInOut8(D8, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 767 #endif
whismanoid 0:cb44e2e9ec4c 768 #if HAS_digitalInOut9
whismanoid 0:cb44e2e9ec4c 769 DigitalInOut digitalInOut9(D9, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 770 #endif
whismanoid 0:cb44e2e9ec4c 771 #if HAS_digitalInOut10
whismanoid 0:cb44e2e9ec4c 772 // Arduino digital pin D10 SPI function is CS/10
whismanoid 0:cb44e2e9ec4c 773 DigitalInOut digitalInOut10(D10, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 774 #endif
whismanoid 0:cb44e2e9ec4c 775 #if HAS_digitalInOut11
whismanoid 0:cb44e2e9ec4c 776 // Arduino digital pin D11 SPI function is MOSI/11
whismanoid 0:cb44e2e9ec4c 777 DigitalInOut digitalInOut11(D11, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 778 #endif
whismanoid 0:cb44e2e9ec4c 779 #if HAS_digitalInOut12
whismanoid 0:cb44e2e9ec4c 780 // Arduino digital pin D12 SPI function is MISO/12
whismanoid 0:cb44e2e9ec4c 781 DigitalInOut digitalInOut12(D12, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 782 #endif
whismanoid 0:cb44e2e9ec4c 783 #if HAS_digitalInOut13
whismanoid 0:cb44e2e9ec4c 784 // Arduino digital pin D13 SPI function is SCK/13
whismanoid 0:cb44e2e9ec4c 785 DigitalInOut digitalInOut13(D13, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 786 #endif
whismanoid 0:cb44e2e9ec4c 787 #if HAS_digitalInOut14
whismanoid 0:cb44e2e9ec4c 788 // Arduino digital pin D14 I2C function is A4/SDA (10pin digital connector)
whismanoid 0:cb44e2e9ec4c 789 DigitalInOut digitalInOut14(D14, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 790 #endif
whismanoid 0:cb44e2e9ec4c 791 #if HAS_digitalInOut15
whismanoid 0:cb44e2e9ec4c 792 // Arduino digital pin D15 I2C function is A5/SCL (10pin digital connector)
whismanoid 0:cb44e2e9ec4c 793 DigitalInOut digitalInOut15(D15, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 794 #endif
whismanoid 0:cb44e2e9ec4c 795 #if HAS_digitalInOut16
whismanoid 0:cb44e2e9ec4c 796 // Arduino digital pin D16 I2C function is A4/SDA (6pin analog connector)
whismanoid 0:cb44e2e9ec4c 797 DigitalInOut digitalInOut16(D16, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 798 #endif
whismanoid 0:cb44e2e9ec4c 799 #if HAS_digitalInOut17
whismanoid 0:cb44e2e9ec4c 800 // Arduino digital pin D17 I2C function is A5/SCL (6pin analog connector)
whismanoid 0:cb44e2e9ec4c 801 DigitalInOut digitalInOut17(D17, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 802 #endif
whismanoid 0:cb44e2e9ec4c 803 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 804 #elif defined(TARGET_LPC1768)
whismanoid 0:cb44e2e9ec4c 805 #define HAS_digitalInOut0 1
whismanoid 0:cb44e2e9ec4c 806 #define HAS_digitalInOut1 1
whismanoid 0:cb44e2e9ec4c 807 #define HAS_digitalInOut2 1
whismanoid 0:cb44e2e9ec4c 808 #define HAS_digitalInOut3 1
whismanoid 0:cb44e2e9ec4c 809 #define HAS_digitalInOut4 1
whismanoid 0:cb44e2e9ec4c 810 #define HAS_digitalInOut5 1
whismanoid 0:cb44e2e9ec4c 811 #define HAS_digitalInOut6 1
whismanoid 0:cb44e2e9ec4c 812 #define HAS_digitalInOut7 1
whismanoid 0:cb44e2e9ec4c 813 #define HAS_digitalInOut8 1
whismanoid 0:cb44e2e9ec4c 814 #define HAS_digitalInOut9 1
whismanoid 0:cb44e2e9ec4c 815 // #define HAS_digitalInOut10 1
whismanoid 0:cb44e2e9ec4c 816 // #define HAS_digitalInOut11 1
whismanoid 0:cb44e2e9ec4c 817 // #define HAS_digitalInOut12 1
whismanoid 0:cb44e2e9ec4c 818 // #define HAS_digitalInOut13 1
whismanoid 0:cb44e2e9ec4c 819 // #define HAS_digitalInOut14 1
whismanoid 0:cb44e2e9ec4c 820 // #define HAS_digitalInOut15 1
whismanoid 0:cb44e2e9ec4c 821 #if HAS_digitalInOut0
whismanoid 0:cb44e2e9ec4c 822 DigitalInOut digitalInOut0(p5, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.9/I2STX_SDA/MOSI1/MAT2.3
whismanoid 0:cb44e2e9ec4c 823 #endif
whismanoid 0:cb44e2e9ec4c 824 #if HAS_digitalInOut1
whismanoid 0:cb44e2e9ec4c 825 DigitalInOut digitalInOut1(p6, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.8/I2STX_WS/MISO1/MAT2.2
whismanoid 0:cb44e2e9ec4c 826 #endif
whismanoid 0:cb44e2e9ec4c 827 #if HAS_digitalInOut2
whismanoid 0:cb44e2e9ec4c 828 DigitalInOut digitalInOut2(p7, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.7/I2STX_CLK/SCK1/MAT2.1
whismanoid 0:cb44e2e9ec4c 829 #endif
whismanoid 0:cb44e2e9ec4c 830 #if HAS_digitalInOut3
whismanoid 0:cb44e2e9ec4c 831 DigitalInOut digitalInOut3(p8, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.6/I2SRX_SDA/SSEL1/MAT2.0
whismanoid 0:cb44e2e9ec4c 832 #endif
whismanoid 0:cb44e2e9ec4c 833 #if HAS_digitalInOut4
whismanoid 0:cb44e2e9ec4c 834 DigitalInOut digitalInOut4(p9, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.0/CAN_RX1/TXD3/SDA1
whismanoid 0:cb44e2e9ec4c 835 #endif
whismanoid 0:cb44e2e9ec4c 836 #if HAS_digitalInOut5
whismanoid 0:cb44e2e9ec4c 837 DigitalInOut digitalInOut5(p10, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.1/CAN_TX1/RXD3/SCL1
whismanoid 0:cb44e2e9ec4c 838 #endif
whismanoid 0:cb44e2e9ec4c 839 #if HAS_digitalInOut6
whismanoid 0:cb44e2e9ec4c 840 DigitalInOut digitalInOut6(p11, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.18/DCD1/MOSI0/MOSI1
whismanoid 0:cb44e2e9ec4c 841 #endif
whismanoid 0:cb44e2e9ec4c 842 #if HAS_digitalInOut7
whismanoid 0:cb44e2e9ec4c 843 DigitalInOut digitalInOut7(p12, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.17/CTS1/MISO0/MISO
whismanoid 0:cb44e2e9ec4c 844 #endif
whismanoid 0:cb44e2e9ec4c 845 #if HAS_digitalInOut8
whismanoid 0:cb44e2e9ec4c 846 DigitalInOut digitalInOut8(p13, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.15/TXD1/SCK0/SCK
whismanoid 0:cb44e2e9ec4c 847 #endif
whismanoid 0:cb44e2e9ec4c 848 #if HAS_digitalInOut9
whismanoid 0:cb44e2e9ec4c 849 DigitalInOut digitalInOut9(p14, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.16/RXD1/SSEL0/SSEL
whismanoid 0:cb44e2e9ec4c 850 #endif
whismanoid 0:cb44e2e9ec4c 851 //
whismanoid 0:cb44e2e9ec4c 852 // these pins support analog input analogIn0 .. analogIn5
whismanoid 0:cb44e2e9ec4c 853 //DigitalInOut digitalInOut_(p15, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.23/AD0.0/I2SRX_CLK/CAP3.0
whismanoid 0:cb44e2e9ec4c 854 //DigitalInOut digitalInOut_(p16, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.24/AD0.1/I2SRX_WS/CAP3.1
whismanoid 0:cb44e2e9ec4c 855 //DigitalInOut digitalInOut_(p17, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.25/AD0.2/I2SRX_SDA/TXD3
whismanoid 0:cb44e2e9ec4c 856 //DigitalInOut digitalInOut_(p18, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.26/AD0.3/AOUT/RXD3
whismanoid 0:cb44e2e9ec4c 857 //DigitalInOut digitalInOut_(p19, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P1.30/VBUS/AD0.4
whismanoid 0:cb44e2e9ec4c 858 //DigitalInOut digitalInOut_(p20, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P1.31/SCK1/AD0.5
whismanoid 0:cb44e2e9ec4c 859 //
whismanoid 0:cb44e2e9ec4c 860 // these pins support PWM pwmDriver1 .. pwmDriver6
whismanoid 0:cb44e2e9ec4c 861 //DigitalInOut digitalInOut_(p21, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.5/PWM1.6/DTR1/TRACEDATA0
whismanoid 0:cb44e2e9ec4c 862 //DigitalInOut digitalInOut_(p22, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.4/PWM1.5/DSR1/TRACEDATA1
whismanoid 0:cb44e2e9ec4c 863 //DigitalInOut digitalInOut_(p23, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.3/PWM1.4/DCD1/TRACEDATA2
whismanoid 0:cb44e2e9ec4c 864 //DigitalInOut digitalInOut_(p24, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.2/PWM1.3/CTS1/TRACEDATA3
whismanoid 0:cb44e2e9ec4c 865 //DigitalInOut digitalInOut_(p25, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.1/PWM1.2/RXD1
whismanoid 0:cb44e2e9ec4c 866 //DigitalInOut digitalInOut_(p26, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.0/PWM1.1/TXD1/TRACECLK
whismanoid 0:cb44e2e9ec4c 867 //
whismanoid 0:cb44e2e9ec4c 868 // these could be additional digitalInOut pins
whismanoid 0:cb44e2e9ec4c 869 #if HAS_digitalInOut10
whismanoid 0:cb44e2e9ec4c 870 DigitalInOut digitalInOut10(p27, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.11/RXD2/SCL2/MAT3.1
whismanoid 0:cb44e2e9ec4c 871 #endif
whismanoid 0:cb44e2e9ec4c 872 #if HAS_digitalInOut11
whismanoid 0:cb44e2e9ec4c 873 DigitalInOut digitalInOut11(p28, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.10/TXD2/SDA2/MAT3.0
whismanoid 0:cb44e2e9ec4c 874 #endif
whismanoid 0:cb44e2e9ec4c 875 #if HAS_digitalInOut12
whismanoid 0:cb44e2e9ec4c 876 DigitalInOut digitalInOut12(p29, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.5/I2SRX_WS/CAN_TX2/CAP2.1
whismanoid 0:cb44e2e9ec4c 877 #endif
whismanoid 0:cb44e2e9ec4c 878 #if HAS_digitalInOut13
whismanoid 0:cb44e2e9ec4c 879 DigitalInOut digitalInOut13(p30, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.4/I2SRX_CLK/CAN_RX2/CAP2.0
whismanoid 0:cb44e2e9ec4c 880 #endif
whismanoid 0:cb44e2e9ec4c 881 #if HAS_digitalInOut14
whismanoid 0:cb44e2e9ec4c 882 DigitalInOut digitalInOut14(___, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 883 #endif
whismanoid 0:cb44e2e9ec4c 884 #if HAS_digitalInOut15
whismanoid 0:cb44e2e9ec4c 885 DigitalInOut digitalInOut15(___, PIN_INPUT, PullUp, 1);
whismanoid 0:cb44e2e9ec4c 886 #endif
whismanoid 0:cb44e2e9ec4c 887 #else
whismanoid 0:cb44e2e9ec4c 888 // unknown target
whismanoid 0:cb44e2e9ec4c 889 #endif
whismanoid 0:cb44e2e9ec4c 890 // uncrustify-0.66.1 *INDENT-ON*
whismanoid 0:cb44e2e9ec4c 891 #if HAS_digitalInOut0 || HAS_digitalInOut1 \
whismanoid 0:cb44e2e9ec4c 892 || HAS_digitalInOut2 || HAS_digitalInOut3 \
whismanoid 0:cb44e2e9ec4c 893 || HAS_digitalInOut4 || HAS_digitalInOut5 \
whismanoid 0:cb44e2e9ec4c 894 || HAS_digitalInOut6 || HAS_digitalInOut7 \
whismanoid 0:cb44e2e9ec4c 895 || HAS_digitalInOut8 || HAS_digitalInOut9 \
whismanoid 0:cb44e2e9ec4c 896 || HAS_digitalInOut10 || HAS_digitalInOut11 \
whismanoid 0:cb44e2e9ec4c 897 || HAS_digitalInOut12 || HAS_digitalInOut13 \
whismanoid 0:cb44e2e9ec4c 898 || HAS_digitalInOut14 || HAS_digitalInOut15 \
whismanoid 0:cb44e2e9ec4c 899 || HAS_digitalInOut16 || HAS_digitalInOut17
whismanoid 0:cb44e2e9ec4c 900 #define HAS_digitalInOuts 1
whismanoid 0:cb44e2e9ec4c 901 #else
whismanoid 0:cb44e2e9ec4c 902 #warning "Note: There are no digitalInOut resources defined"
whismanoid 0:cb44e2e9ec4c 903 #endif
whismanoid 0:cb44e2e9ec4c 904
whismanoid 0:cb44e2e9ec4c 905 // uncrustify-0.66.1 *INDENT-OFF*
whismanoid 0:cb44e2e9ec4c 906 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 907 // Declare the AnalogIn driver
whismanoid 0:cb44e2e9ec4c 908 // Optional analogIn support. If there is only one it should be analogIn1.
whismanoid 0:cb44e2e9ec4c 909 // A) analog input
whismanoid 0:cb44e2e9ec4c 910 #if defined(TARGET_MAX32630)
whismanoid 0:cb44e2e9ec4c 911 #define HAS_analogIn0 1
whismanoid 0:cb44e2e9ec4c 912 #define HAS_analogIn1 1
whismanoid 0:cb44e2e9ec4c 913 #define HAS_analogIn2 1
whismanoid 0:cb44e2e9ec4c 914 #define HAS_analogIn3 1
whismanoid 0:cb44e2e9ec4c 915 #define HAS_analogIn4 1
whismanoid 0:cb44e2e9ec4c 916 #define HAS_analogIn5 1
whismanoid 0:cb44e2e9ec4c 917 #define HAS_analogIn6 1
whismanoid 0:cb44e2e9ec4c 918 #define HAS_analogIn7 1
whismanoid 0:cb44e2e9ec4c 919 #define HAS_analogIn8 1
whismanoid 0:cb44e2e9ec4c 920 #define HAS_analogIn9 1
whismanoid 0:cb44e2e9ec4c 921 // #define HAS_analogIn10 0
whismanoid 0:cb44e2e9ec4c 922 // #define HAS_analogIn11 0
whismanoid 0:cb44e2e9ec4c 923 // #define HAS_analogIn12 0
whismanoid 0:cb44e2e9ec4c 924 // #define HAS_analogIn13 0
whismanoid 0:cb44e2e9ec4c 925 // #define HAS_analogIn14 0
whismanoid 0:cb44e2e9ec4c 926 // #define HAS_analogIn15 0
whismanoid 0:cb44e2e9ec4c 927 #if HAS_analogIn0
whismanoid 0:cb44e2e9ec4c 928 AnalogIn analogIn0(AIN_0); // TARGET_MAX32630 J1.5 AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 929 #endif
whismanoid 0:cb44e2e9ec4c 930 #if HAS_analogIn1
whismanoid 0:cb44e2e9ec4c 931 AnalogIn analogIn1(AIN_1); // TARGET_MAX32630 J1.6 AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 932 #endif
whismanoid 0:cb44e2e9ec4c 933 #if HAS_analogIn2
whismanoid 0:cb44e2e9ec4c 934 AnalogIn analogIn2(AIN_2); // TARGET_MAX32630 J1.7 AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 935 #endif
whismanoid 0:cb44e2e9ec4c 936 #if HAS_analogIn3
whismanoid 0:cb44e2e9ec4c 937 AnalogIn analogIn3(AIN_3); // TARGET_MAX32630 J1.8 AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 938 #endif
whismanoid 0:cb44e2e9ec4c 939 #if HAS_analogIn4
whismanoid 0:cb44e2e9ec4c 940 AnalogIn analogIn4(AIN_4); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 941 #endif
whismanoid 0:cb44e2e9ec4c 942 #if HAS_analogIn5
whismanoid 0:cb44e2e9ec4c 943 AnalogIn analogIn5(AIN_5); // TARGET_MAX32630 J1.6 AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 944 #endif
whismanoid 0:cb44e2e9ec4c 945 #if HAS_analogIn6
whismanoid 0:cb44e2e9ec4c 946 AnalogIn analogIn6(AIN_6); // TARGET_MAX32630 AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 947 #endif
whismanoid 0:cb44e2e9ec4c 948 #if HAS_analogIn7
whismanoid 0:cb44e2e9ec4c 949 AnalogIn analogIn7(AIN_7); // TARGET_MAX32630 AIN_7 = VDD18 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 950 #endif
whismanoid 0:cb44e2e9ec4c 951 #if HAS_analogIn8
whismanoid 0:cb44e2e9ec4c 952 AnalogIn analogIn8(AIN_8); // TARGET_MAX32630 AIN_8 = VDD12 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 953 #endif
whismanoid 0:cb44e2e9ec4c 954 #if HAS_analogIn9
whismanoid 0:cb44e2e9ec4c 955 AnalogIn analogIn9(AIN_9); // TARGET_MAX32630 AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 0:cb44e2e9ec4c 956 #endif
whismanoid 0:cb44e2e9ec4c 957 #if HAS_analogIn10
whismanoid 0:cb44e2e9ec4c 958 AnalogIn analogIn10(____); // TARGET_MAX32630 AIN_10 = x undefined?
whismanoid 0:cb44e2e9ec4c 959 #endif
whismanoid 0:cb44e2e9ec4c 960 #if HAS_analogIn11
whismanoid 0:cb44e2e9ec4c 961 AnalogIn analogIn11(____); // TARGET_MAX32630 AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 962 #endif
whismanoid 0:cb44e2e9ec4c 963 #if HAS_analogIn12
whismanoid 0:cb44e2e9ec4c 964 AnalogIn analogIn12(____); // TARGET_MAX32630 AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 965 #endif
whismanoid 0:cb44e2e9ec4c 966 #if HAS_analogIn13
whismanoid 0:cb44e2e9ec4c 967 AnalogIn analogIn13(____);
whismanoid 0:cb44e2e9ec4c 968 #endif
whismanoid 0:cb44e2e9ec4c 969 #if HAS_analogIn14
whismanoid 0:cb44e2e9ec4c 970 AnalogIn analogIn14(____);
whismanoid 0:cb44e2e9ec4c 971 #endif
whismanoid 0:cb44e2e9ec4c 972 #if HAS_analogIn15
whismanoid 0:cb44e2e9ec4c 973 AnalogIn analogIn15(____);
whismanoid 0:cb44e2e9ec4c 974 #endif
whismanoid 0:cb44e2e9ec4c 975 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 976 #elif defined(TARGET_MAX32625MBED)
whismanoid 0:cb44e2e9ec4c 977 #define HAS_analogIn0 1
whismanoid 0:cb44e2e9ec4c 978 #define HAS_analogIn1 1
whismanoid 0:cb44e2e9ec4c 979 #define HAS_analogIn2 1
whismanoid 0:cb44e2e9ec4c 980 #define HAS_analogIn3 1
whismanoid 0:cb44e2e9ec4c 981 #define HAS_analogIn4 1
whismanoid 0:cb44e2e9ec4c 982 #define HAS_analogIn5 1
whismanoid 0:cb44e2e9ec4c 983 #if HAS_analogIn0
whismanoid 0:cb44e2e9ec4c 984 AnalogIn analogIn0(AIN_0); // TARGET_MAX32630 J1.5 AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 985 #endif
whismanoid 0:cb44e2e9ec4c 986 #if HAS_analogIn1
whismanoid 0:cb44e2e9ec4c 987 AnalogIn analogIn1(AIN_1); // TARGET_MAX32630 J1.6 AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 988 #endif
whismanoid 0:cb44e2e9ec4c 989 #if HAS_analogIn2
whismanoid 0:cb44e2e9ec4c 990 AnalogIn analogIn2(AIN_2); // TARGET_MAX32630 J1.7 AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 991 #endif
whismanoid 0:cb44e2e9ec4c 992 #if HAS_analogIn3
whismanoid 0:cb44e2e9ec4c 993 AnalogIn analogIn3(AIN_3); // TARGET_MAX32630 J1.8 AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 994 #endif
whismanoid 0:cb44e2e9ec4c 995 #if HAS_analogIn4
whismanoid 0:cb44e2e9ec4c 996 AnalogIn analogIn4(AIN_4); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 997 #endif
whismanoid 0:cb44e2e9ec4c 998 #if HAS_analogIn5
whismanoid 0:cb44e2e9ec4c 999 AnalogIn analogIn5(AIN_5); // TARGET_MAX32630 J1.6 AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1000 #endif
whismanoid 0:cb44e2e9ec4c 1001 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 1002 #elif defined(TARGET_MAX32620FTHR)
whismanoid 0:cb44e2e9ec4c 1003 #warning "TARGET_MAX32620FTHR not previously tested; need to verify analogIn0..."
whismanoid 0:cb44e2e9ec4c 1004 #define HAS_analogIn0 1
whismanoid 0:cb44e2e9ec4c 1005 #define HAS_analogIn1 1
whismanoid 0:cb44e2e9ec4c 1006 #define HAS_analogIn2 1
whismanoid 0:cb44e2e9ec4c 1007 #define HAS_analogIn3 1
whismanoid 0:cb44e2e9ec4c 1008 #define HAS_analogIn4 1
whismanoid 0:cb44e2e9ec4c 1009 #define HAS_analogIn5 1
whismanoid 0:cb44e2e9ec4c 1010 #define HAS_analogIn6 1
whismanoid 0:cb44e2e9ec4c 1011 #define HAS_analogIn7 1
whismanoid 0:cb44e2e9ec4c 1012 #define HAS_analogIn8 1
whismanoid 0:cb44e2e9ec4c 1013 #define HAS_analogIn9 1
whismanoid 0:cb44e2e9ec4c 1014 // #define HAS_analogIn10 0
whismanoid 0:cb44e2e9ec4c 1015 // #define HAS_analogIn11 0
whismanoid 0:cb44e2e9ec4c 1016 // #define HAS_analogIn12 0
whismanoid 0:cb44e2e9ec4c 1017 // #define HAS_analogIn13 0
whismanoid 0:cb44e2e9ec4c 1018 // #define HAS_analogIn14 0
whismanoid 0:cb44e2e9ec4c 1019 // #define HAS_analogIn15 0
whismanoid 0:cb44e2e9ec4c 1020 #if HAS_analogIn0
whismanoid 0:cb44e2e9ec4c 1021 AnalogIn analogIn0(AIN_0); // TARGET_MAX32620FTHR J1.5 AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1022 #endif
whismanoid 0:cb44e2e9ec4c 1023 #if HAS_analogIn1
whismanoid 0:cb44e2e9ec4c 1024 AnalogIn analogIn1(AIN_1); // TARGET_MAX32620FTHR J1.6 AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1025 #endif
whismanoid 0:cb44e2e9ec4c 1026 #if HAS_analogIn2
whismanoid 0:cb44e2e9ec4c 1027 AnalogIn analogIn2(AIN_2); // TARGET_MAX32620FTHR J1.7 AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1028 #endif
whismanoid 0:cb44e2e9ec4c 1029 #if HAS_analogIn3
whismanoid 0:cb44e2e9ec4c 1030 AnalogIn analogIn3(AIN_3); // TARGET_MAX32620FTHR J1.8 AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1031 #endif
whismanoid 0:cb44e2e9ec4c 1032 #if HAS_analogIn4
whismanoid 0:cb44e2e9ec4c 1033 AnalogIn analogIn4(AIN_4); // TARGET_MAX32620FTHR J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1034 #endif
whismanoid 0:cb44e2e9ec4c 1035 #if HAS_analogIn5
whismanoid 0:cb44e2e9ec4c 1036 AnalogIn analogIn5(AIN_5); // TARGET_MAX32620FTHR J1.6 AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1037 #endif
whismanoid 0:cb44e2e9ec4c 1038 #if HAS_analogIn6
whismanoid 0:cb44e2e9ec4c 1039 AnalogIn analogIn6(AIN_6); // TARGET_MAX32620FTHR AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1040 #endif
whismanoid 0:cb44e2e9ec4c 1041 #if HAS_analogIn7
whismanoid 0:cb44e2e9ec4c 1042 AnalogIn analogIn7(AIN_7); // TARGET_MAX32620FTHR AIN_7 = VDD18 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1043 #endif
whismanoid 0:cb44e2e9ec4c 1044 #if HAS_analogIn8
whismanoid 0:cb44e2e9ec4c 1045 AnalogIn analogIn8(AIN_8); // TARGET_MAX32620FTHR AIN_8 = VDD12 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1046 #endif
whismanoid 0:cb44e2e9ec4c 1047 #if HAS_analogIn9
whismanoid 0:cb44e2e9ec4c 1048 AnalogIn analogIn9(AIN_9); // TARGET_MAX32620FTHR AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 0:cb44e2e9ec4c 1049 #endif
whismanoid 0:cb44e2e9ec4c 1050 #if HAS_analogIn10
whismanoid 0:cb44e2e9ec4c 1051 AnalogIn analogIn10(____); // TARGET_MAX32620FTHR AIN_10 = x undefined?
whismanoid 0:cb44e2e9ec4c 1052 #endif
whismanoid 0:cb44e2e9ec4c 1053 #if HAS_analogIn11
whismanoid 0:cb44e2e9ec4c 1054 AnalogIn analogIn11(____); // TARGET_MAX32620FTHR AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1055 #endif
whismanoid 0:cb44e2e9ec4c 1056 #if HAS_analogIn12
whismanoid 0:cb44e2e9ec4c 1057 AnalogIn analogIn12(____); // TARGET_MAX32620FTHR AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1058 #endif
whismanoid 0:cb44e2e9ec4c 1059 #if HAS_analogIn13
whismanoid 0:cb44e2e9ec4c 1060 AnalogIn analogIn13(____);
whismanoid 0:cb44e2e9ec4c 1061 #endif
whismanoid 0:cb44e2e9ec4c 1062 #if HAS_analogIn14
whismanoid 0:cb44e2e9ec4c 1063 AnalogIn analogIn14(____);
whismanoid 0:cb44e2e9ec4c 1064 #endif
whismanoid 0:cb44e2e9ec4c 1065 #if HAS_analogIn15
whismanoid 0:cb44e2e9ec4c 1066 AnalogIn analogIn15(____);
whismanoid 0:cb44e2e9ec4c 1067 #endif
whismanoid 0:cb44e2e9ec4c 1068 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 1069 #elif defined(TARGET_MAX32625PICO)
whismanoid 0:cb44e2e9ec4c 1070 #warning "TARGET_MAX32625PICO not previously tested; need to verify analogIn0..."
whismanoid 0:cb44e2e9ec4c 1071 #define HAS_analogIn0 1
whismanoid 0:cb44e2e9ec4c 1072 #define HAS_analogIn1 1
whismanoid 0:cb44e2e9ec4c 1073 #define HAS_analogIn2 1
whismanoid 0:cb44e2e9ec4c 1074 #define HAS_analogIn3 1
whismanoid 0:cb44e2e9ec4c 1075 #define HAS_analogIn4 1
whismanoid 0:cb44e2e9ec4c 1076 #define HAS_analogIn5 1
whismanoid 0:cb44e2e9ec4c 1077 #if HAS_analogIn0
whismanoid 0:cb44e2e9ec4c 1078 AnalogIn analogIn0(AIN_0); // TARGET_MAX32630 J1.5 AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1079 #endif
whismanoid 0:cb44e2e9ec4c 1080 #if HAS_analogIn1
whismanoid 0:cb44e2e9ec4c 1081 AnalogIn analogIn1(AIN_1); // TARGET_MAX32630 J1.6 AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1082 #endif
whismanoid 0:cb44e2e9ec4c 1083 #if HAS_analogIn2
whismanoid 0:cb44e2e9ec4c 1084 AnalogIn analogIn2(AIN_2); // TARGET_MAX32630 J1.7 AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1085 #endif
whismanoid 0:cb44e2e9ec4c 1086 #if HAS_analogIn3
whismanoid 0:cb44e2e9ec4c 1087 AnalogIn analogIn3(AIN_3); // TARGET_MAX32630 J1.8 AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1088 #endif
whismanoid 0:cb44e2e9ec4c 1089 #if HAS_analogIn4
whismanoid 0:cb44e2e9ec4c 1090 AnalogIn analogIn4(AIN_4); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1091 #endif
whismanoid 0:cb44e2e9ec4c 1092 #if HAS_analogIn5
whismanoid 0:cb44e2e9ec4c 1093 AnalogIn analogIn5(AIN_5); // TARGET_MAX32630 J1.6 AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1094 #endif
whismanoid 0:cb44e2e9ec4c 1095 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 1096 #elif defined(TARGET_MAX32600)
whismanoid 0:cb44e2e9ec4c 1097 #define HAS_analogIn0 1
whismanoid 0:cb44e2e9ec4c 1098 #define HAS_analogIn1 1
whismanoid 0:cb44e2e9ec4c 1099 #define HAS_analogIn2 1
whismanoid 0:cb44e2e9ec4c 1100 #define HAS_analogIn3 1
whismanoid 0:cb44e2e9ec4c 1101 #define HAS_analogIn4 1
whismanoid 0:cb44e2e9ec4c 1102 #define HAS_analogIn5 1
whismanoid 0:cb44e2e9ec4c 1103 #if HAS_analogIn0
whismanoid 0:cb44e2e9ec4c 1104 AnalogIn analogIn0(A0);
whismanoid 0:cb44e2e9ec4c 1105 #endif
whismanoid 0:cb44e2e9ec4c 1106 #if HAS_analogIn1
whismanoid 0:cb44e2e9ec4c 1107 AnalogIn analogIn1(A1);
whismanoid 0:cb44e2e9ec4c 1108 #endif
whismanoid 0:cb44e2e9ec4c 1109 #if HAS_analogIn2
whismanoid 0:cb44e2e9ec4c 1110 AnalogIn analogIn2(A2);
whismanoid 0:cb44e2e9ec4c 1111 #endif
whismanoid 0:cb44e2e9ec4c 1112 #if HAS_analogIn3
whismanoid 0:cb44e2e9ec4c 1113 AnalogIn analogIn3(A3);
whismanoid 0:cb44e2e9ec4c 1114 #endif
whismanoid 0:cb44e2e9ec4c 1115 #if HAS_analogIn4
whismanoid 0:cb44e2e9ec4c 1116 AnalogIn analogIn4(A4);
whismanoid 0:cb44e2e9ec4c 1117 #endif
whismanoid 0:cb44e2e9ec4c 1118 #if HAS_analogIn5
whismanoid 0:cb44e2e9ec4c 1119 AnalogIn analogIn5(A5);
whismanoid 0:cb44e2e9ec4c 1120 #endif
whismanoid 0:cb44e2e9ec4c 1121 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 1122 #elif defined(TARGET_NUCLEO_F446RE)
whismanoid 0:cb44e2e9ec4c 1123 #define HAS_analogIn0 1
whismanoid 0:cb44e2e9ec4c 1124 #define HAS_analogIn1 1
whismanoid 0:cb44e2e9ec4c 1125 #define HAS_analogIn2 1
whismanoid 0:cb44e2e9ec4c 1126 #define HAS_analogIn3 1
whismanoid 0:cb44e2e9ec4c 1127 #define HAS_analogIn4 1
whismanoid 0:cb44e2e9ec4c 1128 #define HAS_analogIn5 1
whismanoid 0:cb44e2e9ec4c 1129 #if HAS_analogIn0
whismanoid 0:cb44e2e9ec4c 1130 AnalogIn analogIn0(A0);
whismanoid 0:cb44e2e9ec4c 1131 #endif
whismanoid 0:cb44e2e9ec4c 1132 #if HAS_analogIn1
whismanoid 0:cb44e2e9ec4c 1133 AnalogIn analogIn1(A1);
whismanoid 0:cb44e2e9ec4c 1134 #endif
whismanoid 0:cb44e2e9ec4c 1135 #if HAS_analogIn2
whismanoid 0:cb44e2e9ec4c 1136 AnalogIn analogIn2(A2);
whismanoid 0:cb44e2e9ec4c 1137 #endif
whismanoid 0:cb44e2e9ec4c 1138 #if HAS_analogIn3
whismanoid 0:cb44e2e9ec4c 1139 AnalogIn analogIn3(A3);
whismanoid 0:cb44e2e9ec4c 1140 #endif
whismanoid 0:cb44e2e9ec4c 1141 #if HAS_analogIn4
whismanoid 0:cb44e2e9ec4c 1142 AnalogIn analogIn4(A4);
whismanoid 0:cb44e2e9ec4c 1143 #endif
whismanoid 0:cb44e2e9ec4c 1144 #if HAS_analogIn5
whismanoid 0:cb44e2e9ec4c 1145 AnalogIn analogIn5(A5);
whismanoid 0:cb44e2e9ec4c 1146 #endif
whismanoid 0:cb44e2e9ec4c 1147 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 1148 #elif defined(TARGET_NUCLEO_F401RE)
whismanoid 0:cb44e2e9ec4c 1149 #define HAS_analogIn0 1
whismanoid 0:cb44e2e9ec4c 1150 #define HAS_analogIn1 1
whismanoid 0:cb44e2e9ec4c 1151 #define HAS_analogIn2 1
whismanoid 0:cb44e2e9ec4c 1152 #define HAS_analogIn3 1
whismanoid 0:cb44e2e9ec4c 1153 #define HAS_analogIn4 1
whismanoid 0:cb44e2e9ec4c 1154 #define HAS_analogIn5 1
whismanoid 0:cb44e2e9ec4c 1155 #if HAS_analogIn0
whismanoid 0:cb44e2e9ec4c 1156 AnalogIn analogIn0(A0);
whismanoid 0:cb44e2e9ec4c 1157 #endif
whismanoid 0:cb44e2e9ec4c 1158 #if HAS_analogIn1
whismanoid 0:cb44e2e9ec4c 1159 AnalogIn analogIn1(A1);
whismanoid 0:cb44e2e9ec4c 1160 #endif
whismanoid 0:cb44e2e9ec4c 1161 #if HAS_analogIn2
whismanoid 0:cb44e2e9ec4c 1162 AnalogIn analogIn2(A2);
whismanoid 0:cb44e2e9ec4c 1163 #endif
whismanoid 0:cb44e2e9ec4c 1164 #if HAS_analogIn3
whismanoid 0:cb44e2e9ec4c 1165 AnalogIn analogIn3(A3);
whismanoid 0:cb44e2e9ec4c 1166 #endif
whismanoid 0:cb44e2e9ec4c 1167 #if HAS_analogIn4
whismanoid 0:cb44e2e9ec4c 1168 AnalogIn analogIn4(A4);
whismanoid 0:cb44e2e9ec4c 1169 #endif
whismanoid 0:cb44e2e9ec4c 1170 #if HAS_analogIn5
whismanoid 0:cb44e2e9ec4c 1171 AnalogIn analogIn5(A5);
whismanoid 0:cb44e2e9ec4c 1172 #endif
whismanoid 0:cb44e2e9ec4c 1173 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 1174 // TODO1: TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM
whismanoid 0:cb44e2e9ec4c 1175 #elif defined(TARGET_LPC1768)
whismanoid 0:cb44e2e9ec4c 1176 #define HAS_analogIn0 1
whismanoid 0:cb44e2e9ec4c 1177 #define HAS_analogIn1 1
whismanoid 0:cb44e2e9ec4c 1178 #define HAS_analogIn2 1
whismanoid 0:cb44e2e9ec4c 1179 #define HAS_analogIn3 1
whismanoid 0:cb44e2e9ec4c 1180 #define HAS_analogIn4 1
whismanoid 0:cb44e2e9ec4c 1181 #define HAS_analogIn5 1
whismanoid 0:cb44e2e9ec4c 1182 // #define HAS_analogIn6 1
whismanoid 0:cb44e2e9ec4c 1183 // #define HAS_analogIn7 1
whismanoid 0:cb44e2e9ec4c 1184 // #define HAS_analogIn8 1
whismanoid 0:cb44e2e9ec4c 1185 // #define HAS_analogIn9 1
whismanoid 0:cb44e2e9ec4c 1186 // #define HAS_analogIn10 1
whismanoid 0:cb44e2e9ec4c 1187 // #define HAS_analogIn11 1
whismanoid 0:cb44e2e9ec4c 1188 // #define HAS_analogIn12 1
whismanoid 0:cb44e2e9ec4c 1189 // #define HAS_analogIn13 1
whismanoid 0:cb44e2e9ec4c 1190 // #define HAS_analogIn14 1
whismanoid 0:cb44e2e9ec4c 1191 // #define HAS_analogIn15 1
whismanoid 0:cb44e2e9ec4c 1192 #if HAS_analogIn0
whismanoid 0:cb44e2e9ec4c 1193 AnalogIn analogIn0(p15); // TARGET_LPC1768 P0.23/AD0.0/I2SRX_CLK/CAP3.0
whismanoid 0:cb44e2e9ec4c 1194 #endif
whismanoid 0:cb44e2e9ec4c 1195 #if HAS_analogIn1
whismanoid 0:cb44e2e9ec4c 1196 AnalogIn analogIn1(p16); // TARGET_LPC1768 P0.24/AD0.1/I2SRX_WS/CAP3.1
whismanoid 0:cb44e2e9ec4c 1197 #endif
whismanoid 0:cb44e2e9ec4c 1198 #if HAS_analogIn2
whismanoid 0:cb44e2e9ec4c 1199 AnalogIn analogIn2(p17); // TARGET_LPC1768 P0.25/AD0.2/I2SRX_SDA/TXD3
whismanoid 0:cb44e2e9ec4c 1200 #endif
whismanoid 0:cb44e2e9ec4c 1201 #if HAS_analogIn3
whismanoid 0:cb44e2e9ec4c 1202 AnalogIn analogIn3(p18); // TARGET_LPC1768 P0.26/AD0.3/AOUT/RXD3
whismanoid 0:cb44e2e9ec4c 1203 #endif
whismanoid 0:cb44e2e9ec4c 1204 #if HAS_analogIn4
whismanoid 0:cb44e2e9ec4c 1205 AnalogIn analogIn4(p19); // TARGET_LPC1768 P1.30/VBUS/AD0.4
whismanoid 0:cb44e2e9ec4c 1206 #endif
whismanoid 0:cb44e2e9ec4c 1207 #if HAS_analogIn5
whismanoid 0:cb44e2e9ec4c 1208 AnalogIn analogIn5(p20); // TARGET_LPC1768 P1.31/SCK1/AD0.5
whismanoid 0:cb44e2e9ec4c 1209 #endif
whismanoid 0:cb44e2e9ec4c 1210 #if HAS_analogIn6
whismanoid 0:cb44e2e9ec4c 1211 AnalogIn analogIn6(____);
whismanoid 0:cb44e2e9ec4c 1212 #endif
whismanoid 0:cb44e2e9ec4c 1213 #if HAS_analogIn7
whismanoid 0:cb44e2e9ec4c 1214 AnalogIn analogIn7(____);
whismanoid 0:cb44e2e9ec4c 1215 #endif
whismanoid 0:cb44e2e9ec4c 1216 #if HAS_analogIn8
whismanoid 0:cb44e2e9ec4c 1217 AnalogIn analogIn8(____);
whismanoid 0:cb44e2e9ec4c 1218 #endif
whismanoid 0:cb44e2e9ec4c 1219 #if HAS_analogIn9
whismanoid 0:cb44e2e9ec4c 1220 AnalogIn analogIn9(____);
whismanoid 0:cb44e2e9ec4c 1221 #endif
whismanoid 0:cb44e2e9ec4c 1222 #if HAS_analogIn10
whismanoid 0:cb44e2e9ec4c 1223 AnalogIn analogIn10(____);
whismanoid 0:cb44e2e9ec4c 1224 #endif
whismanoid 0:cb44e2e9ec4c 1225 #if HAS_analogIn11
whismanoid 0:cb44e2e9ec4c 1226 AnalogIn analogIn11(____);
whismanoid 0:cb44e2e9ec4c 1227 #endif
whismanoid 0:cb44e2e9ec4c 1228 #if HAS_analogIn12
whismanoid 0:cb44e2e9ec4c 1229 AnalogIn analogIn12(____);
whismanoid 0:cb44e2e9ec4c 1230 #endif
whismanoid 0:cb44e2e9ec4c 1231 #if HAS_analogIn13
whismanoid 0:cb44e2e9ec4c 1232 AnalogIn analogIn13(____);
whismanoid 0:cb44e2e9ec4c 1233 #endif
whismanoid 0:cb44e2e9ec4c 1234 #if HAS_analogIn14
whismanoid 0:cb44e2e9ec4c 1235 AnalogIn analogIn14(____);
whismanoid 0:cb44e2e9ec4c 1236 #endif
whismanoid 0:cb44e2e9ec4c 1237 #if HAS_analogIn15
whismanoid 0:cb44e2e9ec4c 1238 AnalogIn analogIn15(____);
whismanoid 0:cb44e2e9ec4c 1239 #endif
whismanoid 0:cb44e2e9ec4c 1240 #else
whismanoid 0:cb44e2e9ec4c 1241 // unknown target
whismanoid 0:cb44e2e9ec4c 1242 #endif
whismanoid 0:cb44e2e9ec4c 1243 // uncrustify-0.66.1 *INDENT-ON*
whismanoid 0:cb44e2e9ec4c 1244 #if HAS_analogIn0 || HAS_analogIn1 \
whismanoid 0:cb44e2e9ec4c 1245 || HAS_analogIn2 || HAS_analogIn3 \
whismanoid 0:cb44e2e9ec4c 1246 || HAS_analogIn4 || HAS_analogIn5 \
whismanoid 0:cb44e2e9ec4c 1247 || HAS_analogIn6 || HAS_analogIn7 \
whismanoid 0:cb44e2e9ec4c 1248 || HAS_analogIn8 || HAS_analogIn9 \
whismanoid 0:cb44e2e9ec4c 1249 || HAS_analogIn10 || HAS_analogIn11 \
whismanoid 0:cb44e2e9ec4c 1250 || HAS_analogIn12 || HAS_analogIn13 \
whismanoid 0:cb44e2e9ec4c 1251 || HAS_analogIn14 || HAS_analogIn15
whismanoid 0:cb44e2e9ec4c 1252 #define HAS_analogIns 1
whismanoid 0:cb44e2e9ec4c 1253 #else
whismanoid 0:cb44e2e9ec4c 1254 #warning "Note: There are no analogIn resources defined"
whismanoid 0:cb44e2e9ec4c 1255 #endif
whismanoid 0:cb44e2e9ec4c 1256
whismanoid 0:cb44e2e9ec4c 1257 // DigitalInOut pin resource: print the pin index names to serial
whismanoid 0:cb44e2e9ec4c 1258 #if HAS_digitalInOuts
whismanoid 0:cb44e2e9ec4c 1259 void list_digitalInOutPins(Stream& serialStream)
whismanoid 0:cb44e2e9ec4c 1260 {
whismanoid 0:cb44e2e9ec4c 1261 #if HAS_digitalInOut0
whismanoid 0:cb44e2e9ec4c 1262 serialStream.printf(" 0");
whismanoid 0:cb44e2e9ec4c 1263 #endif
whismanoid 0:cb44e2e9ec4c 1264 #if HAS_digitalInOut1
whismanoid 0:cb44e2e9ec4c 1265 serialStream.printf(" 1");
whismanoid 0:cb44e2e9ec4c 1266 #endif
whismanoid 0:cb44e2e9ec4c 1267 #if HAS_digitalInOut2
whismanoid 0:cb44e2e9ec4c 1268 serialStream.printf(" 2");
whismanoid 0:cb44e2e9ec4c 1269 #endif
whismanoid 0:cb44e2e9ec4c 1270 #if HAS_digitalInOut3
whismanoid 0:cb44e2e9ec4c 1271 serialStream.printf(" 3");
whismanoid 0:cb44e2e9ec4c 1272 #endif
whismanoid 0:cb44e2e9ec4c 1273 #if HAS_digitalInOut4
whismanoid 0:cb44e2e9ec4c 1274 serialStream.printf(" 4");
whismanoid 0:cb44e2e9ec4c 1275 #endif
whismanoid 0:cb44e2e9ec4c 1276 #if HAS_digitalInOut5
whismanoid 0:cb44e2e9ec4c 1277 serialStream.printf(" 5");
whismanoid 0:cb44e2e9ec4c 1278 #endif
whismanoid 0:cb44e2e9ec4c 1279 #if HAS_digitalInOut6
whismanoid 0:cb44e2e9ec4c 1280 serialStream.printf(" 6");
whismanoid 0:cb44e2e9ec4c 1281 #endif
whismanoid 0:cb44e2e9ec4c 1282 #if HAS_digitalInOut7
whismanoid 0:cb44e2e9ec4c 1283 serialStream.printf(" 7");
whismanoid 0:cb44e2e9ec4c 1284 #endif
whismanoid 0:cb44e2e9ec4c 1285 #if HAS_digitalInOut8
whismanoid 0:cb44e2e9ec4c 1286 serialStream.printf(" 8");
whismanoid 0:cb44e2e9ec4c 1287 #endif
whismanoid 0:cb44e2e9ec4c 1288 #if HAS_digitalInOut9
whismanoid 0:cb44e2e9ec4c 1289 serialStream.printf(" 9");
whismanoid 0:cb44e2e9ec4c 1290 #endif
whismanoid 0:cb44e2e9ec4c 1291 #if HAS_digitalInOut10
whismanoid 0:cb44e2e9ec4c 1292 serialStream.printf(" 10");
whismanoid 0:cb44e2e9ec4c 1293 #endif
whismanoid 0:cb44e2e9ec4c 1294 #if HAS_digitalInOut11
whismanoid 0:cb44e2e9ec4c 1295 serialStream.printf(" 11");
whismanoid 0:cb44e2e9ec4c 1296 #endif
whismanoid 0:cb44e2e9ec4c 1297 #if HAS_digitalInOut12
whismanoid 0:cb44e2e9ec4c 1298 serialStream.printf(" 12");
whismanoid 0:cb44e2e9ec4c 1299 #endif
whismanoid 0:cb44e2e9ec4c 1300 #if HAS_digitalInOut13
whismanoid 0:cb44e2e9ec4c 1301 serialStream.printf(" 13");
whismanoid 0:cb44e2e9ec4c 1302 #endif
whismanoid 0:cb44e2e9ec4c 1303 #if HAS_digitalInOut14
whismanoid 0:cb44e2e9ec4c 1304 serialStream.printf(" 14");
whismanoid 0:cb44e2e9ec4c 1305 #endif
whismanoid 0:cb44e2e9ec4c 1306 #if HAS_digitalInOut15
whismanoid 0:cb44e2e9ec4c 1307 serialStream.printf(" 15");
whismanoid 0:cb44e2e9ec4c 1308 #endif
whismanoid 0:cb44e2e9ec4c 1309 #if HAS_digitalInOut16
whismanoid 0:cb44e2e9ec4c 1310 serialStream.printf(" 16");
whismanoid 0:cb44e2e9ec4c 1311 #endif
whismanoid 0:cb44e2e9ec4c 1312 #if HAS_digitalInOut17
whismanoid 0:cb44e2e9ec4c 1313 serialStream.printf(" 17");
whismanoid 0:cb44e2e9ec4c 1314 #endif
whismanoid 0:cb44e2e9ec4c 1315 }
whismanoid 0:cb44e2e9ec4c 1316 #endif
whismanoid 0:cb44e2e9ec4c 1317
whismanoid 0:cb44e2e9ec4c 1318
whismanoid 0:cb44e2e9ec4c 1319 // DigitalInOut pin resource: search index
whismanoid 0:cb44e2e9ec4c 1320 #if HAS_digitalInOuts
whismanoid 0:cb44e2e9ec4c 1321 DigitalInOut& find_digitalInOutPin(int cPinIndex)
whismanoid 0:cb44e2e9ec4c 1322 {
whismanoid 0:cb44e2e9ec4c 1323 switch (cPinIndex)
whismanoid 0:cb44e2e9ec4c 1324 {
whismanoid 0:cb44e2e9ec4c 1325 default: // default to the first defined digitalInOut pin
whismanoid 0:cb44e2e9ec4c 1326 #if HAS_digitalInOut0
whismanoid 0:cb44e2e9ec4c 1327 case '0': case 0x00: return digitalInOut0;
whismanoid 0:cb44e2e9ec4c 1328 #endif
whismanoid 0:cb44e2e9ec4c 1329 #if HAS_digitalInOut1
whismanoid 0:cb44e2e9ec4c 1330 case '1': case 0x01: return digitalInOut1;
whismanoid 0:cb44e2e9ec4c 1331 #endif
whismanoid 0:cb44e2e9ec4c 1332 #if HAS_digitalInOut2
whismanoid 0:cb44e2e9ec4c 1333 case '2': case 0x02: return digitalInOut2;
whismanoid 0:cb44e2e9ec4c 1334 #endif
whismanoid 0:cb44e2e9ec4c 1335 #if HAS_digitalInOut3
whismanoid 0:cb44e2e9ec4c 1336 case '3': case 0x03: return digitalInOut3;
whismanoid 0:cb44e2e9ec4c 1337 #endif
whismanoid 0:cb44e2e9ec4c 1338 #if HAS_digitalInOut4
whismanoid 0:cb44e2e9ec4c 1339 case '4': case 0x04: return digitalInOut4;
whismanoid 0:cb44e2e9ec4c 1340 #endif
whismanoid 0:cb44e2e9ec4c 1341 #if HAS_digitalInOut5
whismanoid 0:cb44e2e9ec4c 1342 case '5': case 0x05: return digitalInOut5;
whismanoid 0:cb44e2e9ec4c 1343 #endif
whismanoid 0:cb44e2e9ec4c 1344 #if HAS_digitalInOut6
whismanoid 0:cb44e2e9ec4c 1345 case '6': case 0x06: return digitalInOut6;
whismanoid 0:cb44e2e9ec4c 1346 #endif
whismanoid 0:cb44e2e9ec4c 1347 #if HAS_digitalInOut7
whismanoid 0:cb44e2e9ec4c 1348 case '7': case 0x07: return digitalInOut7;
whismanoid 0:cb44e2e9ec4c 1349 #endif
whismanoid 0:cb44e2e9ec4c 1350 #if HAS_digitalInOut8
whismanoid 0:cb44e2e9ec4c 1351 case '8': case 0x08: return digitalInOut8;
whismanoid 0:cb44e2e9ec4c 1352 #endif
whismanoid 0:cb44e2e9ec4c 1353 #if HAS_digitalInOut9
whismanoid 0:cb44e2e9ec4c 1354 case '9': case 0x09: return digitalInOut9;
whismanoid 0:cb44e2e9ec4c 1355 #endif
whismanoid 0:cb44e2e9ec4c 1356 #if HAS_digitalInOut10
whismanoid 0:cb44e2e9ec4c 1357 case 'a': case 0x0a: return digitalInOut10;
whismanoid 0:cb44e2e9ec4c 1358 #endif
whismanoid 0:cb44e2e9ec4c 1359 #if HAS_digitalInOut11
whismanoid 0:cb44e2e9ec4c 1360 case 'b': case 0x0b: return digitalInOut11;
whismanoid 0:cb44e2e9ec4c 1361 #endif
whismanoid 0:cb44e2e9ec4c 1362 #if HAS_digitalInOut12
whismanoid 0:cb44e2e9ec4c 1363 case 'c': case 0x0c: return digitalInOut12;
whismanoid 0:cb44e2e9ec4c 1364 #endif
whismanoid 0:cb44e2e9ec4c 1365 #if HAS_digitalInOut13
whismanoid 0:cb44e2e9ec4c 1366 case 'd': case 0x0d: return digitalInOut13;
whismanoid 0:cb44e2e9ec4c 1367 #endif
whismanoid 0:cb44e2e9ec4c 1368 #if HAS_digitalInOut14
whismanoid 0:cb44e2e9ec4c 1369 case 'e': case 0x0e: return digitalInOut14;
whismanoid 0:cb44e2e9ec4c 1370 #endif
whismanoid 0:cb44e2e9ec4c 1371 #if HAS_digitalInOut15
whismanoid 0:cb44e2e9ec4c 1372 case 'f': case 0x0f: return digitalInOut15;
whismanoid 0:cb44e2e9ec4c 1373 #endif
whismanoid 0:cb44e2e9ec4c 1374 #if HAS_digitalInOut16
whismanoid 0:cb44e2e9ec4c 1375 case 'g': case 0x10: return digitalInOut16;
whismanoid 0:cb44e2e9ec4c 1376 #endif
whismanoid 0:cb44e2e9ec4c 1377 #if HAS_digitalInOut17
whismanoid 0:cb44e2e9ec4c 1378 case 'h': case 0x11: return digitalInOut17;
whismanoid 0:cb44e2e9ec4c 1379 #endif
whismanoid 0:cb44e2e9ec4c 1380 }
whismanoid 0:cb44e2e9ec4c 1381 }
whismanoid 0:cb44e2e9ec4c 1382 #endif
whismanoid 0:cb44e2e9ec4c 1383
whismanoid 0:cb44e2e9ec4c 1384
whismanoid 0:cb44e2e9ec4c 1385 // AnalogIn pin resource: search index
whismanoid 0:cb44e2e9ec4c 1386 #if HAS_analogIns
whismanoid 0:cb44e2e9ec4c 1387 AnalogIn& find_analogInPin(int cPinIndex)
whismanoid 0:cb44e2e9ec4c 1388 {
whismanoid 0:cb44e2e9ec4c 1389 switch (cPinIndex)
whismanoid 0:cb44e2e9ec4c 1390 {
whismanoid 0:cb44e2e9ec4c 1391 default: // default to the first defined analogIn pin
whismanoid 0:cb44e2e9ec4c 1392 #if HAS_analogIn0
whismanoid 0:cb44e2e9ec4c 1393 case '0': case 0x00: return analogIn0;
whismanoid 0:cb44e2e9ec4c 1394 #endif
whismanoid 0:cb44e2e9ec4c 1395 #if HAS_analogIn1
whismanoid 0:cb44e2e9ec4c 1396 case '1': case 0x01: return analogIn1;
whismanoid 0:cb44e2e9ec4c 1397 #endif
whismanoid 0:cb44e2e9ec4c 1398 #if HAS_analogIn2
whismanoid 0:cb44e2e9ec4c 1399 case '2': case 0x02: return analogIn2;
whismanoid 0:cb44e2e9ec4c 1400 #endif
whismanoid 0:cb44e2e9ec4c 1401 #if HAS_analogIn3
whismanoid 0:cb44e2e9ec4c 1402 case '3': case 0x03: return analogIn3;
whismanoid 0:cb44e2e9ec4c 1403 #endif
whismanoid 0:cb44e2e9ec4c 1404 #if HAS_analogIn4
whismanoid 0:cb44e2e9ec4c 1405 case '4': case 0x04: return analogIn4;
whismanoid 0:cb44e2e9ec4c 1406 #endif
whismanoid 0:cb44e2e9ec4c 1407 #if HAS_analogIn5
whismanoid 0:cb44e2e9ec4c 1408 case '5': case 0x05: return analogIn5;
whismanoid 0:cb44e2e9ec4c 1409 #endif
whismanoid 0:cb44e2e9ec4c 1410 #if HAS_analogIn6
whismanoid 0:cb44e2e9ec4c 1411 case '6': case 0x06: return analogIn6;
whismanoid 0:cb44e2e9ec4c 1412 #endif
whismanoid 0:cb44e2e9ec4c 1413 #if HAS_analogIn7
whismanoid 0:cb44e2e9ec4c 1414 case '7': case 0x07: return analogIn7;
whismanoid 0:cb44e2e9ec4c 1415 #endif
whismanoid 0:cb44e2e9ec4c 1416 #if HAS_analogIn8
whismanoid 0:cb44e2e9ec4c 1417 case '8': case 0x08: return analogIn8;
whismanoid 0:cb44e2e9ec4c 1418 #endif
whismanoid 0:cb44e2e9ec4c 1419 #if HAS_analogIn9
whismanoid 0:cb44e2e9ec4c 1420 case '9': case 0x09: return analogIn9;
whismanoid 0:cb44e2e9ec4c 1421 #endif
whismanoid 0:cb44e2e9ec4c 1422 #if HAS_analogIn10
whismanoid 0:cb44e2e9ec4c 1423 case 'a': case 0x0a: return analogIn10;
whismanoid 0:cb44e2e9ec4c 1424 #endif
whismanoid 0:cb44e2e9ec4c 1425 #if HAS_analogIn11
whismanoid 0:cb44e2e9ec4c 1426 case 'b': case 0x0b: return analogIn11;
whismanoid 0:cb44e2e9ec4c 1427 #endif
whismanoid 0:cb44e2e9ec4c 1428 #if HAS_analogIn12
whismanoid 0:cb44e2e9ec4c 1429 case 'c': case 0x0c: return analogIn12;
whismanoid 0:cb44e2e9ec4c 1430 #endif
whismanoid 0:cb44e2e9ec4c 1431 #if HAS_analogIn13
whismanoid 0:cb44e2e9ec4c 1432 case 'd': case 0x0d: return analogIn13;
whismanoid 0:cb44e2e9ec4c 1433 #endif
whismanoid 0:cb44e2e9ec4c 1434 #if HAS_analogIn14
whismanoid 0:cb44e2e9ec4c 1435 case 'e': case 0x0e: return analogIn14;
whismanoid 0:cb44e2e9ec4c 1436 #endif
whismanoid 0:cb44e2e9ec4c 1437 #if HAS_analogIn15
whismanoid 0:cb44e2e9ec4c 1438 case 'f': case 0x0f: return analogIn15;
whismanoid 0:cb44e2e9ec4c 1439 #endif
whismanoid 0:cb44e2e9ec4c 1440 }
whismanoid 0:cb44e2e9ec4c 1441 }
whismanoid 0:cb44e2e9ec4c 1442 #endif
whismanoid 0:cb44e2e9ec4c 1443
whismanoid 0:cb44e2e9ec4c 1444 #if HAS_analogIns
whismanoid 0:cb44e2e9ec4c 1445 const float analogInPin_fullScaleVoltage[] = {
whismanoid 0:cb44e2e9ec4c 1446 # if defined(TARGET_MAX32630)
whismanoid 0:cb44e2e9ec4c 1447 ADC_FULL_SCALE_VOLTAGE, // analogIn0
whismanoid 0:cb44e2e9ec4c 1448 ADC_FULL_SCALE_VOLTAGE, // analogIn1
whismanoid 0:cb44e2e9ec4c 1449 ADC_FULL_SCALE_VOLTAGE, // analogIn2
whismanoid 0:cb44e2e9ec4c 1450 ADC_FULL_SCALE_VOLTAGE, // analogIn3
whismanoid 0:cb44e2e9ec4c 1451 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1452 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1453 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn6 // AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1454 ADC_FULL_SCALE_VOLTAGE, // analogIn7 // AIN_7 = VDD18 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1455 ADC_FULL_SCALE_VOLTAGE, // analogIn8 // AIN_8 = VDD12 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1456 ADC_FULL_SCALE_VOLTAGE * 2.0f, // analogIn9 // AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 0:cb44e2e9ec4c 1457 ADC_FULL_SCALE_VOLTAGE, // analogIn10 // AIN_10 = x undefined?
whismanoid 0:cb44e2e9ec4c 1458 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn11 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1459 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn12 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1460 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 0:cb44e2e9ec4c 1461 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 0:cb44e2e9ec4c 1462 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 0:cb44e2e9ec4c 1463 # elif defined(TARGET_MAX32620FTHR)
whismanoid 0:cb44e2e9ec4c 1464 #warning "TARGET_MAX32620FTHR not previously tested; need to verify analogIn0..."
whismanoid 0:cb44e2e9ec4c 1465 ADC_FULL_SCALE_VOLTAGE, // analogIn0
whismanoid 0:cb44e2e9ec4c 1466 ADC_FULL_SCALE_VOLTAGE, // analogIn1
whismanoid 0:cb44e2e9ec4c 1467 ADC_FULL_SCALE_VOLTAGE, // analogIn2
whismanoid 0:cb44e2e9ec4c 1468 ADC_FULL_SCALE_VOLTAGE, // analogIn3
whismanoid 0:cb44e2e9ec4c 1469 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1470 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1471 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn6 // AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1472 ADC_FULL_SCALE_VOLTAGE, // analogIn7 // AIN_7 = VDD18 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1473 ADC_FULL_SCALE_VOLTAGE, // analogIn8 // AIN_8 = VDD12 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1474 ADC_FULL_SCALE_VOLTAGE * 2.0f, // analogIn9 // AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 0:cb44e2e9ec4c 1475 ADC_FULL_SCALE_VOLTAGE, // analogIn10 // AIN_10 = x undefined?
whismanoid 0:cb44e2e9ec4c 1476 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn11 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1477 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn12 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1478 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 0:cb44e2e9ec4c 1479 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 0:cb44e2e9ec4c 1480 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 0:cb44e2e9ec4c 1481 #elif defined(TARGET_MAX32625MBED) || defined(TARGET_MAX32625PICO)
whismanoid 0:cb44e2e9ec4c 1482 ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn0 // fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1483 ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn1 // fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1484 ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn2 // fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1485 ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn3 // fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1486 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1487 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 0:cb44e2e9ec4c 1488 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn6 // AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1489 ADC_FULL_SCALE_VOLTAGE, // analogIn7 // AIN_7 = VDD18 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1490 ADC_FULL_SCALE_VOLTAGE, // analogIn8 // AIN_8 = VDD12 fullscale is 1.2V
whismanoid 0:cb44e2e9ec4c 1491 ADC_FULL_SCALE_VOLTAGE * 2.0f, // analogIn9 // AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 0:cb44e2e9ec4c 1492 ADC_FULL_SCALE_VOLTAGE, // analogIn10 // AIN_10 = x undefined?
whismanoid 0:cb44e2e9ec4c 1493 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn11 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1494 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn12 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 0:cb44e2e9ec4c 1495 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 0:cb44e2e9ec4c 1496 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 0:cb44e2e9ec4c 1497 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 0:cb44e2e9ec4c 1498 #elif defined(TARGET_NUCLEO_F446RE)
whismanoid 0:cb44e2e9ec4c 1499 ADC_FULL_SCALE_VOLTAGE, // analogIn0
whismanoid 0:cb44e2e9ec4c 1500 ADC_FULL_SCALE_VOLTAGE, // analogIn1
whismanoid 0:cb44e2e9ec4c 1501 ADC_FULL_SCALE_VOLTAGE, // analogIn2
whismanoid 0:cb44e2e9ec4c 1502 ADC_FULL_SCALE_VOLTAGE, // analogIn3
whismanoid 0:cb44e2e9ec4c 1503 ADC_FULL_SCALE_VOLTAGE, // analogIn4
whismanoid 0:cb44e2e9ec4c 1504 ADC_FULL_SCALE_VOLTAGE, // analogIn5
whismanoid 0:cb44e2e9ec4c 1505 ADC_FULL_SCALE_VOLTAGE, // analogIn6
whismanoid 0:cb44e2e9ec4c 1506 ADC_FULL_SCALE_VOLTAGE, // analogIn7
whismanoid 0:cb44e2e9ec4c 1507 ADC_FULL_SCALE_VOLTAGE, // analogIn8
whismanoid 0:cb44e2e9ec4c 1508 ADC_FULL_SCALE_VOLTAGE, // analogIn9
whismanoid 0:cb44e2e9ec4c 1509 ADC_FULL_SCALE_VOLTAGE, // analogIn10
whismanoid 0:cb44e2e9ec4c 1510 ADC_FULL_SCALE_VOLTAGE, // analogIn11
whismanoid 0:cb44e2e9ec4c 1511 ADC_FULL_SCALE_VOLTAGE, // analogIn12
whismanoid 0:cb44e2e9ec4c 1512 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 0:cb44e2e9ec4c 1513 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 0:cb44e2e9ec4c 1514 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 0:cb44e2e9ec4c 1515 #elif defined(TARGET_NUCLEO_F401RE)
whismanoid 0:cb44e2e9ec4c 1516 ADC_FULL_SCALE_VOLTAGE, // analogIn0
whismanoid 0:cb44e2e9ec4c 1517 ADC_FULL_SCALE_VOLTAGE, // analogIn1
whismanoid 0:cb44e2e9ec4c 1518 ADC_FULL_SCALE_VOLTAGE, // analogIn2
whismanoid 0:cb44e2e9ec4c 1519 ADC_FULL_SCALE_VOLTAGE, // analogIn3
whismanoid 0:cb44e2e9ec4c 1520 ADC_FULL_SCALE_VOLTAGE, // analogIn4
whismanoid 0:cb44e2e9ec4c 1521 ADC_FULL_SCALE_VOLTAGE, // analogIn5
whismanoid 0:cb44e2e9ec4c 1522 ADC_FULL_SCALE_VOLTAGE, // analogIn6
whismanoid 0:cb44e2e9ec4c 1523 ADC_FULL_SCALE_VOLTAGE, // analogIn7
whismanoid 0:cb44e2e9ec4c 1524 ADC_FULL_SCALE_VOLTAGE, // analogIn8
whismanoid 0:cb44e2e9ec4c 1525 ADC_FULL_SCALE_VOLTAGE, // analogIn9
whismanoid 0:cb44e2e9ec4c 1526 ADC_FULL_SCALE_VOLTAGE, // analogIn10
whismanoid 0:cb44e2e9ec4c 1527 ADC_FULL_SCALE_VOLTAGE, // analogIn11
whismanoid 0:cb44e2e9ec4c 1528 ADC_FULL_SCALE_VOLTAGE, // analogIn12
whismanoid 0:cb44e2e9ec4c 1529 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 0:cb44e2e9ec4c 1530 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 0:cb44e2e9ec4c 1531 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 0:cb44e2e9ec4c 1532 //#elif defined(TARGET_LPC1768)
whismanoid 0:cb44e2e9ec4c 1533 #else
whismanoid 0:cb44e2e9ec4c 1534 // unknown target
whismanoid 0:cb44e2e9ec4c 1535 ADC_FULL_SCALE_VOLTAGE, // analogIn0
whismanoid 0:cb44e2e9ec4c 1536 ADC_FULL_SCALE_VOLTAGE, // analogIn1
whismanoid 0:cb44e2e9ec4c 1537 ADC_FULL_SCALE_VOLTAGE, // analogIn2
whismanoid 0:cb44e2e9ec4c 1538 ADC_FULL_SCALE_VOLTAGE, // analogIn3
whismanoid 0:cb44e2e9ec4c 1539 ADC_FULL_SCALE_VOLTAGE, // analogIn4
whismanoid 0:cb44e2e9ec4c 1540 ADC_FULL_SCALE_VOLTAGE, // analogIn5
whismanoid 0:cb44e2e9ec4c 1541 ADC_FULL_SCALE_VOLTAGE, // analogIn6
whismanoid 0:cb44e2e9ec4c 1542 ADC_FULL_SCALE_VOLTAGE, // analogIn7
whismanoid 0:cb44e2e9ec4c 1543 ADC_FULL_SCALE_VOLTAGE, // analogIn8
whismanoid 0:cb44e2e9ec4c 1544 ADC_FULL_SCALE_VOLTAGE, // analogIn9
whismanoid 0:cb44e2e9ec4c 1545 ADC_FULL_SCALE_VOLTAGE, // analogIn10
whismanoid 0:cb44e2e9ec4c 1546 ADC_FULL_SCALE_VOLTAGE, // analogIn11
whismanoid 0:cb44e2e9ec4c 1547 ADC_FULL_SCALE_VOLTAGE, // analogIn12
whismanoid 0:cb44e2e9ec4c 1548 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 0:cb44e2e9ec4c 1549 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 0:cb44e2e9ec4c 1550 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 0:cb44e2e9ec4c 1551 # endif
whismanoid 0:cb44e2e9ec4c 1552 };
whismanoid 0:cb44e2e9ec4c 1553 #endif
whismanoid 0:cb44e2e9ec4c 1554
whismanoid 0:cb44e2e9ec4c 1555
whismanoid 0:cb44e2e9ec4c 1556
whismanoid 0:cb44e2e9ec4c 1557
whismanoid 0:cb44e2e9ec4c 1558 //--------------------------------------------------
whismanoid 4:d9b05924ad4c 1559 // TODO support CmdLine command menus (like on Serial_Tester)
whismanoid 4:d9b05924ad4c 1560 #ifndef USE_CMDLINE_MENUS
whismanoid 4:d9b05924ad4c 1561 #define USE_CMDLINE_MENUS 1
whismanoid 4:d9b05924ad4c 1562 //~ #undef USE_CMDLINE_MENUS
whismanoid 4:d9b05924ad4c 1563 #endif
whismanoid 4:d9b05924ad4c 1564 #if USE_CMDLINE_MENUS // support CmdLine command menus
whismanoid 4:d9b05924ad4c 1565 #include "CmdLine.h"
whismanoid 4:d9b05924ad4c 1566 #endif // USE_CMDLINE_MENUS support CmdLine command menus
whismanoid 4:d9b05924ad4c 1567 #if USE_CMDLINE_MENUS // support CmdLine command menus
whismanoid 4:d9b05924ad4c 1568 extern CmdLine cmdLine; // declared later
whismanoid 4:d9b05924ad4c 1569 #endif // USE_CMDLINE_MENUS support CmdLine command menus
whismanoid 4:d9b05924ad4c 1570
whismanoid 4:d9b05924ad4c 1571 //--------------------------------------------------
whismanoid 4:d9b05924ad4c 1572 // Datalog trigger types
whismanoid 4:d9b05924ad4c 1573 #ifndef USE_DATALOGGER_TRIGGER
whismanoid 4:d9b05924ad4c 1574 #define USE_DATALOGGER_TRIGGER 1
whismanoid 4:d9b05924ad4c 1575 //~ #undef USE_DATALOGGER_TRIGGER
whismanoid 4:d9b05924ad4c 1576 #endif
whismanoid 4:d9b05924ad4c 1577 #if USE_DATALOGGER_TRIGGER // support Datalog trigger
whismanoid 4:d9b05924ad4c 1578 typedef enum Datalogger_Trigger_enum_t {
whismanoid 4:d9b05924ad4c 1579 trigger_Halt = 0, //!< halt
whismanoid 4:d9b05924ad4c 1580 trigger_FreeRun = 1, //!< free run as fast as possible
whismanoid 4:d9b05924ad4c 1581 trigger_Timer = 2, //!< timer (configure interval)
whismanoid 4:d9b05924ad4c 1582 trigger_PlatformDigitalInput, //!< platform digital input (configure digital input pin reference)
whismanoid 4:d9b05924ad4c 1583 trigger_SPIDeviceRegRead, //!< SPI device register read (configure regaddr, mask value, match value)
whismanoid 4:d9b05924ad4c 1584 } Datalogger_Trigger_enum_t;
whismanoid 4:d9b05924ad4c 1585 Datalogger_Trigger_enum_t Datalogger_Trigger = trigger_FreeRun;
whismanoid 4:d9b05924ad4c 1586 #endif // USE_DATALOGGER_TRIGGER support Datalog trigger
whismanoid 4:d9b05924ad4c 1587
whismanoid 4:d9b05924ad4c 1588 //--------------------------------------------------
whismanoid 4:d9b05924ad4c 1589 // print column header banner for csv data columns
whismanoid 4:d9b05924ad4c 1590 void Datalogger_PrintHeader();
whismanoid 5:aaf8b5f5fda1 1591 void Datalogger_AcquireRow();
whismanoid 5:aaf8b5f5fda1 1592 void Datalogger_PrintRow();
whismanoid 4:d9b05924ad4c 1593
whismanoid 4:d9b05924ad4c 1594 //--------------------------------------------------
whismanoid 0:cb44e2e9ec4c 1595 // Option to validate SPI link by reading PART_ID register
whismanoid 0:cb44e2e9ec4c 1596 #ifndef VERIFY_PART_ID_IN_LOOP
whismanoid 3:9055e17e181a 1597 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 3:9055e17e181a 1598 #define VERIFY_PART_ID_IN_LOOP 1
whismanoid 3:9055e17e181a 1599 #else
whismanoid 0:cb44e2e9ec4c 1600 #define VERIFY_PART_ID_IN_LOOP 0
whismanoid 3:9055e17e181a 1601 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 0:cb44e2e9ec4c 1602 #endif
whismanoid 0:cb44e2e9ec4c 1603
whismanoid 3:9055e17e181a 1604 //--------------------------------------------------
whismanoid 3:9055e17e181a 1605 #define NUM_DUT_ANALOG_IN_CHANNELS 10
whismanoid 3:9055e17e181a 1606
whismanoid 3:9055e17e181a 1607 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 3:9055e17e181a 1608 // MAX11410 individual channels 1=LSB, 2=Volt, 0=Disabled
whismanoid 3:9055e17e181a 1609 typedef enum SPI_AIN_Enable_t {
whismanoid 3:9055e17e181a 1610 Disable = 0,
whismanoid 3:9055e17e181a 1611 Enable_LSB = 1,
whismanoid 3:9055e17e181a 1612 Enable_Volt = 2,
whismanoid 3:9055e17e181a 1613 } SPI_AIN_Enable_t;
whismanoid 3:9055e17e181a 1614 uint8_t SPI_AIN_Enable_ch[NUM_DUT_ANALOG_IN_CHANNELS] = {
whismanoid 3:9055e17e181a 1615 Enable_LSB, // AIN0 1=LSB
whismanoid 3:9055e17e181a 1616 Enable_LSB, // AIN1 1=LSB
whismanoid 3:9055e17e181a 1617 Enable_LSB, // AIN2 1=LSB
whismanoid 3:9055e17e181a 1618 Enable_LSB, // AIN3 1=LSB
whismanoid 3:9055e17e181a 1619 Enable_LSB, // AIN4 1=LSB
whismanoid 3:9055e17e181a 1620 Enable_LSB, // AIN5 1=LSB
whismanoid 3:9055e17e181a 1621 Enable_LSB, // AIN6 1=LSB
whismanoid 3:9055e17e181a 1622 Enable_LSB, // AIN7 1=LSB
whismanoid 3:9055e17e181a 1623 Enable_LSB, // AIN8 1=LSB
whismanoid 3:9055e17e181a 1624 Enable_LSB, // AIN9 1=LSB
whismanoid 3:9055e17e181a 1625 };
whismanoid 3:9055e17e181a 1626 //
whismanoid 3:9055e17e181a 1627 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 0:cb44e2e9ec4c 1628 // ---------- Measure_Voltage_custom_props in Measure_Voltage @pre and in class properties ----------
whismanoid 3:9055e17e181a 1629 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 4:d9b05924ad4c 1630 // MAX11410 specific per-channel config register v_filter
whismanoid 3:9055e17e181a 1631 uint8_t SPI_AIN_Cfg_v_filter_ch[NUM_DUT_ANALOG_IN_CHANNELS] = {
whismanoid 3:9055e17e181a 1632 0x34, // AIN0 @ v_filter=0x34
whismanoid 3:9055e17e181a 1633 0x34, // AIN1 @ v_filter=0x34
whismanoid 3:9055e17e181a 1634 0x34, // AIN2 @ v_filter=0x34
whismanoid 3:9055e17e181a 1635 0x34, // AIN3 @ v_filter=0x34
whismanoid 3:9055e17e181a 1636 0x34, // AIN4 @ v_filter=0x34
whismanoid 3:9055e17e181a 1637 0x34, // AIN5 @ v_filter=0x34
whismanoid 3:9055e17e181a 1638 0x34, // AIN6 @ v_filter=0x34
whismanoid 3:9055e17e181a 1639 0x34, // AIN7 @ v_filter=0x34
whismanoid 3:9055e17e181a 1640 0x34, // AIN8 @ v_filter=0x34
whismanoid 3:9055e17e181a 1641 0x34, // AIN9 @ v_filter=0x34
whismanoid 3:9055e17e181a 1642 };
whismanoid 3:9055e17e181a 1643 //
whismanoid 4:d9b05924ad4c 1644 // MAX11410 specific per-channel config register v_ctrl
whismanoid 3:9055e17e181a 1645 uint8_t SPI_AIN_Cfg_v_ctrl_ch[NUM_DUT_ANALOG_IN_CHANNELS] = {
whismanoid 3:9055e17e181a 1646 0x42, // AIN0 @ v_ctrl=0x42
whismanoid 3:9055e17e181a 1647 0x42, // AIN1 @ v_ctrl=0x42
whismanoid 3:9055e17e181a 1648 0x42, // AIN2 @ v_ctrl=0x42
whismanoid 3:9055e17e181a 1649 0x42, // AIN3 @ v_ctrl=0x42
whismanoid 3:9055e17e181a 1650 0x42, // AIN4 @ v_ctrl=0x42
whismanoid 3:9055e17e181a 1651 0x42, // AIN5 @ v_ctrl=0x42
whismanoid 3:9055e17e181a 1652 0x42, // AIN6 @ v_ctrl=0x42
whismanoid 3:9055e17e181a 1653 0x42, // AIN7 @ v_ctrl=0x42
whismanoid 3:9055e17e181a 1654 0x42, // AIN8 @ v_ctrl=0x42
whismanoid 3:9055e17e181a 1655 0x42, // AIN9 @ v_ctrl=0x42
whismanoid 3:9055e17e181a 1656 };
whismanoid 3:9055e17e181a 1657 //
whismanoid 4:d9b05924ad4c 1658 // MAX11410 specific per-channel config register v_pga
whismanoid 3:9055e17e181a 1659 uint8_t SPI_AIN_Cfg_v_pga_ch[NUM_DUT_ANALOG_IN_CHANNELS] = {
whismanoid 3:9055e17e181a 1660 0x00, // AIN0 @ v_pga=0x00
whismanoid 3:9055e17e181a 1661 0x00, // AIN1 @ v_pga=0x00
whismanoid 3:9055e17e181a 1662 0x00, // AIN2 @ v_pga=0x00
whismanoid 3:9055e17e181a 1663 0x00, // AIN3 @ v_pga=0x00
whismanoid 3:9055e17e181a 1664 0x00, // AIN4 @ v_pga=0x00
whismanoid 3:9055e17e181a 1665 0x00, // AIN5 @ v_pga=0x00
whismanoid 3:9055e17e181a 1666 0x00, // AIN6 @ v_pga=0x00
whismanoid 3:9055e17e181a 1667 0x00, // AIN7 @ v_pga=0x00
whismanoid 3:9055e17e181a 1668 0x00, // AIN8 @ v_pga=0x00
whismanoid 3:9055e17e181a 1669 0x00, // AIN9 @ v_pga=0x00
whismanoid 3:9055e17e181a 1670 };
whismanoid 3:9055e17e181a 1671 //
whismanoid 3:9055e17e181a 1672 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 0:cb44e2e9ec4c 1673 // ---------- Measure_Voltage_custom_props ----------
whismanoid 0:cb44e2e9ec4c 1674 // ---------- CUSTOMIZED from MAX11410_Hello after g_MAX11410_device.Init() ----------
whismanoid 0:cb44e2e9ec4c 1675 // filter register configuration in Measure_Voltage and Read_All_Voltages CONV_TYPE_01_Continuous
whismanoid 0:cb44e2e9ec4c 1676 //~ const uint8_t custom_v_filter = 0x34; // @ v_filter=0x34 --*LINEF_11_SINC4 RATE_0100 | 60SPS
whismanoid 0:cb44e2e9ec4c 1677 //~ const uint8_t custom_v_filter = 0x00; // @ v_filter=0x00 -- LINEF_00_50Hz_60Hz_FIR RATE_0000 | 1.1SPS
whismanoid 0:cb44e2e9ec4c 1678 //~ const uint8_t custom_v_filter = 0x01; // @ v_filter=0x01 -- LINEF_00_50Hz_60Hz_FIR RATE_0001 | 2.1SPS
whismanoid 0:cb44e2e9ec4c 1679 //~ const uint8_t custom_v_filter = 0x02; // @ v_filter=0x02 -- LINEF_00_50Hz_60Hz_FIR RATE_0010 | 4.2SPS
whismanoid 0:cb44e2e9ec4c 1680 //~ const uint8_t custom_v_filter = 0x03; // @ v_filter=0x03 -- LINEF_00_50Hz_60Hz_FIR RATE_0011 | 8.4SPS
whismanoid 0:cb44e2e9ec4c 1681 //~ const uint8_t custom_v_filter = 0x04; // @ v_filter=0x04 -- LINEF_00_50Hz_60Hz_FIR RATE_0100 | 16.8SPS
whismanoid 0:cb44e2e9ec4c 1682 //~ const uint8_t custom_v_filter = 0x10; // @ v_filter=0x10 -- LINEF_01_50Hz_FIR RATE_0000 | 1.3SPS
whismanoid 0:cb44e2e9ec4c 1683 //~ const uint8_t custom_v_filter = 0x11; // @ v_filter=0x11 -- LINEF_01_50Hz_FIR RATE_0001 | 2.7SPS
whismanoid 0:cb44e2e9ec4c 1684 //~ const uint8_t custom_v_filter = 0x12; // @ v_filter=0x12 -- LINEF_01_50Hz_FIR RATE_0010 | 5.3SPS
whismanoid 0:cb44e2e9ec4c 1685 //~ const uint8_t custom_v_filter = 0x13; // @ v_filter=0x13 -- LINEF_01_50Hz_FIR RATE_0011 | 10.7SPS
whismanoid 0:cb44e2e9ec4c 1686 //~ const uint8_t custom_v_filter = 0x14; // @ v_filter=0x14 -- LINEF_01_50Hz_FIR RATE_0100 | 21.3SPS
whismanoid 0:cb44e2e9ec4c 1687 //~ const uint8_t custom_v_filter = 0x15; // @ v_filter=0x15 -- LINEF_01_50Hz_FIR RATE_0101 | 40.0SPS
whismanoid 0:cb44e2e9ec4c 1688 //~ const uint8_t custom_v_filter = 0x20; // @ v_filter=0x20 -- LINEF_10_60Hz_FIR RATE_0000 | 1.3SPS
whismanoid 0:cb44e2e9ec4c 1689 //~ const uint8_t custom_v_filter = 0x21; // @ v_filter=0x21 -- LINEF_10_60Hz_FIR RATE_0001 | 2.7SPS
whismanoid 0:cb44e2e9ec4c 1690 //~ const uint8_t custom_v_filter = 0x22; // @ v_filter=0x22 -- LINEF_10_60Hz_FIR RATE_0010 | 5.3SPS
whismanoid 0:cb44e2e9ec4c 1691 //~ const uint8_t custom_v_filter = 0x23; // @ v_filter=0x23 -- LINEF_10_60Hz_FIR RATE_0011 | 10.7SPS
whismanoid 0:cb44e2e9ec4c 1692 //~ const uint8_t custom_v_filter = 0x24; // @ v_filter=0x24 -- LINEF_10_60Hz_FIR RATE_0100 | 21.3SPS
whismanoid 0:cb44e2e9ec4c 1693 //~ const uint8_t custom_v_filter = 0x25; // @ v_filter=0x25 -- LINEF_10_60Hz_FIR RATE_0101 | 40.0SPS
whismanoid 0:cb44e2e9ec4c 1694 //~ const uint8_t custom_v_filter = 0x30; // @ v_filter=0x30 -- LINEF_11_SINC4 RATE_0000 | 4SPS
whismanoid 0:cb44e2e9ec4c 1695 //~ const uint8_t custom_v_filter = 0x31; // @ v_filter=0x31 -- LINEF_11_SINC4 RATE_0001 | 10SPS
whismanoid 0:cb44e2e9ec4c 1696 //~ const uint8_t custom_v_filter = 0x32; // @ v_filter=0x32 -- LINEF_11_SINC4 RATE_0010 | 20SPS
whismanoid 0:cb44e2e9ec4c 1697 //~ const uint8_t custom_v_filter = 0x33; // @ v_filter=0x33 -- LINEF_11_SINC4 RATE_0011 | 40SPS
whismanoid 0:cb44e2e9ec4c 1698 //~ const uint8_t custom_v_filter = 0x34; // @ v_filter=0x34 --*LINEF_11_SINC4 RATE_0100 | 60SPS
whismanoid 0:cb44e2e9ec4c 1699 //~ const uint8_t custom_v_filter = 0x35; // @ v_filter=0x35 -- LINEF_11_SINC4 RATE_0101 | 120SPS
whismanoid 0:cb44e2e9ec4c 1700 //~ const uint8_t custom_v_filter = 0x36; // @ v_filter=0x36 -- LINEF_11_SINC4 RATE_0110 | 240SPS
whismanoid 0:cb44e2e9ec4c 1701 //~ const uint8_t custom_v_filter = 0x37; // @ v_filter=0x37 -- LINEF_11_SINC4 RATE_0111 | 480SPS
whismanoid 0:cb44e2e9ec4c 1702 //~ const uint8_t custom_v_filter = 0x38; // @ v_filter=0x38 -- LINEF_11_SINC4 RATE_1000 | 960SPS
whismanoid 0:cb44e2e9ec4c 1703 //~ const uint8_t custom_v_filter = 0x39; // @ v_filter=0x39 -- LINEF_11_SINC4 RATE_1001 | 1920SPS
whismanoid 0:cb44e2e9ec4c 1704 // ---------- CUSTOMIZED from MAX11410_Hello ----------
whismanoid 0:cb44e2e9ec4c 1705 //
whismanoid 0:cb44e2e9ec4c 1706 // ---------- CUSTOMIZED from MAX11410_Hello after g_MAX11410_device.Init() ----------
whismanoid 0:cb44e2e9ec4c 1707 // pga register configuration in Measure_Voltage and Read_All_Voltages
whismanoid 0:cb44e2e9ec4c 1708 //~ const uint8_t custom_v_pga = 0x00; // @ v_pga=0x00 -- 0x00 SIG_PATH_00_BUFFERED
whismanoid 0:cb44e2e9ec4c 1709 //~ const uint8_t custom_v_pga = 0x00; // @ v_pga=0x00 -- 0x00 SIG_PATH_00_BUFFERED
whismanoid 0:cb44e2e9ec4c 1710 //~ const uint8_t custom_v_pga = 0x10; // @ v_pga=0x10 -- 0x10 SIG_PATH_01_BYPASS
whismanoid 0:cb44e2e9ec4c 1711 //~ const uint8_t custom_v_pga = 0x20; // @ v_pga=0x20 -- 0x20 SIG_PATH_10_PGA GAIN_000_1
whismanoid 0:cb44e2e9ec4c 1712 //~ const uint8_t custom_v_pga = 0x21; // @ v_pga=0x21 --*0x21 SIG_PATH_10_PGA GAIN_001_2
whismanoid 0:cb44e2e9ec4c 1713 //~ const uint8_t custom_v_pga = 0x22; // @ v_pga=0x22 -- 0x22 SIG_PATH_10_PGA GAIN_010_4
whismanoid 0:cb44e2e9ec4c 1714 //~ const uint8_t custom_v_pga = 0x23; // @ v_pga=0x23 -- 0x23 SIG_PATH_10_PGA GAIN_011_8
whismanoid 0:cb44e2e9ec4c 1715 //~ const uint8_t custom_v_pga = 0x24; // @ v_pga=0x24 -- 0x24 SIG_PATH_10_PGA GAIN_100_16
whismanoid 0:cb44e2e9ec4c 1716 //~ const uint8_t custom_v_pga = 0x25; // @ v_pga=0x25 -- 0x25 SIG_PATH_10_PGA GAIN_101_32
whismanoid 0:cb44e2e9ec4c 1717 //~ const uint8_t custom_v_pga = 0x26; // @ v_pga=0x26 -- 0x26 SIG_PATH_10_PGA GAIN_110_64
whismanoid 0:cb44e2e9ec4c 1718 //~ const uint8_t custom_v_pga = 0x27; // @ v_pga=0x27 -- 0x27 SIG_PATH_10_PGA GAIN_111_128
whismanoid 0:cb44e2e9ec4c 1719 // ---------- CUSTOMIZED from MAX11410_Hello ----------
whismanoid 0:cb44e2e9ec4c 1720 //
whismanoid 0:cb44e2e9ec4c 1721 // ---------- CUSTOMIZED from MAX11410_Hello after g_MAX11410_device.Init() ----------
whismanoid 0:cb44e2e9ec4c 1722 // ctrl register configuration in Measure_Voltage and Read_All_Voltages
whismanoid 3:9055e17e181a 1723 //~ const uint8_t custom_v_ctrl = 0x42; // @ v_ctrl=0x42 -- 0x40 unipolar, 0x02 REF_SEL_010_REF2P_REF2N
whismanoid 0:cb44e2e9ec4c 1724 //~ const uint8_t custom_v_ctrl = 0x40; // @ v_ctrl=0x40 -- 0x40 unipolar, 0x00 REF_SEL_000_AIN0_AIN1
whismanoid 0:cb44e2e9ec4c 1725 //~ const uint8_t custom_v_ctrl = 0x44; // @ v_ctrl=0x44 -- 0x40 unipolar, 0x04 REF_SEL_100_AIN0_AGND
whismanoid 0:cb44e2e9ec4c 1726 //~ const uint8_t custom_v_ctrl = 0x58; // @ v_ctrl=0x58 -- 0x40 unipolar, 0x00 REF_SEL_000_AIN0_AIN1, 0x18 refbuf
whismanoid 0:cb44e2e9ec4c 1727 //
whismanoid 0:cb44e2e9ec4c 1728 //~ const uint8_t custom_v_ctrl = 0x41; // @ v_ctrl=0x41 -- 0x40 unipolar, 0x01 REF_SEL_001_REF1P_REF1N
whismanoid 0:cb44e2e9ec4c 1729 //~ const uint8_t custom_v_ctrl = 0x45; // @ v_ctrl=0x45 -- 0x40 unipolar, 0x05 REF_SEL_101_REF1P_AGND
whismanoid 0:cb44e2e9ec4c 1730 //~ const uint8_t custom_v_ctrl = 0x59; // @ v_ctrl=0x59 -- 0x40 unipolar, 0x01 REF_SEL_001_REF1P_REF1N, 0x18 refbuf
whismanoid 0:cb44e2e9ec4c 1731 //
whismanoid 0:cb44e2e9ec4c 1732 //~ const uint8_t custom_v_ctrl = 0x42; // @ v_ctrl=0x42 -- 0x40 unipolar, 0x02 REF_SEL_010_REF2P_REF2N
whismanoid 0:cb44e2e9ec4c 1733 //~ const uint8_t custom_v_ctrl = 0x46; // @ v_ctrl=0x46 -- 0x40 unipolar, 0x06 REF_SEL_110_REF2P_AGND
whismanoid 0:cb44e2e9ec4c 1734 //~ const uint8_t custom_v_ctrl = 0x22; // @ v_ctrl=0x22 -- 0x20 bipolar offset binary, 0x02 REF_SEL_010_REF2P_REF2N
whismanoid 0:cb44e2e9ec4c 1735 //~ const uint8_t custom_v_ctrl = 0x02; // @ v_ctrl=0x02 -- 0x00 bipolar 2's complement, 0x02 REF_SEL_010_REF2P_REF2N
whismanoid 0:cb44e2e9ec4c 1736 //
whismanoid 0:cb44e2e9ec4c 1737 //~ const uint8_t custom_v_ctrl = 0x44; // @ v_ctrl=0x44 -- 0x40 unipolar, 0x04 REF_SEL_100_AIN0_AGND
whismanoid 0:cb44e2e9ec4c 1738 //~ const uint8_t custom_v_ctrl = 0x47; // @ v_ctrl=0x47 -- 0x40 unipolar, 0x07 REF_SEL_111_AVDD_AGND
whismanoid 0:cb44e2e9ec4c 1739 //~ const uint8_t custom_v_ctrl = 0x27; // @ v_ctrl=0x27 -- 0x20 bipolar offset binary, 0x07 REF_SEL_111_AVDD_AGND
whismanoid 0:cb44e2e9ec4c 1740 //~ const uint8_t custom_v_ctrl = 0x07; // @ v_ctrl=0x07 -- 0x00 bipolar 2's complement, 0x07 REF_SEL_111_AVDD_AGND
whismanoid 0:cb44e2e9ec4c 1741 // ---------- CUSTOMIZED from MAX11410_Hello ----------
whismanoid 0:cb44e2e9ec4c 1742
whismanoid 3:9055e17e181a 1743 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 0:cb44e2e9ec4c 1744 // example code declare SPI interface (GPIO controlled CS)
whismanoid 0:cb44e2e9ec4c 1745 #if defined(TARGET_MAX32625MBED)
whismanoid 0:cb44e2e9ec4c 1746 SPI spi(SPI1_MOSI, SPI1_MISO, SPI1_SCK); // mosi, miso, sclk spi1 TARGET_MAX32625MBED: P1_1 P1_2 P1_0 Arduino 10-pin header D11 D12 D13
whismanoid 0:cb44e2e9ec4c 1747 DigitalOut spi_cs(SPI1_SS); // TARGET_MAX32625MBED: P1_3 Arduino 10-pin header D10
whismanoid 0:cb44e2e9ec4c 1748 #elif defined(TARGET_MAX32625PICO)
whismanoid 0:cb44e2e9ec4c 1749 #warning "TARGET_MAX32625PICO not previously tested; need to define pins..."
whismanoid 0:cb44e2e9ec4c 1750 SPI spi(SPI0_MOSI, SPI0_MISO, SPI0_SCK); // mosi, miso, sclk spi1 TARGET_MAX32625PICO: pin P0_5 P0_6 P0_4
whismanoid 0:cb44e2e9ec4c 1751 DigitalOut spi_cs(SPI0_SS); // TARGET_MAX32625PICO: pin P0_7
whismanoid 0:cb44e2e9ec4c 1752 #elif defined(TARGET_MAX32600MBED)
whismanoid 0:cb44e2e9ec4c 1753 SPI spi(SPI2_MOSI, SPI2_MISO, SPI2_SCK); // mosi, miso, sclk spi1 TARGET_MAX32600MBED: Arduino 10-pin header D11 D12 D13
whismanoid 0:cb44e2e9ec4c 1754 DigitalOut spi_cs(SPI2_SS); // Generic: Arduino 10-pin header D10
whismanoid 0:cb44e2e9ec4c 1755 #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE)
whismanoid 0:cb44e2e9ec4c 1756 // TODO1: avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut
whismanoid 0:cb44e2e9ec4c 1757 // void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel)
whismanoid 0:cb44e2e9ec4c 1758 //
whismanoid 0:cb44e2e9ec4c 1759 // TODO1: NUCLEO_F446RE SPI not working; CS and MOSI data looks OK but no SCLK clock pulses.
whismanoid 0:cb44e2e9ec4c 1760 SPI spi(SPI_MOSI, SPI_MISO, SPI_SCK); // mosi, miso, sclk spi1 TARGET_NUCLEO_F446RE: Arduino 10-pin header D11 D12 D13
whismanoid 0:cb44e2e9ec4c 1761 DigitalOut spi_cs(SPI_CS); // TARGET_NUCLEO_F446RE: PB_6 Arduino 10-pin header D10
whismanoid 0:cb44e2e9ec4c 1762 //
whismanoid 0:cb44e2e9ec4c 1763 #else
whismanoid 3:9055e17e181a 1764 SPI spi(D11, D12, D13); // mosi, miso, sclk spi1 TARGET_MAX32600MBED: Arduino 10-pin header D11 D12 D13
whismanoid 3:9055e17e181a 1765 DigitalOut spi_cs(D10); // Generic: Arduino 10-pin header D10
whismanoid 0:cb44e2e9ec4c 1766 #endif
whismanoid 0:cb44e2e9ec4c 1767
whismanoid 0:cb44e2e9ec4c 1768 // example code declare GPIO interface pins
whismanoid 0:cb44e2e9ec4c 1769 // example code declare device instance
whismanoid 3:9055e17e181a 1770 MAX11410 g_MAX11410_device(spi, spi_cs, MAX11410::MAX11410_IC);
whismanoid 3:9055e17e181a 1771 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 0:cb44e2e9ec4c 1772
whismanoid 1:747f1602abfc 1773 //--------------------------------------------------
whismanoid 3:9055e17e181a 1774 // Option to Datalog Arduino platform analog inputs
whismanoid 3:9055e17e181a 1775 #ifndef LOG_PLATFORM_AIN
whismanoid 3:9055e17e181a 1776 #define LOG_PLATFORM_AIN 6
whismanoid 3:9055e17e181a 1777 //~ #undef LOG_PLATFORM_AIN
whismanoid 3:9055e17e181a 1778 #endif
whismanoid 3:9055e17e181a 1779 #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs
whismanoid 1:747f1602abfc 1780 //#ifndef NUM_PLATFORM_ANALOG_IN_CHANNELS
whismanoid 1:747f1602abfc 1781 //#define NUM_PLATFORM_ANALOG_IN_CHANNELS 6
whismanoid 1:747f1602abfc 1782 //#endif
whismanoid 1:747f1602abfc 1783 const int NUM_PLATFORM_ANALOG_IN_CHANNELS = 6;
whismanoid 1:747f1602abfc 1784 const double adc_full_scale_voltage[NUM_PLATFORM_ANALOG_IN_CHANNELS] = {
whismanoid 0:cb44e2e9ec4c 1785 1.2,
whismanoid 0:cb44e2e9ec4c 1786 1.2,
whismanoid 0:cb44e2e9ec4c 1787 1.2,
whismanoid 0:cb44e2e9ec4c 1788 1.2,
whismanoid 0:cb44e2e9ec4c 1789 1.2,
whismanoid 0:cb44e2e9ec4c 1790 1.2
whismanoid 0:cb44e2e9ec4c 1791 };
whismanoid 1:747f1602abfc 1792 //--------------------------------------------------
whismanoid 1:747f1602abfc 1793 // Option to log platform analog inputs as raw LSB code
whismanoid 1:747f1602abfc 1794 #ifndef LOG_PLATFORM_ANALOG_IN_LSB
whismanoid 1:747f1602abfc 1795 #define LOG_PLATFORM_ANALOG_IN_LSB 0
whismanoid 1:747f1602abfc 1796 #endif
whismanoid 1:747f1602abfc 1797 #if LOG_PLATFORM_ANALOG_IN_LSB
whismanoid 1:747f1602abfc 1798 int Platform_LSB[NUM_PLATFORM_ANALOG_IN_CHANNELS];
whismanoid 1:747f1602abfc 1799 #endif
whismanoid 1:747f1602abfc 1800
whismanoid 1:747f1602abfc 1801 //--------------------------------------------------
whismanoid 1:747f1602abfc 1802 // Option to use platform analog inputs as Voltage
whismanoid 1:747f1602abfc 1803 #ifndef LOG_PLATFORM_ANALOG_IN_VOLTS
whismanoid 1:747f1602abfc 1804 #define LOG_PLATFORM_ANALOG_IN_VOLTS 1
whismanoid 1:747f1602abfc 1805 #endif
whismanoid 1:747f1602abfc 1806 #if LOG_PLATFORM_ANALOG_IN_VOLTS
whismanoid 1:747f1602abfc 1807 double Platform_Voltage[NUM_PLATFORM_ANALOG_IN_CHANNELS];
whismanoid 1:747f1602abfc 1808 #endif
whismanoid 3:9055e17e181a 1809 #endif // defined(LOG_PLATFORM_AIN)
whismanoid 0:cb44e2e9ec4c 1810
whismanoid 4:d9b05924ad4c 1811 #if USE_CMDLINE_MENUS // support CmdLine command menus
whismanoid 4:d9b05924ad4c 1812 //--------------------------------------------------
whismanoid 4:d9b05924ad4c 1813 inline void print_command_prompt()
whismanoid 4:d9b05924ad4c 1814 {
whismanoid 4:d9b05924ad4c 1815 //~ Serial.println(F(">"));
whismanoid 4:d9b05924ad4c 1816 cmdLine.serial().printf("\r\n> ");
whismanoid 4:d9b05924ad4c 1817 }
whismanoid 4:d9b05924ad4c 1818 #endif // USE_CMDLINE_MENUS support CmdLine command menus
whismanoid 4:d9b05924ad4c 1819
whismanoid 4:d9b05924ad4c 1820 #if USE_CMDLINE_MENUS // support CmdLine command menus
whismanoid 4:d9b05924ad4c 1821 //--------------------------------------------------
whismanoid 4:d9b05924ad4c 1822 void main_menu_status(CmdLine & cmdLine)
whismanoid 4:d9b05924ad4c 1823 {
whismanoid 4:d9b05924ad4c 1824 cmdLine.serial().printf("\r\nMain menu");
whismanoid 4:d9b05924ad4c 1825 #if APPLICATION_MAX5715 // main_menu_status banner
whismanoid 4:d9b05924ad4c 1826 cmdLine.serial().printf(" MAX5715 12-bit 4-ch SPI VOUT DAC");
whismanoid 4:d9b05924ad4c 1827 #elif APPLICATION_MAX11131 // main_menu_status banner
whismanoid 4:d9b05924ad4c 1828 cmdLine.serial().printf(" MAX11131 12-bit 3MSps 16-ch ADC");
whismanoid 4:d9b05924ad4c 1829 #elif APPLICATION_MAX5171 // main_menu_status banner
whismanoid 4:d9b05924ad4c 1830 cmdLine.serial().printf(" MAX5171 14-bit Force/Sense VOUT DAC");
whismanoid 4:d9b05924ad4c 1831 #elif APPLICATION_MAX11410 // main_menu_status banner
whismanoid 4:d9b05924ad4c 1832 cmdLine.serial().printf(" MAX11410 24-bit 1.9ksps Delta-Sigma ADC");
whismanoid 4:d9b05924ad4c 1833 #elif APPLICATION_MAX12345 // main_menu_status banner
whismanoid 4:d9b05924ad4c 1834 cmdLine.serial().printf(" MAX12345");
whismanoid 4:d9b05924ad4c 1835 #else
whismanoid 4:d9b05924ad4c 1836 //cmdLine.serial().printf(" ");
whismanoid 4:d9b05924ad4c 1837 #endif
whismanoid 4:d9b05924ad4c 1838 //cmdLine.serial().printf(" %s", TARGET_NAME);
whismanoid 4:d9b05924ad4c 1839 if (cmdLine.nameStr())
whismanoid 4:d9b05924ad4c 1840 {
whismanoid 4:d9b05924ad4c 1841 cmdLine.serial().printf(" [%s]", cmdLine.nameStr());
whismanoid 4:d9b05924ad4c 1842 }
whismanoid 4:d9b05924ad4c 1843 #if HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 4:d9b05924ad4c 1844 cmdLine.serial().printf(" [Button1=DemoConfig1]");
whismanoid 4:d9b05924ad4c 1845 #endif
whismanoid 4:d9b05924ad4c 1846 #if HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 4:d9b05924ad4c 1847 cmdLine.serial().printf(" [Button2=DemoConfig2]");
whismanoid 4:d9b05924ad4c 1848 #endif
whismanoid 4:d9b05924ad4c 1849 #if HAS_BUTTON1_DEMO
whismanoid 4:d9b05924ad4c 1850 // print BUTTON1 status
whismanoid 4:d9b05924ad4c 1851 cmdLine.serial().printf("\r\n BUTTON1 = %d", button1.read());
whismanoid 4:d9b05924ad4c 1852 #endif
whismanoid 4:d9b05924ad4c 1853 #if HAS_BUTTON2_DEMO
whismanoid 4:d9b05924ad4c 1854 // print BUTTON1 status
whismanoid 4:d9b05924ad4c 1855 cmdLine.serial().printf("\r\n BUTTON2 = %d", button2.read());
whismanoid 4:d9b05924ad4c 1856 #endif
whismanoid 4:d9b05924ad4c 1857 cmdLine.serial().printf("\r\n ? -- help");
whismanoid 4:d9b05924ad4c 1858 }
whismanoid 4:d9b05924ad4c 1859 #endif // USE_CMDLINE_MENUS support CmdLine command menus
whismanoid 4:d9b05924ad4c 1860
whismanoid 4:d9b05924ad4c 1861 #if USE_CMDLINE_MENUS // support CmdLine command menus
whismanoid 4:d9b05924ad4c 1862 //--------------------------------------------------
whismanoid 4:d9b05924ad4c 1863 void main_menu_help(CmdLine & cmdLine)
whismanoid 4:d9b05924ad4c 1864 {
whismanoid 4:d9b05924ad4c 1865 // ? -- help
whismanoid 4:d9b05924ad4c 1866 //~ cmdLine.serial().printf("\r\nMenu:");
whismanoid 4:d9b05924ad4c 1867 cmdLine.serial().printf("\r\n # -- lines beginning with # are comments");
whismanoid 4:d9b05924ad4c 1868 #if USE_SELFTEST
whismanoid 4:d9b05924ad4c 1869 cmdLine.serial().printf("\r\n . -- SelfTest");
whismanoid 4:d9b05924ad4c 1870 #endif // USE_SELFTEST
whismanoid 4:d9b05924ad4c 1871 #if USE_DATALOGGER_TRIGGER // support Datalog trigger
whismanoid 4:d9b05924ad4c 1872 // TODO Datalog trigger menu
whismanoid 4:d9b05924ad4c 1873 // set Datalogger_Trigger to trigger_Halt or trigger_FreeRun
whismanoid 4:d9b05924ad4c 1874 // Datalogger_Trigger = trigger_Halt // halt the datalogger; continue accepting commands
whismanoid 4:d9b05924ad4c 1875 // Datalogger_Trigger = trigger_FreeRun // free run as fast as possible
whismanoid 4:d9b05924ad4c 1876 cmdLine.serial().printf("\r\n LR -- Datalog free run as fast as possible");
whismanoid 4:d9b05924ad4c 1877 #endif // USE_DATALOGGER_TRIGGER support Datalog trigger
whismanoid 4:d9b05924ad4c 1878 //cmdLine.serial().print(F("\r\n ! -- Initial Configuration"));
whismanoid 4:d9b05924ad4c 1879 //
whismanoid 4:d9b05924ad4c 1880 // % standardize diagnostic commands
whismanoid 4:d9b05924ad4c 1881 // %Hpin -- digital output high
whismanoid 4:d9b05924ad4c 1882 // %Lpin -- digital output low
whismanoid 4:d9b05924ad4c 1883 // %?pin -- digital input
whismanoid 4:d9b05924ad4c 1884 // %A %Apin -- analog input
whismanoid 4:d9b05924ad4c 1885 // %Ppin df=xx -- pwm output
whismanoid 4:d9b05924ad4c 1886 // %Wpin -- measure high pulsewidth input in usec
whismanoid 4:d9b05924ad4c 1887 // %wpin -- measure low pulsewidth input in usec
whismanoid 4:d9b05924ad4c 1888 // %I... -- I2C diagnostics
whismanoid 4:d9b05924ad4c 1889 // %IP -- I2C probe
whismanoid 4:d9b05924ad4c 1890 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 4:d9b05924ad4c 1891 // %IW ADDR=? cmd=? data,data,data -- write
whismanoid 4:d9b05924ad4c 1892 // %IR ADDR=? RD=? -- read
whismanoid 4:d9b05924ad4c 1893 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 4:d9b05924ad4c 1894 // %S... -- SPI diagnostics
whismanoid 4:d9b05924ad4c 1895 // %SC sclk=1Mhz -- SPI configure
whismanoid 4:d9b05924ad4c 1896 // %SW -- write (write and read)
whismanoid 4:d9b05924ad4c 1897 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 4:d9b05924ad4c 1898 // A-Z,a-z,0-9 reserved for application use
whismanoid 4:d9b05924ad4c 1899 //
whismanoid 4:d9b05924ad4c 1900 #if HAS_digitalInOuts
whismanoid 4:d9b05924ad4c 1901 // %Hpin -- digital output high
whismanoid 4:d9b05924ad4c 1902 // %Lpin -- digital output low
whismanoid 4:d9b05924ad4c 1903 // %?pin -- digital input
whismanoid 4:d9b05924ad4c 1904 cmdLine.serial().printf("\r\n %%Hn {pin:");
whismanoid 4:d9b05924ad4c 1905 list_digitalInOutPins(cmdLine.serial());
whismanoid 4:d9b05924ad4c 1906 cmdLine.serial().printf("} -- High Output");
whismanoid 4:d9b05924ad4c 1907 cmdLine.serial().printf("\r\n %%Ln {pin:");
whismanoid 4:d9b05924ad4c 1908 list_digitalInOutPins(cmdLine.serial());
whismanoid 4:d9b05924ad4c 1909 cmdLine.serial().printf("} -- Low Output");
whismanoid 4:d9b05924ad4c 1910 cmdLine.serial().printf("\r\n %%?n {pin:");
whismanoid 4:d9b05924ad4c 1911 list_digitalInOutPins(cmdLine.serial());
whismanoid 4:d9b05924ad4c 1912 cmdLine.serial().printf("} -- Input");
whismanoid 4:d9b05924ad4c 1913 #endif
whismanoid 4:d9b05924ad4c 1914
whismanoid 4:d9b05924ad4c 1915 #if HAS_analogIns
whismanoid 4:d9b05924ad4c 1916 // Menu A) analogRead A0..7
whismanoid 4:d9b05924ad4c 1917 // %A %Apin -- analog input
whismanoid 4:d9b05924ad4c 1918 // analogRead(pinIndex) // analog input pins A0, A1, A2, A3, A4, A5; float voltage = analogRead(A0) * (5.0 / 1023.0)
whismanoid 4:d9b05924ad4c 1919 cmdLine.serial().printf("\r\n %%A -- analogRead");
whismanoid 4:d9b05924ad4c 1920 #endif
whismanoid 4:d9b05924ad4c 1921
whismanoid 4:d9b05924ad4c 1922 #if HAS_SPI2_MAX541
whismanoid 4:d9b05924ad4c 1923 // TODO1: MAX541 max541(spi2_max541, spi2_max541_cs);
whismanoid 4:d9b05924ad4c 1924 cmdLine.serial().printf("\r\n %%D -- DAC output MAX541 (SPI2)");
whismanoid 4:d9b05924ad4c 1925 #endif
whismanoid 4:d9b05924ad4c 1926
whismanoid 4:d9b05924ad4c 1927 #if HAS_I2C // SUPPORT_I2C
whismanoid 4:d9b05924ad4c 1928 // TODO: support I2C HAS_I2C // SUPPORT_I2C
whismanoid 4:d9b05924ad4c 1929 // VERIFY: I2C utility commands SUPPORT_I2C
whismanoid 4:d9b05924ad4c 1930 // VERIFY: report g_I2C_SCL_Hz = (F_CPU / ((TWBR * 2) + 16)) from last Wire_Sr.setClock(I2C_SCL_Hz);
whismanoid 4:d9b05924ad4c 1931 // %I... -- I2C diagnostics
whismanoid 4:d9b05924ad4c 1932 // %IP -- I2C probe
whismanoid 4:d9b05924ad4c 1933 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 4:d9b05924ad4c 1934 // %IW byte byte ... byte RD=? ADDR=0x -- write
whismanoid 4:d9b05924ad4c 1935 // %IR ADDR=? RD=? -- read
whismanoid 4:d9b05924ad4c 1936 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 4:d9b05924ad4c 1937 //g_I2C_SCL_Hz = (F_CPU / ((TWBR * 2) + 16)); // 'F_CPU' 'TWBR' not declared in this scope
whismanoid 4:d9b05924ad4c 1938 cmdLine.serial().printf("\r\n %%IC ADDR=0x%2.2x=(0x%2.2x>>1) SCL=%d=%1.3fkHz -- I2C config",
whismanoid 4:d9b05924ad4c 1939 g_I2C_deviceAddress7, (g_I2C_deviceAddress7 << 1), g_I2C_SCL_Hz,
whismanoid 4:d9b05924ad4c 1940 (g_I2C_SCL_Hz / 1000.));
whismanoid 4:d9b05924ad4c 1941 cmdLine.serial().printf("\r\n %%IW byte byte ... byte RD=? ADDR=0x%2.2x -- I2C write/read",
whismanoid 4:d9b05924ad4c 1942 g_I2C_deviceAddress7);
whismanoid 4:d9b05924ad4c 1943 //
whismanoid 4:d9b05924ad4c 1944 #if SUPPORT_I2C
whismanoid 4:d9b05924ad4c 1945 // Menu ^ cmd=?) i2c_smbus_read_word_data
whismanoid 4:d9b05924ad4c 1946 cmdLine.serial().printf("\r\n %%I^ cmd=? -- i2c_smbus_read_word_data");
whismanoid 4:d9b05924ad4c 1947 // test low-level I2C i2c_smbus_read_word_data
whismanoid 4:d9b05924ad4c 1948 #endif // SUPPORT_I2C
whismanoid 4:d9b05924ad4c 1949 //cmdLine.serial().printf(" H) Hunt for attached I2C devices");
whismanoid 4:d9b05924ad4c 1950 cmdLine.serial().printf("\r\n %%IP -- I2C Probe for attached devices");
whismanoid 4:d9b05924ad4c 1951 // cmdLine.serial().printf(" s) search i2c address");
whismanoid 4:d9b05924ad4c 1952 #endif // SUPPORT_I2C
whismanoid 4:d9b05924ad4c 1953
whismanoid 4:d9b05924ad4c 1954 #if HAS_SPI // SUPPORT_SPI
whismanoid 4:d9b05924ad4c 1955 // TODO: support SPI HAS_SPI // SUPPORT_SPI
whismanoid 4:d9b05924ad4c 1956 // SPI test command S (mosiData)+
whismanoid 4:d9b05924ad4c 1957 // %S... -- SPI diagnostics
whismanoid 4:d9b05924ad4c 1958 // %SC sclk=1Mhz -- SPI configure
whismanoid 4:d9b05924ad4c 1959 // %SW -- write (write and read)
whismanoid 4:d9b05924ad4c 1960 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 4:d9b05924ad4c 1961 // spi.format(8,0); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=0 rising edge (initial default)
whismanoid 4:d9b05924ad4c 1962 // spi.format(8,1); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=1 falling edge (initial default)
whismanoid 4:d9b05924ad4c 1963 // spi.format(8,2); // int bits_must_be_8, int mode=0_3 CPOL=1,CPHA=0 falling edge (initial default)
whismanoid 4:d9b05924ad4c 1964 // spi.format(8,3); // int bits_must_be_8, int mode=0_3 CPOL=1,CPHA=1 rising edge (initial default)
whismanoid 4:d9b05924ad4c 1965 // spi.frequency(1000000); // int SCLK_Hz=1000000 = 1MHz (initial default)
whismanoid 4:d9b05924ad4c 1966 // mode | POL PHA
whismanoid 4:d9b05924ad4c 1967 // -----+--------
whismanoid 4:d9b05924ad4c 1968 // 0 | 0 0
whismanoid 4:d9b05924ad4c 1969 // 1 | 0 1
whismanoid 4:d9b05924ad4c 1970 // 2 | 1 0
whismanoid 4:d9b05924ad4c 1971 // 3 | 1 1
whismanoid 4:d9b05924ad4c 1972 //cmdLine.serial().printf(" S) SPI mosi,mosi,...mosi hex bytes SCLK=1000000 CPOL=0 CPHA=0");
whismanoid 4:d9b05924ad4c 1973 // fixed: mbed-os-5.11: [Warning] format '%d' expects argument of type 'int', but argument 3 has type 'uint32_t {aka long unsigned int}' [-Wformat=]
whismanoid 4:d9b05924ad4c 1974 cmdLine.serial().printf("\r\n %%SC SCLK=%ld=%1.3fMHz CPOL=%d CPHA=%d -- SPI config",
whismanoid 4:d9b05924ad4c 1975 g_SPI_SCLK_Hz, (g_SPI_SCLK_Hz / 1000000.),
whismanoid 4:d9b05924ad4c 1976 ((g_SPI_dataMode & SPI_MODE2) ? 1 : 0),
whismanoid 4:d9b05924ad4c 1977 ((g_SPI_dataMode & SPI_MODE1) ? 1 : 0));
whismanoid 4:d9b05924ad4c 1978 cmdLine.serial().printf("\r\n %%SD -- SPI diagnostic messages ");
whismanoid 4:d9b05924ad4c 1979 if (g_MAX11410_device.onSPIprint) {
whismanoid 4:d9b05924ad4c 1980 cmdLine.serial().printf("hide");
whismanoid 4:d9b05924ad4c 1981 }
whismanoid 4:d9b05924ad4c 1982 else {
whismanoid 4:d9b05924ad4c 1983 cmdLine.serial().printf("show");
whismanoid 4:d9b05924ad4c 1984 }
whismanoid 4:d9b05924ad4c 1985 cmdLine.serial().printf("\r\n %%SW mosi,mosi,...mosi -- SPI write hex bytes");
whismanoid 4:d9b05924ad4c 1986 // VERIFY: parse new SPI settings parse_strCommandArgs() SCLK=1000000 CPOL=0 CPHA=0
whismanoid 4:d9b05924ad4c 1987 #endif // SUPPORT_SPI
whismanoid 4:d9b05924ad4c 1988 //
whismanoid 4:d9b05924ad4c 1989 // Application-specific commands (help text) here
whismanoid 4:d9b05924ad4c 1990 //
whismanoid 4:d9b05924ad4c 1991 #if APPLICATION_ArduinoPinsMonitor
whismanoid 4:d9b05924ad4c 1992 cmdLine.serial().printf("\r\n A-Z,a-z,0-9 -- reserved for application use"); // ArduinoPinsMonitor
whismanoid 4:d9b05924ad4c 1993 #endif // APPLICATION_ArduinoPinsMonitor
whismanoid 4:d9b05924ad4c 1994 //
whismanoid 4:d9b05924ad4c 1995
whismanoid 4:d9b05924ad4c 1996 //~ extern void MAX11410_menu_help(CmdLine & cmdLine); // defined in Test_Menu_MAX11410.cpp\n
whismanoid 4:d9b05924ad4c 1997 //~ MAX11410_menu_help(cmdLine);
whismanoid 4:d9b05924ad4c 1998 }
whismanoid 4:d9b05924ad4c 1999 #endif // USE_CMDLINE_MENUS support CmdLine command menus
whismanoid 4:d9b05924ad4c 2000
whismanoid 4:d9b05924ad4c 2001 #if USE_CMDLINE_MENUS // support CmdLine command menus
whismanoid 4:d9b05924ad4c 2002 //--------------------------------------------------
whismanoid 4:d9b05924ad4c 2003 void main_menu_onEOLcommandParser(CmdLine& cmdLine)
whismanoid 4:d9b05924ad4c 2004 {
whismanoid 4:d9b05924ad4c 2005 // TODO: process command line
whismanoid 4:d9b05924ad4c 2006 cmdLine.serial().printf("\r\nCmdLine buf:");
whismanoid 4:d9b05924ad4c 2007 cmdLine.serial().printf("%s\r\n", cmdLine.str());
whismanoid 4:d9b05924ad4c 2008
whismanoid 4:d9b05924ad4c 2009 #if USE_DATALOGGER_TRIGGER // support Datalog trigger
whismanoid 4:d9b05924ad4c 2010 // If datalog is free running, halt on any possible received command
whismanoid 4:d9b05924ad4c 2011 if (Datalogger_Trigger == trigger_FreeRun) {
whismanoid 4:d9b05924ad4c 2012 Datalogger_Trigger = trigger_Halt;
whismanoid 4:d9b05924ad4c 2013 }
whismanoid 4:d9b05924ad4c 2014 #endif // USE_DATALOGGER_TRIGGER support Datalog trigger
whismanoid 4:d9b05924ad4c 2015
whismanoid 4:d9b05924ad4c 2016 // DIAGNOSTIC: print line buffer
whismanoid 4:d9b05924ad4c 2017 //~ cmdLine.serial().printf("\r\nmain_menu_onEOLcommandParser: ~%s~\r\n", cmdLine.str());
whismanoid 4:d9b05924ad4c 2018 //
whismanoid 4:d9b05924ad4c 2019 switch (cmdLine[0])
whismanoid 4:d9b05924ad4c 2020 {
whismanoid 4:d9b05924ad4c 2021 case '?':
whismanoid 4:d9b05924ad4c 2022 main_menu_status(cmdLine);
whismanoid 4:d9b05924ad4c 2023 main_menu_help(cmdLine);
whismanoid 4:d9b05924ad4c 2024 // print command prompt
whismanoid 4:d9b05924ad4c 2025 //cmdLine.serial().printf("\r\n>");
whismanoid 4:d9b05924ad4c 2026 break;
whismanoid 4:d9b05924ad4c 2027 case '\r': case '\n': // ignore blank line
whismanoid 4:d9b05924ad4c 2028 case '\0': // ignore empty line
whismanoid 4:d9b05924ad4c 2029 case '#': // ignore comment line
whismanoid 4:d9b05924ad4c 2030 // # -- lines beginning with # are comments
whismanoid 4:d9b05924ad4c 2031 main_menu_status(cmdLine);
whismanoid 4:d9b05924ad4c 2032 //~ main_menu_help(cmdLine);
whismanoid 4:d9b05924ad4c 2033 // print command prompt
whismanoid 4:d9b05924ad4c 2034 //cmdLine.serial().printf("\r\n>");
whismanoid 4:d9b05924ad4c 2035 break;
whismanoid 4:d9b05924ad4c 2036 #if ECHO_EOF_ON_EOL
whismanoid 4:d9b05924ad4c 2037 case '\x04': // Unicode (U+0004) EOT END OF TRANSMISSION = CTRL+D as EOF end of file
whismanoid 4:d9b05924ad4c 2038 cmdLine.serial().printf("\x04"); // immediately echo EOF for test scripting
whismanoid 4:d9b05924ad4c 2039 diagnostic_led_EOF();
whismanoid 4:d9b05924ad4c 2040 break;
whismanoid 4:d9b05924ad4c 2041 case '\x1a': // Unicode (U+001A) SUB SUBSTITUTE = CTRL+Z as EOF end of file
whismanoid 4:d9b05924ad4c 2042 cmdLine.serial().printf("\x1a"); // immediately echo EOF for test scripting
whismanoid 4:d9b05924ad4c 2043 diagnostic_led_EOF();
whismanoid 4:d9b05924ad4c 2044 break;
whismanoid 4:d9b05924ad4c 2045 #endif
whismanoid 4:d9b05924ad4c 2046 #if USE_SELFTEST
whismanoid 4:d9b05924ad4c 2047 case '.':
whismanoid 4:d9b05924ad4c 2048 {
whismanoid 4:d9b05924ad4c 2049 // . -- SelfTest
whismanoid 4:d9b05924ad4c 2050 cmdLine.serial().printf("SelfTest()");
whismanoid 4:d9b05924ad4c 2051 SelfTest(cmdLine);
whismanoid 4:d9b05924ad4c 2052 }
whismanoid 4:d9b05924ad4c 2053 break;
whismanoid 4:d9b05924ad4c 2054 #endif // USE_SELFTEST
whismanoid 4:d9b05924ad4c 2055 #if 0 // APPLICATION_ArduinoPinsMonitor
whismanoid 4:d9b05924ad4c 2056 case '%':
whismanoid 4:d9b05924ad4c 2057 {
whismanoid 4:d9b05924ad4c 2058 pinsMonitor_submenu_onEOLcommandParser(cmdLine);
whismanoid 4:d9b05924ad4c 2059 }
whismanoid 4:d9b05924ad4c 2060 break; // case '%'
whismanoid 4:d9b05924ad4c 2061 #endif // APPLICATION_ArduinoPinsMonitor
whismanoid 4:d9b05924ad4c 2062 #if USE_DATALOGGER_TRIGGER // support Datalog trigger
whismanoid 4:d9b05924ad4c 2063 // TODO Datalog trigger menu
whismanoid 4:d9b05924ad4c 2064 // set Datalogger_Trigger to trigger_Halt or trigger_FreeRun
whismanoid 4:d9b05924ad4c 2065 // Datalogger_Trigger = trigger_Halt // halt the datalogger; continue accepting commands
whismanoid 4:d9b05924ad4c 2066 // Datalogger_Trigger = trigger_FreeRun // free run as fast as possible
whismanoid 4:d9b05924ad4c 2067 case 'L':
whismanoid 4:d9b05924ad4c 2068 {
whismanoid 4:d9b05924ad4c 2069 // halt the datalogger; continue accepting commands
whismanoid 4:d9b05924ad4c 2070 Datalogger_Trigger = trigger_Halt;
whismanoid 4:d9b05924ad4c 2071 switch (cmdLine[1])
whismanoid 4:d9b05924ad4c 2072 {
whismanoid 4:d9b05924ad4c 2073 case 'R': case 'r':
whismanoid 4:d9b05924ad4c 2074 // free run as fast as possible
whismanoid 4:d9b05924ad4c 2075 Datalogger_Trigger = trigger_FreeRun;
whismanoid 4:d9b05924ad4c 2076 Datalogger_PrintHeader();
whismanoid 4:d9b05924ad4c 2077 return; // instead of break; avoid falling through to print_command_prompt();
whismanoid 4:d9b05924ad4c 2078 }
whismanoid 4:d9b05924ad4c 2079 }
whismanoid 4:d9b05924ad4c 2080 break; // case 'L'
whismanoid 4:d9b05924ad4c 2081 #endif // USE_DATALOGGER_TRIGGER support Datalog trigger
whismanoid 4:d9b05924ad4c 2082 //
whismanoid 4:d9b05924ad4c 2083 // Application-specific commands here
whismanoid 4:d9b05924ad4c 2084 // alphanumeric command codes A-Z,a-z,0-9 reserved for application use
whismanoid 4:d9b05924ad4c 2085 //
whismanoid 4:d9b05924ad4c 2086 #if APPLICATION_ArduinoPinsMonitor
whismanoid 4:d9b05924ad4c 2087 #endif // APPLICATION_ArduinoPinsMonitor
whismanoid 4:d9b05924ad4c 2088
whismanoid 4:d9b05924ad4c 2089 //
whismanoid 4:d9b05924ad4c 2090 // TODO1: add new commands here
whismanoid 4:d9b05924ad4c 2091 //
whismanoid 4:d9b05924ad4c 2092 default:
whismanoid 4:d9b05924ad4c 2093 #if APPLICATION_MAX5715 // main_menu_onEOLcommandParser print command prompt
whismanoid 4:d9b05924ad4c 2094 extern bool MAX5715_menu_onEOLcommandParser(CmdLine & cmdLine); // defined in Test_Menu_MAX5715.cpp
whismanoid 4:d9b05924ad4c 2095 if (!MAX5715_menu_onEOLcommandParser(cmdLine))
whismanoid 4:d9b05924ad4c 2096 #elif APPLICATION_MAX11131 // main_menu_onEOLcommandParser print command prompt
whismanoid 4:d9b05924ad4c 2097 extern bool MAX11131_menu_onEOLcommandParser(CmdLine & cmdLine); // defined in Test_Menu_MAX11131.cpp
whismanoid 4:d9b05924ad4c 2098 if (!MAX11131_menu_onEOLcommandParser(cmdLine))
whismanoid 4:d9b05924ad4c 2099 #elif APPLICATION_MAX5171 // main_menu_onEOLcommandParser print command prompt
whismanoid 4:d9b05924ad4c 2100 extern bool MAX5171_menu_onEOLcommandParser(CmdLine & cmdLine); // defined in Test_Menu_MAX5171.cpp
whismanoid 4:d9b05924ad4c 2101 if (!MAX5171_menu_onEOLcommandParser(cmdLine))
whismanoid 4:d9b05924ad4c 2102 #elif APPLICATION_MAX11410 // main_menu_onEOLcommandParser print command prompt
whismanoid 4:d9b05924ad4c 2103 extern bool MAX11410_menu_onEOLcommandParser(CmdLine & cmdLine); // defined in Test_Menu_MAX11410.cpp
whismanoid 4:d9b05924ad4c 2104 if (!MAX11410_menu_onEOLcommandParser(cmdLine))
whismanoid 4:d9b05924ad4c 2105 #elif APPLICATION_MAX12345 // main_menu_onEOLcommandParser print command prompt
whismanoid 4:d9b05924ad4c 2106 extern bool MAX12345_menu_onEOLcommandParser(CmdLine & cmdLine); // defined in Test_Menu_MAX12345.cpp
whismanoid 4:d9b05924ad4c 2107 if (!MAX12345_menu_onEOLcommandParser(cmdLine))
whismanoid 4:d9b05924ad4c 2108 #else
whismanoid 4:d9b05924ad4c 2109 if (0) // not_handled_by_device_submenu
whismanoid 4:d9b05924ad4c 2110 #endif
whismanoid 4:d9b05924ad4c 2111 {
whismanoid 4:d9b05924ad4c 2112 cmdLine.serial().printf("\r\n unknown command ");
whismanoid 4:d9b05924ad4c 2113 //~ cmdLine.serial().printf("\r\n unknown command 0x%2.2x \"%s\"\r\n", cmdLine.str()[0], cmdLine.str());
whismanoid 4:d9b05924ad4c 2114 # if HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2115 cmdLine_DAPLINKserial.serial().print("\r\n unknown command 0x%2.2x \"%s\"\r\n",
whismanoid 4:d9b05924ad4c 2116 cmdLine.str()[0], cmdLine.str());
whismanoid 4:d9b05924ad4c 2117 # endif // HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2118 }
whismanoid 4:d9b05924ad4c 2119 } // switch (cmdLine[0])
whismanoid 4:d9b05924ad4c 2120 //
whismanoid 4:d9b05924ad4c 2121 // print command prompt
whismanoid 4:d9b05924ad4c 2122 print_command_prompt();
whismanoid 4:d9b05924ad4c 2123 }
whismanoid 4:d9b05924ad4c 2124 #endif // USE_CMDLINE_MENUS support CmdLine command menus
whismanoid 4:d9b05924ad4c 2125
whismanoid 4:d9b05924ad4c 2126 //--------------------------------------------------
whismanoid 4:d9b05924ad4c 2127 // print column header banner for csv data columns
whismanoid 4:d9b05924ad4c 2128 void Datalogger_PrintHeader()
whismanoid 4:d9b05924ad4c 2129 {
whismanoid 4:d9b05924ad4c 2130 // column header banner for csv data columns
whismanoid 4:d9b05924ad4c 2131 int field_index = 0;
whismanoid 4:d9b05924ad4c 2132 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 4:d9b05924ad4c 2133 for (int channel_index = 0; channel_index < NUM_DUT_ANALOG_IN_CHANNELS; field_index++, channel_index++) {
whismanoid 4:d9b05924ad4c 2134 if (SPI_AIN_Enable_ch[channel_index] == Disable) {
whismanoid 4:d9b05924ad4c 2135 continue;
whismanoid 4:d9b05924ad4c 2136 }
whismanoid 4:d9b05924ad4c 2137 // comma between fields
whismanoid 4:d9b05924ad4c 2138 if (field_index > 0) {
whismanoid 4:d9b05924ad4c 2139 cmdLine.serial().printf(",");
whismanoid 4:d9b05924ad4c 2140 }
whismanoid 4:d9b05924ad4c 2141 // AIN_index column header prefix
whismanoid 4:d9b05924ad4c 2142 #if SPI_ADC_DeviceName == MAX11410 // SPI connected ADC
whismanoid 4:d9b05924ad4c 2143 // MAX11410 v_ctrl bipolar configuration or unipolar?
whismanoid 4:d9b05924ad4c 2144 if ((SPI_AIN_Cfg_v_ctrl_ch[channel_index] & 0x40) == 0) {
whismanoid 4:d9b05924ad4c 2145 cmdLine.serial().printf("\"AIN%d-%d_BIP", channel_index, channel_index+1);
whismanoid 4:d9b05924ad4c 2146 }
whismanoid 4:d9b05924ad4c 2147 else {
whismanoid 4:d9b05924ad4c 2148 cmdLine.serial().printf("\"AIN%d", channel_index);
whismanoid 4:d9b05924ad4c 2149 }
whismanoid 4:d9b05924ad4c 2150 #else // SPI_ADC_DeviceName == MAX11410 // SPI connected ADC
whismanoid 4:d9b05924ad4c 2151 cmdLine.serial().printf("\"AIN%d", channel_index);
whismanoid 4:d9b05924ad4c 2152 #endif // SPI_ADC_DeviceName == MAX11410 // SPI connected ADC
whismanoid 4:d9b05924ad4c 2153 if (SPI_AIN_Enable_ch[channel_index] == Enable_LSB) {
whismanoid 4:d9b05924ad4c 2154 cmdLine_DAPLINKserial.serial().printf("\"AIN%d", channel_index);
whismanoid 4:d9b05924ad4c 2155 # endif // HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2156 #if LOG_PLATFORM_ANALOG_IN_LSB
whismanoid 4:d9b05924ad4c 2157 // _LSB column header suffix
whismanoid 4:d9b05924ad4c 2158 cmdLine.serial().printf("_LSB\"");
whismanoid 4:d9b05924ad4c 2159 # if HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2160 cmdLine_DAPLINKserial.serial().printf("_LSB\"");
whismanoid 4:d9b05924ad4c 2161 # endif // HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2162 }
whismanoid 4:d9b05924ad4c 2163 else if (SPI_AIN_Enable_ch[channel_index] == Enable_Volt) {
whismanoid 4:d9b05924ad4c 2164 // _V column header suffix
whismanoid 4:d9b05924ad4c 2165 cmdLine.serial().printf("_V\"");
whismanoid 4:d9b05924ad4c 2166 # if HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2167 cmdLine_DAPLINKserial.serial().printf("_V\"");
whismanoid 4:d9b05924ad4c 2168 # endif // HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2169 }
whismanoid 4:d9b05924ad4c 2170 }
whismanoid 4:d9b05924ad4c 2171
whismanoid 4:d9b05924ad4c 2172 #if VERIFY_PART_ID_IN_LOOP
whismanoid 4:d9b05924ad4c 2173 // PART_ID field: Device ID Validation
whismanoid 4:d9b05924ad4c 2174 cmdLine.serial().printf(",\"PART_ID\"");
whismanoid 4:d9b05924ad4c 2175 # if HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2176 cmdLine_DAPLINKserial.serial().printf(",\"PART_ID\"");
whismanoid 4:d9b05924ad4c 2177 # endif // HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2178 #endif // VERIFY_PART_ID_IN_LOOP
whismanoid 4:d9b05924ad4c 2179 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 4:d9b05924ad4c 2180 #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs
whismanoid 4:d9b05924ad4c 2181 for (int channel_index = 0; channel_index < NUM_PLATFORM_ANALOG_IN_CHANNELS; field_index++, channel_index++) {
whismanoid 4:d9b05924ad4c 2182 // comma between fields
whismanoid 4:d9b05924ad4c 2183 if (field_index > 0) {
whismanoid 4:d9b05924ad4c 2184 cmdLine.serial().printf(",");
whismanoid 4:d9b05924ad4c 2185 }
whismanoid 4:d9b05924ad4c 2186 // AIN_index column header prefix
whismanoid 4:d9b05924ad4c 2187 cmdLine.serial().printf("\"A%d", channel_index);
whismanoid 4:d9b05924ad4c 2188 #if LOG_PLATFORM_ANALOG_IN_LSB
whismanoid 4:d9b05924ad4c 2189 // _LSB column header suffix
whismanoid 4:d9b05924ad4c 2190 cmdLine.serial().printf("_LSB\"");
whismanoid 4:d9b05924ad4c 2191 #elif LOG_PLATFORM_ANALOG_IN_VOLTS
whismanoid 4:d9b05924ad4c 2192 // _V column header suffix
whismanoid 4:d9b05924ad4c 2193 cmdLine.serial().printf("_V\"");
whismanoid 4:d9b05924ad4c 2194 #endif
whismanoid 4:d9b05924ad4c 2195 }
whismanoid 4:d9b05924ad4c 2196 #endif // defined(LOG_PLATFORM_AIN)
whismanoid 4:d9b05924ad4c 2197 // end of column header line
whismanoid 4:d9b05924ad4c 2198 cmdLine.serial().printf("\r\n");
whismanoid 4:d9b05924ad4c 2199 # if HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2200 cmdLine_DAPLINKserial.serial().printf("\r\n");
whismanoid 4:d9b05924ad4c 2201 # endif // HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2202 } // void Datalogger_PrintHeader()
whismanoid 4:d9b05924ad4c 2203
whismanoid 5:aaf8b5f5fda1 2204 //--------------------------------------------------
whismanoid 5:aaf8b5f5fda1 2205 void Datalogger_AcquireRow()
whismanoid 5:aaf8b5f5fda1 2206 {
whismanoid 5:aaf8b5f5fda1 2207 // CODE GENERATOR: example code: has no member function ScanStandardExternalClock
whismanoid 5:aaf8b5f5fda1 2208 // CODE GENERATOR: example code: has no member function ReadAINcode
whismanoid 5:aaf8b5f5fda1 2209 // CODE GENERATOR: example code: member function Read_All_Voltages
whismanoid 5:aaf8b5f5fda1 2210 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 5:aaf8b5f5fda1 2211 // Measure ADC channels in sequence from AIN0 to channelNumber_0_9.
whismanoid 5:aaf8b5f5fda1 2212 // @param[in] g_MAX11410_device.channelNumber_0_15: AIN Channel Number
whismanoid 5:aaf8b5f5fda1 2213 // @param[in] g_MAX11410_device.PowerManagement_0_2: 0=Normal, 1=AutoShutdown, 2=AutoStandby
whismanoid 5:aaf8b5f5fda1 2214 // @param[in] g_MAX11410_device.chan_id_0_1: ADC_MODE_CONTROL.CHAN_ID
whismanoid 5:aaf8b5f5fda1 2215 int channelId_0_9 = NUM_DUT_ANALOG_IN_CHANNELS-1+1;
whismanoid 5:aaf8b5f5fda1 2216 //g_MAX11410_device.channelNumber_0_15 = channelId_0_9;
whismanoid 5:aaf8b5f5fda1 2217 //g_MAX11410_device.PowerManagement_0_2 = 0;
whismanoid 5:aaf8b5f5fda1 2218 //g_MAX11410_device.chan_id_0_1 = 1;
whismanoid 5:aaf8b5f5fda1 2219 //----------------------------------------
whismanoid 5:aaf8b5f5fda1 2220 // scan AIN0..AIN9
whismanoid 5:aaf8b5f5fda1 2221 //
whismanoid 5:aaf8b5f5fda1 2222 g_MAX11410_device.Read_All_Voltages();
whismanoid 5:aaf8b5f5fda1 2223 #endif // SPI_ADC_DeviceName == MAX11410 // SPI connected ADC
whismanoid 5:aaf8b5f5fda1 2224 #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs
whismanoid 5:aaf8b5f5fda1 2225 // mbed
whismanoid 5:aaf8b5f5fda1 2226 // Platform board uses simple analog inputs
whismanoid 5:aaf8b5f5fda1 2227 #if LOG_PLATFORM_ANALOG_IN_LSB
whismanoid 5:aaf8b5f5fda1 2228 Platform_LSB[0] = analogIn0.read();
whismanoid 5:aaf8b5f5fda1 2229 Platform_LSB[1] = analogIn1.read();
whismanoid 5:aaf8b5f5fda1 2230 Platform_LSB[2] = analogIn2.read();
whismanoid 5:aaf8b5f5fda1 2231 Platform_LSB[3] = analogIn3.read();
whismanoid 5:aaf8b5f5fda1 2232 Platform_LSB[4] = analogIn4.read();
whismanoid 5:aaf8b5f5fda1 2233 Platform_LSB[5] = analogIn5.read();
whismanoid 5:aaf8b5f5fda1 2234 #elif LOG_PLATFORM_ANALOG_IN_VOLTS
whismanoid 5:aaf8b5f5fda1 2235 Platform_Voltage[0] = analogIn0.read() * adc_full_scale_voltage[0];
whismanoid 5:aaf8b5f5fda1 2236 Platform_Voltage[1] = analogIn1.read() * adc_full_scale_voltage[1];
whismanoid 5:aaf8b5f5fda1 2237 Platform_Voltage[2] = analogIn2.read() * adc_full_scale_voltage[2];
whismanoid 5:aaf8b5f5fda1 2238 Platform_Voltage[3] = analogIn3.read() * adc_full_scale_voltage[3];
whismanoid 5:aaf8b5f5fda1 2239 Platform_Voltage[4] = analogIn4.read() * adc_full_scale_voltage[4];
whismanoid 5:aaf8b5f5fda1 2240 Platform_Voltage[5] = analogIn5.read() * adc_full_scale_voltage[5];
whismanoid 5:aaf8b5f5fda1 2241 #endif
whismanoid 5:aaf8b5f5fda1 2242 #endif // defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs
whismanoid 5:aaf8b5f5fda1 2243
whismanoid 5:aaf8b5f5fda1 2244 #if VERIFY_PART_ID_IN_LOOP
whismanoid 5:aaf8b5f5fda1 2245 // PART_ID field: Device ID Validation
whismanoid 5:aaf8b5f5fda1 2246 const uint32_t part_id_expect = 0x000F02;
whismanoid 5:aaf8b5f5fda1 2247 uint32_t part_id_readback;
whismanoid 5:aaf8b5f5fda1 2248 g_MAX11410_device.RegRead(MAX11410::CMD_r001_0001_xxxx_xxxx_xxxx_xxxx_xxxx_xddd_PART_ID, &part_id_readback);
whismanoid 5:aaf8b5f5fda1 2249 #endif // VERIFY_PART_ID_IN_LOOP
whismanoid 5:aaf8b5f5fda1 2250 } // void Datalogger_AcquireRow()
whismanoid 5:aaf8b5f5fda1 2251
whismanoid 5:aaf8b5f5fda1 2252 //--------------------------------------------------
whismanoid 5:aaf8b5f5fda1 2253 void Datalogger_PrintRow()
whismanoid 5:aaf8b5f5fda1 2254 {
whismanoid 5:aaf8b5f5fda1 2255 int field_index = 0;
whismanoid 5:aaf8b5f5fda1 2256 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 5:aaf8b5f5fda1 2257 for (int channel_index = 0; channel_index < NUM_DUT_ANALOG_IN_CHANNELS; field_index++, channel_index++) {
whismanoid 5:aaf8b5f5fda1 2258 if (SPI_AIN_Enable_ch[channel_index] == Disable) {
whismanoid 5:aaf8b5f5fda1 2259 continue;
whismanoid 5:aaf8b5f5fda1 2260 }
whismanoid 5:aaf8b5f5fda1 2261 // comma between fields
whismanoid 5:aaf8b5f5fda1 2262 if (field_index > 0) {
whismanoid 5:aaf8b5f5fda1 2263 cmdLine.serial().printf(",");
whismanoid 5:aaf8b5f5fda1 2264 # if HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2265 cmdLine_DAPLINKserial.serial().printf(",");
whismanoid 5:aaf8b5f5fda1 2266 # endif // HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2267 }
whismanoid 5:aaf8b5f5fda1 2268 cmdLine.serial().printf("%d", g_MAX11410_device.AINcode[channel_index]);
whismanoid 5:aaf8b5f5fda1 2269 }
whismanoid 5:aaf8b5f5fda1 2270 #if VERIFY_PART_ID_IN_LOOP
whismanoid 5:aaf8b5f5fda1 2271 // PART_ID field: Device ID Validation
whismanoid 5:aaf8b5f5fda1 2272 if (part_id_readback != part_id_expect) {
whismanoid 5:aaf8b5f5fda1 2273 cmdLine.serial().printf(",\"FAIL\"");
whismanoid 5:aaf8b5f5fda1 2274 # if HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2275 cmdLine_DAPLINKserial.serial().printf(",\"FAIL\"");
whismanoid 5:aaf8b5f5fda1 2276 # endif // HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2277
whismanoid 5:aaf8b5f5fda1 2278 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 5:aaf8b5f5fda1 2279 g_MAX11410_device.Init();
whismanoid 5:aaf8b5f5fda1 2280 g_MAX11410_device.v_filter = SPI_AIN_Cfg_v_filter_ch[0];
whismanoid 5:aaf8b5f5fda1 2281 g_MAX11410_device.v_ctrl = SPI_AIN_Cfg_v_ctrl_ch[0];
whismanoid 5:aaf8b5f5fda1 2282 g_MAX11410_device.v_pga = SPI_AIN_Cfg_v_pga_ch[0];
whismanoid 5:aaf8b5f5fda1 2283 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 5:aaf8b5f5fda1 2284 }
whismanoid 5:aaf8b5f5fda1 2285 else {
whismanoid 5:aaf8b5f5fda1 2286 cmdLine.serial().printf(",\"OK\"");
whismanoid 5:aaf8b5f5fda1 2287 # if HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2288 cmdLine_DAPLINKserial.serial().printf(",\"OK\"");
whismanoid 5:aaf8b5f5fda1 2289 # endif // HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2290
whismanoid 5:aaf8b5f5fda1 2291 }
whismanoid 5:aaf8b5f5fda1 2292 #endif // VERIFY_PART_ID_IN_LOOP
whismanoid 5:aaf8b5f5fda1 2293 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 5:aaf8b5f5fda1 2294 #if defined(LOG_PLATFORM_AIN) // Datalog Arduino platform analog inputs
whismanoid 5:aaf8b5f5fda1 2295 for (int channel_index = 0; channel_index < NUM_PLATFORM_ANALOG_IN_CHANNELS; field_index++, channel_index++) {
whismanoid 5:aaf8b5f5fda1 2296 // comma between fields
whismanoid 5:aaf8b5f5fda1 2297 if (field_index > 0) {
whismanoid 5:aaf8b5f5fda1 2298 cmdLine.serial().printf(",");
whismanoid 5:aaf8b5f5fda1 2299 }
whismanoid 5:aaf8b5f5fda1 2300 #if LOG_PLATFORM_ANALOG_IN_LSB
whismanoid 5:aaf8b5f5fda1 2301 cmdLine.serial().printf("%u", Platform_LSB[channel_index]);
whismanoid 5:aaf8b5f5fda1 2302 # if HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2303 cmdLine_DAPLINKserial.serial().printf("%u", Platform_LSB[channel_index]);
whismanoid 5:aaf8b5f5fda1 2304 # endif // HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2305 #elif LOG_PLATFORM_ANALOG_IN_VOLTS
whismanoid 5:aaf8b5f5fda1 2306 cmdLine.serial().printf("%6.6fV", Platform_Voltage[channel_index]);
whismanoid 5:aaf8b5f5fda1 2307 # if HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2308 cmdLine_DAPLINKserial.serial().printf("%6.6fV", Platform_Voltage[channel_index]);
whismanoid 5:aaf8b5f5fda1 2309 # endif // HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2310 #endif // #if LOG_PLATFORM_ANALOG_IN_LSB LOG_PLATFORM_ANALOG_IN_VOLTS
whismanoid 5:aaf8b5f5fda1 2311 }
whismanoid 5:aaf8b5f5fda1 2312 #endif // defined(LOG_PLATFORM_AIN)
whismanoid 5:aaf8b5f5fda1 2313 cmdLine.serial().printf("\r\n");
whismanoid 5:aaf8b5f5fda1 2314 # if HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2315 cmdLine_DAPLINKserial.serial().printf("\r\n");
whismanoid 5:aaf8b5f5fda1 2316 # endif // HAS_DAPLINK_SERIAL
whismanoid 5:aaf8b5f5fda1 2317 } // void Datalogger_PrintRow()
whismanoid 5:aaf8b5f5fda1 2318
whismanoid 0:cb44e2e9ec4c 2319 // CODE GENERATOR: example code for ADC: serial port declaration
whismanoid 1:747f1602abfc 2320 //--------------------------------------------------
whismanoid 1:747f1602abfc 2321 // Declare the Serial driver
whismanoid 1:747f1602abfc 2322 // default baud rate settings are 9600 8N1
whismanoid 1:747f1602abfc 2323 // install device driver from http://developer.mbed.org/media/downloads/drivers/mbedWinSerial_16466.exe
whismanoid 1:747f1602abfc 2324 // see docs https://docs.mbed.com/docs/mbed-os-handbook/en/5.5/getting_started/what_need/
whismanoid 1:747f1602abfc 2325 #if defined(TARGET_MAX32630)
whismanoid 1:747f1602abfc 2326 #include "USBSerial.h"
whismanoid 1:747f1602abfc 2327 // Hardware serial port over DAPLink
whismanoid 1:747f1602abfc 2328 // The default baud rate for the DapLink UART is 9600
whismanoid 1:747f1602abfc 2329 //Serial DAPLINKserial(P2_1, P2_0); // tx, rx
whismanoid 1:747f1602abfc 2330 // #define HAS_DAPLINK_SERIAL 1
whismanoid 1:747f1602abfc 2331 // Virtual serial port over USB
whismanoid 1:747f1602abfc 2332 // The baud rate does not affect the virtual USBSerial UART.
whismanoid 1:747f1602abfc 2333 USBSerial serial;
whismanoid 1:747f1602abfc 2334 //--------------------------------------------------
whismanoid 1:747f1602abfc 2335 #elif defined(TARGET_MAX32625MBED)
whismanoid 1:747f1602abfc 2336 #include "USBSerial.h"
whismanoid 1:747f1602abfc 2337 // Hardware serial port over DAPLink
whismanoid 1:747f1602abfc 2338 // The default baud rate for the DapLink UART is 9600
whismanoid 1:747f1602abfc 2339 //Serial DAPLINKserial(P2_1, P2_0); // tx, rx
whismanoid 1:747f1602abfc 2340 // #define HAS_DAPLINK_SERIAL 1
whismanoid 1:747f1602abfc 2341 // Virtual serial port over USB
whismanoid 1:747f1602abfc 2342 // The baud rate does not affect the virtual USBSerial UART.
whismanoid 1:747f1602abfc 2343 USBSerial serial;
whismanoid 1:747f1602abfc 2344 //--------------------------------------------------
whismanoid 2:3caa9b974176 2345 #elif defined(TARGET_MAX32625PICO)
whismanoid 2:3caa9b974176 2346 #include "USBSerial.h"
whismanoid 3:9055e17e181a 2347 // Virtual serial port over USB
whismanoid 2:3caa9b974176 2348 // The baud rate does not affect the virtual USBSerial UART.
whismanoid 3:9055e17e181a 2349 USBSerial serial;
whismanoid 6:f6d16658342b 2350 // TX/RX auxiliary UART port cmdLine_AUXserial AUXserial
whismanoid 6:f6d16658342b 2351 Serial AUXserial(UART0_TX, UART0_RX); // MAX32625PICO pin 19/20 TX P0_1, RX P0_0
whismanoid 6:f6d16658342b 2352 #define HAS_AUX_SERIAL 1
whismanoid 6:f6d16658342b 2353 //Serial serial(UART1_TX, UART1_RX); // MAX32625PICO underside? TX P2_1, RX P2_0
whismanoid 6:f6d16658342b 2354 //Serial DAPLINKserial(UART2_TX, UART2_RX); // MAX32625PICO DAPLINK TX P3_1, RX P3_0
whismanoid 6:f6d16658342b 2355 // #define HAS_DAPLINK_SERIAL 1
whismanoid 3:9055e17e181a 2356 //--------------------------------------------------
whismanoid 3:9055e17e181a 2357 #elif defined(TARGET_MAX32620FTHR)
whismanoid 3:9055e17e181a 2358 #warning "TARGET_MAX32620FTHR not previously tested; need to define serial pins..."
whismanoid 3:9055e17e181a 2359 // Hardware serial port over DAPLink
whismanoid 3:9055e17e181a 2360 // The default baud rate for the DapLink UART is 9600
whismanoid 3:9055e17e181a 2361 Serial DAPLINKserial(USBTX, USBRX); // tx, rx MAX32620FTHR: P2_1,P2_0
whismanoid 3:9055e17e181a 2362 //Serial DAPLINKserial(STDIO_UART_TX, STDIO_UART_RX); // tx, rx
whismanoid 3:9055e17e181a 2363 #define HAS_DAPLINK_SERIAL 1
whismanoid 3:9055e17e181a 2364 // Virtual serial port over USB
whismanoid 3:9055e17e181a 2365 // The baud rate does not affect the virtual USBSerial UART.
whismanoid 3:9055e17e181a 2366 // #include "USBSerial.h"
whismanoid 3:9055e17e181a 2367 //USBSerial serial;
whismanoid 3:9055e17e181a 2368 //Serial serial(UART0_TX, UART0_RX); // tx, rx MAX32620FTHR: P0_1,P0_0 (PMOD Port 0)
whismanoid 3:9055e17e181a 2369 //Serial serial(UART1_TX, UART1_RX); // tx, rx MAX32620FTHR: P2_1,P2_0 (DAPLINK)
whismanoid 6:f6d16658342b 2370 // TX/RX auxiliary UART port cmdLine_AUXserial AUXserial
whismanoid 6:f6d16658342b 2371 Serial AUXserial(UART2_TX, UART2_RX); // tx, rx MAX32620FTHR: P3_1,P3_0 (J1.15,J1.14)
whismanoid 6:f6d16658342b 2372 #define HAS_AUX_SERIAL 1
whismanoid 3:9055e17e181a 2373 //Serial serial(UART3_TX, UART3_RX); // tx, rx MAX32620FTHR: P5_4,P5_3 (J2.7,J2.8)
whismanoid 3:9055e17e181a 2374 //Serial serial(SERIAL_TX, SERIAL_RX); // tx, rx
whismanoid 3:9055e17e181a 2375 //Serial serial(UART_TX, UART_RX); // tx, rx
whismanoid 2:3caa9b974176 2376 //--------------------------------------------------
whismanoid 1:747f1602abfc 2377 #elif defined(TARGET_MAX32600)
whismanoid 1:747f1602abfc 2378 #include "USBSerial.h"
whismanoid 1:747f1602abfc 2379 // Hardware serial port over DAPLink
whismanoid 1:747f1602abfc 2380 // The default baud rate for the DapLink UART is 9600
whismanoid 1:747f1602abfc 2381 Serial DAPLINKserial(P1_1, P1_0); // tx, rx
whismanoid 1:747f1602abfc 2382 #define HAS_DAPLINK_SERIAL 1
whismanoid 1:747f1602abfc 2383 // Virtual serial port over USB
whismanoid 1:747f1602abfc 2384 // The baud rate does not affect the virtual USBSerial UART.
whismanoid 1:747f1602abfc 2385 USBSerial serial;
whismanoid 1:747f1602abfc 2386 //--------------------------------------------------
whismanoid 1:747f1602abfc 2387 #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE)
whismanoid 1:747f1602abfc 2388 Serial serial(SERIAL_TX, SERIAL_RX); // tx, rx
whismanoid 1:747f1602abfc 2389 //--------------------------------------------------
whismanoid 1:747f1602abfc 2390 #else
whismanoid 1:747f1602abfc 2391 #if defined(SERIAL_TX)
whismanoid 1:747f1602abfc 2392 #warning "target not previously tested; guess serial pins are SERIAL_TX, SERIAL_RX..."
whismanoid 1:747f1602abfc 2393 Serial serial(SERIAL_TX, SERIAL_RX); // tx, rx
whismanoid 1:747f1602abfc 2394 #elif defined(USBTX)
whismanoid 1:747f1602abfc 2395 #warning "target not previously tested; guess serial pins are USBTX, USBRX..."
whismanoid 1:747f1602abfc 2396 Serial serial(USBTX, USBRX); // tx, rx
whismanoid 1:747f1602abfc 2397 #elif defined(UART_TX)
whismanoid 1:747f1602abfc 2398 #warning "target not previously tested; guess serial pins are UART_TX, UART_RX..."
whismanoid 1:747f1602abfc 2399 Serial serial(UART_TX, UART_RX); // tx, rx
whismanoid 1:747f1602abfc 2400 #else
whismanoid 1:747f1602abfc 2401 #warning "target not previously tested; need to define serial pins..."
whismanoid 1:747f1602abfc 2402 #endif
whismanoid 1:747f1602abfc 2403 #endif
whismanoid 1:747f1602abfc 2404 //
whismanoid 1:747f1602abfc 2405 #include "CmdLine.h"
whismanoid 1:747f1602abfc 2406
whismanoid 6:f6d16658342b 2407 # if HAS_AUX_SERIAL
whismanoid 6:f6d16658342b 2408 // TX/RX auxiliary UART port cmdLine_AUXserial AUXserial
whismanoid 6:f6d16658342b 2409 CmdLine cmdLine_AUXserial(AUXserial, "AUXserial");
whismanoid 6:f6d16658342b 2410 # endif // HAS_AUX_SERIAL
whismanoid 1:747f1602abfc 2411 # if HAS_DAPLINK_SERIAL
whismanoid 1:747f1602abfc 2412 CmdLine cmdLine_DAPLINKserial(DAPLINKserial, "DAPLINK");
whismanoid 1:747f1602abfc 2413 # endif // HAS_DAPLINK_SERIAL
whismanoid 1:747f1602abfc 2414 CmdLine cmdLine(serial, "serial");
whismanoid 1:747f1602abfc 2415
whismanoid 0:cb44e2e9ec4c 2416 // example code main function
whismanoid 0:cb44e2e9ec4c 2417 int main()
whismanoid 0:cb44e2e9ec4c 2418 {
whismanoid 0:cb44e2e9ec4c 2419 // setup: put your setup code here, to run once
whismanoid 4:d9b05924ad4c 2420 #if USE_CMDLINE_MENUS // support CmdLine command menus
whismanoid 4:d9b05924ad4c 2421 // Configure serial ports
whismanoid 4:d9b05924ad4c 2422 cmdLine.clear();
whismanoid 4:d9b05924ad4c 2423 //~ cmdLine.serial().printf("\r\n cmdLine.serial().printf test\r\n");
whismanoid 4:d9b05924ad4c 2424 cmdLine.onEOLcommandParser = main_menu_onEOLcommandParser;
whismanoid 4:d9b05924ad4c 2425 //~ cmdLine.diagnostic_led_EOF = diagnostic_led_EOF;
whismanoid 4:d9b05924ad4c 2426 /// CmdLine::set_immediate_handler(char, functionPointer_void_void_on_immediate_0x21);
whismanoid 4:d9b05924ad4c 2427 //~ cmdLine.on_immediate_0x21 = on_immediate_0x21;
whismanoid 4:d9b05924ad4c 2428 //~ cmdLine.on_immediate_0x7b = on_immediate_0x7b;
whismanoid 4:d9b05924ad4c 2429 //~ cmdLine.on_immediate_0x7d = on_immediate_0x7d;
whismanoid 4:d9b05924ad4c 2430 # if HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2431 cmdLine_DAPLINKserial.clear();
whismanoid 4:d9b05924ad4c 2432 //~ cmdLine_DAPLINKserial.serial().printf("\r\n cmdLine_DAPLINKserial.serial().printf test\r\n");
whismanoid 4:d9b05924ad4c 2433 cmdLine_DAPLINKserial.onEOLcommandParser = main_menu_onEOLcommandParser;
whismanoid 4:d9b05924ad4c 2434 //~ cmdLine_DAPLINKserial.on_immediate_0x21 = on_immediate_0x21;
whismanoid 4:d9b05924ad4c 2435 //~ cmdLine_DAPLINKserial.on_immediate_0x7b = on_immediate_0x7b;
whismanoid 4:d9b05924ad4c 2436 //~ cmdLine_DAPLINKserial.on_immediate_0x7d = on_immediate_0x7d;
whismanoid 4:d9b05924ad4c 2437 # endif
whismanoid 6:f6d16658342b 2438 # if HAS_AUX_SERIAL
whismanoid 6:f6d16658342b 2439 // TX/RX auxiliary UART port cmdLine_AUXserial AUXserial
whismanoid 6:f6d16658342b 2440 cmdLine_AUXserial.clear();
whismanoid 6:f6d16658342b 2441 //~ cmdLine_AUXserial.serial().printf("\r\n cmdLine_AUXserial.serial().printf test\r\n");
whismanoid 6:f6d16658342b 2442 cmdLine_AUXserial.onEOLcommandParser = main_menu_onEOLcommandParser;
whismanoid 6:f6d16658342b 2443 //~ cmdLine_AUXserial.on_immediate_0x21 = on_immediate_0x21;
whismanoid 6:f6d16658342b 2444 //~ cmdLine_AUXserial.on_immediate_0x7b = on_immediate_0x7b;
whismanoid 6:f6d16658342b 2445 //~ cmdLine_AUXserial.on_immediate_0x7d = on_immediate_0x7d;
whismanoid 6:f6d16658342b 2446 # endif // HAS_AUX_SERIAL
whismanoid 4:d9b05924ad4c 2447 #endif // USE_CMDLINE_MENUS support CmdLine command menus
whismanoid 0:cb44e2e9ec4c 2448
whismanoid 0:cb44e2e9ec4c 2449 // example code: serial port banner message
whismanoid 0:cb44e2e9ec4c 2450 wait(3); // 3000ms timing delay function, platform-specific
whismanoid 3:9055e17e181a 2451 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 3:9055e17e181a 2452 cmdLine.serial().printf("\r\nDataLogger_MAX11410\r\n"); // instead of Hello_MAX11410
whismanoid 3:9055e17e181a 2453 #else // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 0:cb44e2e9ec4c 2454 cmdLine.serial().printf("\r\nInternal_DataLogger\r\n"); // instead of Hello_MAX11410
whismanoid 3:9055e17e181a 2455 # if HAS_DAPLINK_SERIAL
whismanoid 3:9055e17e181a 2456 cmdLine_DAPLINKserial.serial().printf("\r\nInternal_DataLogger\r\n"); // instead of Hello_MAX11410
whismanoid 3:9055e17e181a 2457 # endif // HAS_DAPLINK_SERIAL
whismanoid 6:f6d16658342b 2458 # if HAS_AUX_SERIAL
whismanoid 6:f6d16658342b 2459 cmdLine_AUXserial.serial().printf("\r\nInternal_DataLogger\r\n"); // instead of Hello_MAX11410
whismanoid 6:f6d16658342b 2460 # endif // HAS_AUX_SERIAL
whismanoid 3:9055e17e181a 2461 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 3:9055e17e181a 2462
whismanoid 1:747f1602abfc 2463 // CODE GENERATOR: get spi properties from device
whismanoid 3:9055e17e181a 2464 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 3:9055e17e181a 2465 if (g_SPI_SCLK_Hz > g_MAX11410_device.get_spi_frequency())
whismanoid 3:9055e17e181a 2466 { // Device limits SPI SCLK frequency
whismanoid 3:9055e17e181a 2467 g_SPI_SCLK_Hz = g_MAX11410_device.get_spi_frequency();
whismanoid 3:9055e17e181a 2468 cmdLine.serial().printf("\r\nMAX11410 limits SPI SCLK frequency to %ld Hz\r\n", g_SPI_SCLK_Hz);
whismanoid 3:9055e17e181a 2469
whismanoid 3:9055e17e181a 2470 g_MAX11410_device.Init();
whismanoid 3:9055e17e181a 2471 }
whismanoid 3:9055e17e181a 2472 if (g_MAX11410_device.get_spi_frequency() > g_SPI_SCLK_Hz)
whismanoid 3:9055e17e181a 2473 { // Platform limits SPI SCLK frequency
whismanoid 3:9055e17e181a 2474 g_MAX11410_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 3:9055e17e181a 2475 cmdLine.serial().printf("\r\nPlatform limits MAX11410 SPI SCLK frequency to %ld Hz\r\n", g_SPI_SCLK_Hz);
whismanoid 3:9055e17e181a 2476
whismanoid 3:9055e17e181a 2477 g_MAX11410_device.Init();
whismanoid 3:9055e17e181a 2478 }
whismanoid 0:cb44e2e9ec4c 2479 // g_SPI_dataMode = g_MAX11410_device.get_spi_dataMode();
whismanoid 3:9055e17e181a 2480 while (g_MAX11410_device.Init() == 0)
whismanoid 3:9055e17e181a 2481 {
whismanoid 3:9055e17e181a 2482 wait(3); // 3000ms timing delay function, platform-specific
whismanoid 3:9055e17e181a 2483 cmdLine.serial().printf("\r\nMAX11410 Init failed; retry...\r\n");
whismanoid 3:9055e17e181a 2484
whismanoid 3:9055e17e181a 2485 }
whismanoid 0:cb44e2e9ec4c 2486
whismanoid 0:cb44e2e9ec4c 2487 // ---------- CUSTOMIZED from MAX11410_Hello after g_MAX11410_device.Init() ----------
whismanoid 3:9055e17e181a 2488 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 3:9055e17e181a 2489 g_MAX11410_device.v_filter = SPI_AIN_Cfg_v_filter_ch[0];
whismanoid 3:9055e17e181a 2490 g_MAX11410_device.v_pga = SPI_AIN_Cfg_v_pga_ch[0];
whismanoid 3:9055e17e181a 2491 g_MAX11410_device.v_ctrl = SPI_AIN_Cfg_v_ctrl_ch[0];
whismanoid 3:9055e17e181a 2492 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 0:cb44e2e9ec4c 2493 // ---------- CUSTOMIZED from MAX11410_Hello ----------
whismanoid 3:9055e17e181a 2494 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 0:cb44e2e9ec4c 2495 // CODE GENERATOR: example code: has no member function REF
whismanoid 0:cb44e2e9ec4c 2496 // CODE GENERATOR: example code for ADC: repeat-forever convert and print conversion result, one record per line
whismanoid 0:cb44e2e9ec4c 2497 // CODE GENERATOR: ResolutionBits = 24
whismanoid 0:cb44e2e9ec4c 2498 // CODE GENERATOR: FScode = 0xffffff
whismanoid 0:cb44e2e9ec4c 2499 // CODE GENERATOR: NumChannels = 10
whismanoid 0:cb44e2e9ec4c 2500 // CODE GENERATOR: banner before DataLogHelloCppCodeList while(1)
whismanoid 3:9055e17e181a 2501 #if defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 3:9055e17e181a 2502 cmdLine.serial().printf("v_filter = 0x%2.2x\r\n", g_MAX11410_device.v_filter);
whismanoid 0:cb44e2e9ec4c 2503
whismanoid 3:9055e17e181a 2504 cmdLine.serial().printf("v_pga = 0x%2.2x\r\n", g_MAX11410_device.v_pga);
whismanoid 0:cb44e2e9ec4c 2505
whismanoid 3:9055e17e181a 2506 cmdLine.serial().printf("v_ctrl = 0x%2.2x\r\n", g_MAX11410_device.v_ctrl);
whismanoid 3:9055e17e181a 2507
whismanoid 3:9055e17e181a 2508 #endif // defined(SPI_ADC_DeviceName) // SPI connected ADC
whismanoid 0:cb44e2e9ec4c 2509
whismanoid 3:9055e17e181a 2510 // column header banner for csv data columns
whismanoid 4:d9b05924ad4c 2511 Datalogger_PrintHeader();
whismanoid 4:d9b05924ad4c 2512
whismanoid 4:d9b05924ad4c 2513 while(1) { // this code repeats forever
whismanoid 4:d9b05924ad4c 2514 // this code repeats forever
whismanoid 4:d9b05924ad4c 2515
whismanoid 4:d9b05924ad4c 2516 #if USE_CMDLINE_MENUS // support CmdLine command menus
whismanoid 4:d9b05924ad4c 2517 // TODO support CmdLine command menus (like on Serial_Tester); help and usual boilerplate
whismanoid 6:f6d16658342b 2518 # if HAS_AUX_SERIAL
whismanoid 6:f6d16658342b 2519 if (AUXserial.readable()) {
whismanoid 6:f6d16658342b 2520 cmdLine_AUXserial.append(AUXserial.getc());
whismanoid 6:f6d16658342b 2521 }
whismanoid 6:f6d16658342b 2522 # endif // HAS_AUX_SERIAL
whismanoid 6:f6d16658342b 2523 # if HAS_DAPLINK_SERIAL
whismanoid 6:f6d16658342b 2524 if (DAPLINKserial.readable()) {
whismanoid 6:f6d16658342b 2525 cmdLine_DAPLINKserial.append(DAPLINKserial.getc());
whismanoid 6:f6d16658342b 2526 }
whismanoid 6:f6d16658342b 2527 # endif // HAS_DAPLINK_SERIAL
whismanoid 4:d9b05924ad4c 2528 if (serial.readable()) {
whismanoid 4:d9b05924ad4c 2529 int c = serial.getc(); // instead of getc() or fgetc()
whismanoid 4:d9b05924ad4c 2530 cmdLine.append(c);
whismanoid 4:d9b05924ad4c 2531 // cmdLine.onEOLcommandParser handler implements menus
whismanoid 4:d9b05924ad4c 2532 } // if (Serial.available())
whismanoid 4:d9b05924ad4c 2533 #endif // USE_CMDLINE_MENUS support CmdLine command menus
whismanoid 4:d9b05924ad4c 2534
whismanoid 4:d9b05924ad4c 2535 #if USE_DATALOGGER_TRIGGER // support Datalog trigger
whismanoid 4:d9b05924ad4c 2536 // TODO Datalog trigger
whismanoid 4:d9b05924ad4c 2537 if (Datalogger_Trigger == trigger_Halt) {
whismanoid 4:d9b05924ad4c 2538 // halt the datalogger; continue accepting commands
whismanoid 3:9055e17e181a 2539 continue;
whismanoid 3:9055e17e181a 2540 }
whismanoid 4:d9b05924ad4c 2541 if (Datalogger_Trigger == trigger_FreeRun) {
whismanoid 4:d9b05924ad4c 2542 // free run as fast as possible
whismanoid 3:9055e17e181a 2543 }
whismanoid 4:d9b05924ad4c 2544 if (Datalogger_Trigger == trigger_Timer) {
whismanoid 4:d9b05924ad4c 2545 // timer (configure interval)
whismanoid 3:9055e17e181a 2546 }
whismanoid 4:d9b05924ad4c 2547 if (Datalogger_Trigger == trigger_PlatformDigitalInput) {
whismanoid 4:d9b05924ad4c 2548 // platform digital input (configure digital input pin reference)
whismanoid 3:9055e17e181a 2549 }
whismanoid 4:d9b05924ad4c 2550 if (Datalogger_Trigger == trigger_SPIDeviceRegRead) {
whismanoid 4:d9b05924ad4c 2551 // SPI device register read (configure regaddr, mask value, match value)
whismanoid 4:d9b05924ad4c 2552 }
whismanoid 4:d9b05924ad4c 2553 #endif // USE_DATALOGGER_TRIGGER support Datalog trigger
whismanoid 0:cb44e2e9ec4c 2554
whismanoid 5:aaf8b5f5fda1 2555 Datalogger_AcquireRow();
whismanoid 0:cb44e2e9ec4c 2556
whismanoid 0:cb44e2e9ec4c 2557 // wait(3.0);
whismanoid 0:cb44e2e9ec4c 2558 // CODE GENERATOR: print conversion result
whismanoid 0:cb44e2e9ec4c 2559 // Use Arduino Serial Plotter to view output: Tools | Serial Plotter
whismanoid 5:aaf8b5f5fda1 2560 Datalogger_PrintRow();
whismanoid 0:cb44e2e9ec4c 2561
whismanoid 0:cb44e2e9ec4c 2562 } // this code repeats forever
whismanoid 0:cb44e2e9ec4c 2563 }
whismanoid 0:cb44e2e9ec4c 2564 //---------- CODE GENERATOR: end DataLogHelloCppCodeList