Internal_Datalogger but with USB support removed (for MAX40108 Demo board), proof of concept that MAX32625 can be used successfully with VDDB(USB) left unpowered, as long as the USB library is not used.

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