Test program running on MAX32625MBED. Control through USB Serial commands using a terminal emulator such as teraterm or putty.

Dependencies:   MaximTinyTester CmdLine MAX541 MAX5715 USBDevice

Revision:
14:cbe972986136
Parent:
13:e36d51f46794
Child:
15:2c21eaa9188b
--- a/main.cpp	Fri Jul 12 06:37:06 2019 +0000
+++ b/main.cpp	Sun Jul 14 03:16:54 2019 +0000
@@ -502,6 +502,32 @@
 //
 #endif
 //
+#if defined(TARGET_MAX32630)
+  // Before setting global variables g_SPI_SCLK_Hz and g_SPI_dataMode,
+  // workaround for TARGET_MAX32630 SPI_MODE2 SPI_MODE3 problem (issue #30)
+#warning "MAX32630 SPI workaround..."
+  // replace SPI_MODE2 (CPOL=1,CPHA=0) with SPI_MODE1 (CPOL=0,CPHA=1) Falling Edge stable
+  // replace SPI_MODE3 (CPOL=1,CPHA=1) with SPI_MODE0 (CPOL=0,CPHA=0) Rising Edge stable
+# if ((SPI_dataMode) == (SPI_MODE2))
+#warning "MAX32630 SPI_MODE2 workaround, changing SPI_dataMode to SPI_MODE1..."
+  // SPI_dataMode SPI_MODE2 // CPOL=1,CPHA=0: Falling Edge stable; SCLK idle High
+#  undef SPI_dataMode
+#  define SPI_dataMode SPI_MODE1 // CPOL=0,CPHA=1: Falling Edge stable; SCLK idle Low
+# elif ((SPI_dataMode) == (SPI_MODE3))
+#warning "MAX32630 SPI_MODE3 workaround, changing SPI_dataMode to SPI_MODE0..."
+  // SPI_dataMode SPI_MODE3 // CPOL=1,CPHA=1: Rising Edge stable; SCLK idle High
+#  undef SPI_dataMode
+#  define SPI_dataMode SPI_MODE0 // CPOL=0,CPHA=0: Rising Edge stable; SCLK idle Low
+# endif // workaround for TARGET_MAX32630 SPI_MODE2 SPI_MODE3 problem
+  // workaround for TARGET_MAX32630 SPI_MODE2 SPI_MODE3 problem (issue #30)
+  // limit SPI SCLK speed to 6MHz or less
+# if ((SPI_SCLK_Hz) > (6000000))
+#warning "MAX32630 SPI speed workaround, changing SPI_SCLK_Hz to 6000000 or 6MHz..."
+#  undef SPI_SCLK_Hz
+#  define SPI_SCLK_Hz 6000000 // 6MHz
+# endif
+#endif
+//
 uint32_t g_SPI_SCLK_Hz = SPI_SCLK_Hz;
 // TODO1: validate g_SPI_SCLK_Hz against system clock frequency SystemCoreClock F_CPU
 #if defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE)