I2C/SPI/GPIO example for MAX32625PICO board

Dependencies:   SerialInterface USBDevice max32625pico

Fork of PICO_USB_I2C_SPI by Greg Steiert

Revision:
14:dd5a96c353ed
Parent:
13:fed6ff32bf5d
Child:
15:e8b28cadf100
--- a/main.cpp	Thu Apr 13 15:03:15 2017 +0000
+++ b/main.cpp	Thu Jan 25 18:46:58 2018 +0000
@@ -1,6 +1,7 @@
 #include "mbed.h"
 #include "rtos.h"
 #include "USBSerial.h"
+#include "max32625pico.h"
 #include "SerialInterface.h"
 
 #define UART_MAX_RESP_LENGTH  255
@@ -8,15 +9,15 @@
 #define USB_MAX_RESP_LENGTH  255
 #define USB_MAX_CMD_LENGTH  255
 
-// Virtual serial port over USB
-USBSerial microUSB;
+// configure VDDIOH to local 3.3V supply, set dipVio and swdVio to 1.8V supply
+MAX32625PICO pico(MAX32625PICO::IOH_3V3, MAX32625PICO::VIO_1V8, MAX32625PICO::VIO_1V8);
 
-// Hardware serial port over DAPLink
-Serial daplink(P2_1, P2_0);
+// Virtual serial port over USB
+USBSerial microUSB(0x0B6A, 0x4360);
 
 // Serial Interfaces
 I2C i2c(P1_6, P1_7);
-SPI spi(P1_5, P1_6, P1_4);
+SPI spi(P0_5, P0_6, P0_4);
 DigitalInOut gpio[] = {P0_0, P0_1, P0_2, P0_3, P4_4, P4_5, P4_6, P4_7};
 AnalogIn ain[] = {AIN_0, AIN_1, AIN_2, AIN_3, AIN_4, AIN_5, AIN_6, AIN_7};
 
@@ -25,7 +26,6 @@
 
 // Threads
 Thread threadUSB;
-Thread threadUART;
 
 DigitalOut rLED(LED1);
 DigitalOut gLED(LED2);
@@ -63,37 +63,6 @@
     }
 }
 
-void uart_thread()
-{
-    char obuf[UART_MAX_RESP_LENGTH+1];
-    char ibuf[UART_MAX_CMD_LENGTH+1];
-    int i = 0;
-
-    daplink.printf("daplink serial port\r\n");
-
-    while(1) {
-        if (daplink.readable()) {
-            ibuf[i]=daplink.getc();
-            if (ibuf[i]!='\r') {
-                if (i < UART_MAX_CMD_LENGTH) {
-                    i += 1;
-                }
-            } else {
-                bLED = LED_ON;
-                if (i < UART_MAX_CMD_LENGTH) {
-                    ibuf[i]=0;
-//                    daplink.printf("UART CMD:  %s=", ibuf);
-                    serInt.call(ibuf, obuf);
-                    daplink.printf("%s\r\n", obuf);
-                } else {
-                    daplink.printf("[-1]\r\n");
-                }
-                i=0;
-                bLED = LED_OFF;
-            }
-        }
-    }
-}
 
 // main() runs in its own thread in the OS
 // (note the calls to Thread::wait below for delays)
@@ -103,24 +72,17 @@
     gLED = LED_ON;
     bLED = LED_OFF;
 
-/*  Board Initialization
- *  This is done automatically if you specify vio
- *  when you instantiate the MAX32630FTHR library
- */
-//    pegasus.init(MAX32630FTHR::VIO_3V3);
-
-//  Initialize primary SPI CS
-    gpio[0].write(1);
-    gpio[0].output();
+//  Configure P4_4 through P4_7 for 3.3V I/O
+    pico.vddioh(P4_4, MAX32625PICO::VIO_IOH);
+    pico.vddioh(P4_5, MAX32625PICO::VIO_IOH);
+    pico.vddioh(P4_6, MAX32625PICO::VIO_IOH);
+    pico.vddioh(P4_7, MAX32625PICO::VIO_IOH);
 
     rLED = LED_OFF;
 
 // Start USB serial thread
     threadUSB.start(usb_thread);
 
-// Start UART serial thread
-    threadUART.start(uart_thread);
-
 // Start main loop
     while(1) {
         Thread::wait(500);