Example program for SDP-K1 SDP connector peripherals.

Revision:
0:689817250cb6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Aug 07 16:07:18 2020 +0000
@@ -0,0 +1,118 @@
+/*****************************************************************************
+* Copyright (c) 2019 Analog Devices, Inc.  
+* 
+* All rights reserved.
+* 
+* Redistribution and use in source and binary forms, with or without 
+* modification, are permitted provided that the following conditions are met:
+*   - Redistributions of source code must retain the above copyright notice, 
+*     this list of conditions and the following disclaimer.
+*   - Redistributions in binary form must reproduce the above copyright notice, 
+*     this list of conditions and the following disclaimer in the documentation 
+*     and/or other materials provided with the distribution.  
+*   - Modified versions of the software must be conspicuously marked as such.
+*   - This software is licensed solely and exclusively for use with 
+*     processors/products manufactured by or for Analog Devices, Inc.
+*   - This software may not be combined or merged with other code in any manner 
+*     that would cause the software to become subject to terms and 
+*     conditions which differ from those listed here.
+*   - Neither the name of Analog Devices, Inc. nor the names of its 
+*     contributors may be used to endorse or promote products derived 
+*     from this software without specific prior written permission.
+*   - The use of this software may or may not infringe the patent rights 
+*     of one or more patent holders. This license does not release you from 
+*     the requirement that you obtain separate licenses from these patent 
+*     holders to use this software.
+* 
+* THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" 
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
+* NON-INFRINGEMENT, TITLE, MERCHANTABILITY AND FITNESS FOR A 
+* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, 
+* INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+* SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES 
+* (INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF 
+* INTELLECTUAL PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE 
+* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
+* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
+* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
+* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+* POSSIBILITY OF SUCH DAMAGE.
+* 
+* 20180927-7CBSD SLA
+*****************************************************************************/
+
+/* 
+The SDP connector is a 120 pin connector used on Analog Devices controller 
+boards to interface with ADI evaluation boards, over 450 ADI evaluation boards 
+utilise this connector, a list of these boards can be found at 
+https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-development-platforms/sdp.html#Compatible-Boards.
+
+The following is an example program showing how to initialise and use SDP 
+connector peripherals (using SPI and GPIOs as an example) on the SDP-K1 in mbed.
+Informtion on the pin name definitions for the SDP connector on the SDP-K1 can 
+be found at https://os.mbed.com/platforms/SDP_K1/.
+The full list of peripherals available on the SDP connector include GPIOs, 
+Timers, SPI, I2C, and UART. For further information on how to enable these 
+peripherals, consult the mbed documentation https://os.mbed.com/docs/mbed-os/v5.15/apis/drivers.html
+*/
+#include "mbed.h"
+#include "platform/mbed_thread.h"
+
+// Blinking rate in milliseconds
+#define SLEEP_TIME                  500
+
+// Initialise the digital pin LED1 as an output
+DigitalOut led1(LED1);
+
+// Initialise the serial object with TX and RX pins
+Serial pc(USBTX, USBRX);
+
+// Initialise the SDP connector SPI peripheral (mosi, miso, clk)
+SPI spi(SDP_SPI_MOSI, SDP_SPI_MISO, SDP_SPI_SCK); // SDP coonector pin no. (84, 83, 82)
+
+// SDP SPI CS A (one of 3 available chip selects on the SDP connector)
+DigitalOut cs_a(SDP_SPI_CS_A); // SDP connector pin no. 85
+
+// Initialise GPIOs, there are 8 available SDP connector GPIO's (GPIO 0-7)
+DigitalOut gpio1(SDP_GPIO_1); // GPIO pin 1 - SDP connector pin no. 78
+DigitalOut gpio2(SDP_GPIO_2); // GPIO pin 2 - SDP connector pin no. 44   
+    
+// main() runs in its own thread in the OS
+int main()
+{
+    
+    uint8_t receive;
+    
+    // Default chip select high
+    cs_a = 1;
+    
+    // Setting GPIOs low initially
+    gpio1 = 0;
+    gpio2 = 0;
+    
+    while(true){
+    
+        // Toggling GPIOs 
+        gpio1 = !gpio1;
+        
+        gpio2 = !gpio2;    
+        
+        // Set CS low for SPI write
+        cs_a = 0;
+        // Performing SPI write/read  (loopback if MOSI and MISO lines are connected)
+        receive = spi.write(0x0A);
+        // Set CS high after performing SPI write
+        cs_a = 1;
+        
+        // Toggling GPIOs
+        gpio1 = !gpio1;
+        
+        gpio2 = !gpio2;   
+        
+        // Blink LED and wait 500 ms
+        led1 = !led1;
+        thread_sleep_for(SLEEP_TIME);
+        
+    }
+    
+}
\ No newline at end of file