MAX32625PICO Self Test
Dependencies: USBDevice maxim-dev mbed-rtos
Fork of FTHR_self_test by
main.cpp
- Committer:
- switches
- Date:
- 2016-12-13
- Revision:
- 5:39fe91b6d3f0
- Parent:
- 4:1c6819a42db0
- Child:
- 6:fa0134a8ac32
File content as of revision 5:39fe91b6d3f0:
#include "mbed.h" #include "max32630fthr.h" #include "USBMSD_SD.h" MAX32630FTHR pegasus; // Hardware serial port over DAPLink Serial daplink(P2_1, P2_0); DigitalOut rLED(LED1, LED_ON); DigitalOut gLED(LED2, LED_OFF); DigitalOut bLED(LED3, LED_OFF); AnalogIn monIn(AIN_0); AnalogIn vddbIn(AIN_6); AnalogIn vdd18In(AIN_7); AnalogIn vdd12In(AIN_8); AnalogIn vrtcIn(AIN_9); // Function to report failure void testFailed() { daplink.printf("\r\n! Test Failed !\r\n"); rLED = LED_ON; gLED = LED_OFF; bLED = LED_OFF; while(1) { Thread::wait(500); gLED = !gLED; } } // Function to read monitor port float readMon(MAX14690::monCfg_t monCfg){ pegasus.max14690.monSet(monCfg, MAX14690::MON_DIV4); Thread::wait(5); return (4.8f * monIn); } // main() runs in its own thread in the OS // (note the calls to Thread::wait below for delays) int main() { float aIn; daplink.printf("Initializing MAX32630FTHR\r\n"); pegasus.init(MAX32630FTHR::VIO_3V3); daplink.printf("Checking Supplies\r\n"); aIn = 2.4f * vdd12In; daplink.printf("vdd12 = %f\r\n", aIn); if ((aIn < 1.0f) || (aIn > 1.4f)) { testFailed(); } aIn = 2.4f * vdd18In; daplink.printf("vdd18 = %f\r\n", aIn); if ((aIn < 1.6f) || (aIn > 2.0f)) { testFailed(); } aIn = 4.8f * vddbIn; daplink.printf("vddb = %f\r\n", aIn); if ((aIn < 3.0f) || (aIn > 3.6f)) { testFailed(); } aIn = 2.4f * vrtcIn; daplink.printf("vrtc = %f\r\n", aIn); if ((aIn < 1.6f) || (aIn > 2.0f)) { testFailed(); } aIn = readMon(MAX14690::MON_SYS); daplink.printf("sys = %f\r\n", aIn); if ((aIn < 3.0f) || (aIn > 5.0f)) { testFailed(); } aIn = readMon(MAX14690::MON_BUCK1); daplink.printf("buck1 = %f\r\n", aIn); if ((aIn < 1.0f) || (aIn > 1.4f)) { testFailed(); } aIn = readMon(MAX14690::MON_BUCK2); daplink.printf("buck2 = %f\r\n", aIn); if ((aIn < 1.6f) || (aIn > 2.0f)) { testFailed(); } aIn = readMon(MAX14690::MON_LDO1); daplink.printf("ldo1 = %f\r\n", aIn); if ((aIn < 1.6f) || (aIn > 2.0f)) { testFailed(); } aIn = readMon(MAX14690::MON_LDO2); daplink.printf("ldo2 = %f\r\n", aIn); if ((aIn < 3.0f) || (aIn > 3.6f)) { testFailed(); } aIn = readMon(MAX14690::MON_LDO3); daplink.printf("ldo3 = %f\r\n", aIn); aIn = readMon(MAX14690::MON_LDO3); gLED = LED_ON; USBMSD_SD sd(P0_5, P0_6, P0_4, P0_7); // mosi, miso, sclk, cs rLED = LED_OFF; bLED = LED_ON; daplink.printf("Self Test Passed\r\n"); while (true) { Thread::wait(500); rLED = LED_OFF; gLED = LED_ON; bLED = LED_OFF; Thread::wait(500); rLED = LED_ON; gLED = LED_ON; bLED = LED_ON; } }