max4146x_comp

Dependencies:   MAX14690

Committer:
sdivarci
Date:
Sun Oct 25 20:10:02 2020 +0000
Revision:
0:0061165683ee
sdivarci

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sdivarci 0:0061165683ee 1 /*******************************************************************************
sdivarci 0:0061165683ee 2 * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
sdivarci 0:0061165683ee 3 *
sdivarci 0:0061165683ee 4 * Permission is hereby granted, free of charge, to any person obtaining a
sdivarci 0:0061165683ee 5 * copy of this software and associated documentation files (the "Software"),
sdivarci 0:0061165683ee 6 * to deal in the Software without restriction, including without limitation
sdivarci 0:0061165683ee 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
sdivarci 0:0061165683ee 8 * and/or sell copies of the Software, and to permit persons to whom the
sdivarci 0:0061165683ee 9 * Software is furnished to do so, subject to the following conditions:
sdivarci 0:0061165683ee 10 *
sdivarci 0:0061165683ee 11 * The above copyright notice and this permission notice shall be included
sdivarci 0:0061165683ee 12 * in all copies or substantial portions of the Software.
sdivarci 0:0061165683ee 13 *
sdivarci 0:0061165683ee 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
sdivarci 0:0061165683ee 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
sdivarci 0:0061165683ee 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
sdivarci 0:0061165683ee 17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
sdivarci 0:0061165683ee 18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
sdivarci 0:0061165683ee 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
sdivarci 0:0061165683ee 20 * OTHER DEALINGS IN THE SOFTWARE.
sdivarci 0:0061165683ee 21 *
sdivarci 0:0061165683ee 22 * Except as contained in this notice, the name of Maxim Integrated
sdivarci 0:0061165683ee 23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
sdivarci 0:0061165683ee 24 * Products, Inc. Branding Policy.
sdivarci 0:0061165683ee 25 *
sdivarci 0:0061165683ee 26 * The mere transfer of this software does not imply any licenses
sdivarci 0:0061165683ee 27 * of trade secrets, proprietary technology, copyrights, patents,
sdivarci 0:0061165683ee 28 * trademarks, maskwork rights, or any other form of intellectual
sdivarci 0:0061165683ee 29 * property whatsoever. Maxim Integrated Products, Inc. retains all
sdivarci 0:0061165683ee 30 * ownership rights.
sdivarci 0:0061165683ee 31 *******************************************************************************
sdivarci 0:0061165683ee 32 */
sdivarci 0:0061165683ee 33
sdivarci 0:0061165683ee 34 #ifndef _MAX32630FTHR_H_
sdivarci 0:0061165683ee 35 #define _MAX32630FTHR_H_
sdivarci 0:0061165683ee 36
sdivarci 0:0061165683ee 37 #include "mbed.h"
sdivarci 0:0061165683ee 38 #include "MAX14690.h"
sdivarci 0:0061165683ee 39
sdivarci 0:0061165683ee 40 /**
sdivarci 0:0061165683ee 41 * @brief MAX32630FTHR Board Support Library
sdivarci 0:0061165683ee 42 *
sdivarci 0:0061165683ee 43 * @details The MAX32630FTHR is a rapid development application board for
sdivarci 0:0061165683ee 44 * ultra low power wearable applications. It includes common peripherals and
sdivarci 0:0061165683ee 45 * expansion connectors all power optimized for getting the longest life from
sdivarci 0:0061165683ee 46 * the battery. This library configures the power and I/O for the board.
sdivarci 0:0061165683ee 47 * <br>https://www.maximintegrated.com/max32630fthr
sdivarci 0:0061165683ee 48 *
sdivarci 0:0061165683ee 49 * @code
sdivarci 0:0061165683ee 50 * #include "mbed.h"
sdivarci 0:0061165683ee 51 * #include "max32630fthr.h"
sdivarci 0:0061165683ee 52 *
sdivarci 0:0061165683ee 53 * DigitalOut led1(LED1);
sdivarci 0:0061165683ee 54 * MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
sdivarci 0:0061165683ee 55 *
sdivarci 0:0061165683ee 56 * // main() runs in its own thread in the OS
sdivarci 0:0061165683ee 57 * // (note the calls to Thread::wait below for delays)
sdivarci 0:0061165683ee 58 * int main()
sdivarci 0:0061165683ee 59 * {
sdivarci 0:0061165683ee 60 * // initialize power and I/O on MAX32630FTHR board
sdivarci 0:0061165683ee 61 * pegasus.init();
sdivarci 0:0061165683ee 62 *
sdivarci 0:0061165683ee 63 * while (true) {
sdivarci 0:0061165683ee 64 * led1 = !led1;
sdivarci 0:0061165683ee 65 * Thread::wait(500);
sdivarci 0:0061165683ee 66 * }
sdivarci 0:0061165683ee 67 * }
sdivarci 0:0061165683ee 68 * @endcode
sdivarci 0:0061165683ee 69 */
sdivarci 0:0061165683ee 70 class MAX32630FTHR
sdivarci 0:0061165683ee 71 {
sdivarci 0:0061165683ee 72 public:
sdivarci 0:0061165683ee 73 // max32630fthr configuration utilities
sdivarci 0:0061165683ee 74
sdivarci 0:0061165683ee 75 /**
sdivarci 0:0061165683ee 76 * @brief IO Voltage
sdivarci 0:0061165683ee 77 * @details Enumerated options for operating voltage
sdivarci 0:0061165683ee 78 */
sdivarci 0:0061165683ee 79 typedef enum {
sdivarci 0:0061165683ee 80 VIO_1V8 = 0x00, ///< 1.8V IO voltage at headers (from BUCK2)
sdivarci 0:0061165683ee 81 VIO_3V3 = 0x01, ///< 3.3V IO voltage at headers (from LDO2)
sdivarci 0:0061165683ee 82 } vio_t;
sdivarci 0:0061165683ee 83
sdivarci 0:0061165683ee 84 /**
sdivarci 0:0061165683ee 85 * MAX32630FTHR constructor.
sdivarci 0:0061165683ee 86 *
sdivarci 0:0061165683ee 87 */
sdivarci 0:0061165683ee 88 MAX32630FTHR();
sdivarci 0:0061165683ee 89
sdivarci 0:0061165683ee 90 /**
sdivarci 0:0061165683ee 91 * MAX32630FTHR constructor.
sdivarci 0:0061165683ee 92 *
sdivarci 0:0061165683ee 93 */
sdivarci 0:0061165683ee 94 MAX32630FTHR(vio_t vio);
sdivarci 0:0061165683ee 95
sdivarci 0:0061165683ee 96 /**
sdivarci 0:0061165683ee 97 * MAX32630FTHR destructor.
sdivarci 0:0061165683ee 98 */
sdivarci 0:0061165683ee 99 ~MAX32630FTHR();
sdivarci 0:0061165683ee 100
sdivarci 0:0061165683ee 101 /**
sdivarci 0:0061165683ee 102 * @brief Initialize MAX32630FTHR board
sdivarci 0:0061165683ee 103 * @details Initializes PMIC and I/O on MAX32630FTHR board.
sdivarci 0:0061165683ee 104 * Configures PMIC to enable LDO2 and LDO3 at 3.3V.
sdivarci 0:0061165683ee 105 * Disables resisitive pulldown on MON(AIN_0)
sdivarci 0:0061165683ee 106 * Sets default I/O voltages to 3V3 for micro SD card.
sdivarci 0:0061165683ee 107 * Sets I/O voltage for header pins to hdrVio specified.
sdivarci 0:0061165683ee 108 * @param hdrVio I/O voltage for header pins
sdivarci 0:0061165683ee 109 * @returns 0 if no errors, -1 if error.
sdivarci 0:0061165683ee 110 */
sdivarci 0:0061165683ee 111 int init(vio_t hdrVio);
sdivarci 0:0061165683ee 112
sdivarci 0:0061165683ee 113 /**
sdivarci 0:0061165683ee 114 * @brief Sets I/O Voltage
sdivarci 0:0061165683ee 115 * @details Sets the voltage rail to be used for a given pin.
sdivarci 0:0061165683ee 116 * VIO_1V8 selects VDDIO which is supplied by Buck2, which is set at 1.8V,
sdivarci 0:0061165683ee 117 * VIO_3V3 selects VDDIOH which is supplied by LDO2, which is typically 3.3V/
sdivarci 0:0061165683ee 118 * @param pin Pin whose voltage supply is being assigned.
sdivarci 0:0061165683ee 119 * @param vio Voltage rail to be used for specified pin.
sdivarci 0:0061165683ee 120 * @returns 0 if no errors, -1 if error.
sdivarci 0:0061165683ee 121 */
sdivarci 0:0061165683ee 122 int vddioh(PinName pin, vio_t vio);
sdivarci 0:0061165683ee 123
sdivarci 0:0061165683ee 124 /// Local I2C bus for configuring PMIC and accessing BMI160 IMU.
sdivarci 0:0061165683ee 125 I2C i2c;
sdivarci 0:0061165683ee 126
sdivarci 0:0061165683ee 127 /// MAX14690 PMIC Instance
sdivarci 0:0061165683ee 128 MAX14690 max14690;
sdivarci 0:0061165683ee 129
sdivarci 0:0061165683ee 130 };
sdivarci 0:0061165683ee 131
sdivarci 0:0061165683ee 132 #endif /* _MAX32630FTHR_H_ */