Analog Devices
/
SDP_K1_sdp_connector_example
Example program for SDP-K1 SDP connector peripherals.
Revision 0:689817250cb6, committed 2020-08-07
- Comitter:
- Kjansen45
- Date:
- Fri Aug 07 16:07:18 2020 +0000
- Commit message:
- Repository Created;
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed-os.lib | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r 689817250cb6 main.cpp --- /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
diff -r 000000000000 -r 689817250cb6 mbed-os.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-os.lib Fri Aug 07 16:07:18 2020 +0000 @@ -0,0 +1,1 @@ +https://github.com/ARMmbed/mbed-os/#3a57ec7401a77b8b98f6356a1498cb154229483f