Testsoftware for SC16IS750

Dependencies:   SC16IS750 mbed

Files at this revision

API Documentation at this revision

Comitter:
wim
Date:
Thu Feb 13 17:12:12 2014 +0000
Parent:
1:f0d3984f2586
Child:
3:3d4269319b51
Commit message:
Testversion 2

Changed in this revision

SC16IS750.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/SC16IS750.lib	Sun Feb 09 14:58:33 2014 +0000
+++ b/SC16IS750.lib	Thu Feb 13 17:12:12 2014 +0000
@@ -1,1 +1,1 @@
-SC16IS750#0440152c5387
+SC16IS750#76cb93b511f2
--- a/main.cpp	Sun Feb 09 14:58:33 2014 +0000
+++ b/main.cpp	Thu Feb 13 17:12:12 2014 +0000
@@ -1,13 +1,64 @@
 #include "mbed.h"
 #include "SC16IS750.h"
 
+
+#if defined(TARGET_LPC1768)
+// SPI for LPC1768
+#define D_MOSI                 p5
+#define D_MISO                 p6
+#define D_SCLK                 p7
+#define D_CS                   p8
+#define D_INTR                 p15
+
+// Serial for LPC1768
+#define D_TX                   USBTX
+#define D_RX                   USBRX
+//#define D_RST                  p25
+//#define D_STS                  p26
+#endif
+
+#if defined(TARGET_KL25Z)
+// SPI for KL25Z
+#define D_MOSI                 PTD2
+#define D_MISO                 PTD3
+#define D_SCLK                 PTD1
+#define D_CS                   PTD0
+//#define D_INTR                 p15
+
+// I2C for KL25Z
+#define D_SCL                  PTE1
+#define D_SDA                  PTE0
+
+// Serial for KL25Z
+#define D_TX                   USBTX
+#define D_RX                   USBRX
+#endif
+
+#if defined(TARGET_LPC812)
+// SPI for LPC812
+#define D_MOSI                 P0_14
+#define D_MISO                 P0_15
+#define D_SCLK                 P0_12
+#define D_CS                   P0_13
+//#define D_INTR                 P0_7
+
+// Serial for LPC812
+#define D_TX                   P0_4
+#define D_RX                   P0_0
+//#define D_RST                  P0_9
+//#define D_STS                  P0_17
+#endif
+
+
 //SPI Version
-SPI spi(PTD2, PTD3, PTD1); //MOSI, MISO, SCK
+//SPI spi(PTD2, PTD3, PTD1); //MOSI, MISO, SCK
+SPI spi(D_MOSI, D_MISO, D_SCLK); //MOSI, MISO, SCK
 //DigitalOut CS(PTD0);       //CS 
-SC16IS750_SPI serial_bridge(&spi, PTD0);
+//SC16IS750_SPI serial_bridge(&spi, PTD0);
+SC16IS750_SPI serial_bridge(&spi, D_CS);
 
 //I2C Version
-//I2C i2c(PTE0, PTE1);       //SDA, SCL
+//I2C i2c(D_SDA, D_SCL);       //SDA, SCL
 //SC16IS750_I2C serial_bridge(&i2c, DEFAULT_SC16IS750_ADDR);
 
 DigitalOut myled1(LED_RED);
@@ -15,7 +66,7 @@
 //DigitalOut myled3(LED_BLUE);  // Same as PTD1 (SCK)
 DigitalOut heartbeatLED(LED_GREEN);
  
-Serial pc(USBTX,USBRX);
+Serial pc(D_TX,D_RX);
 
 void show_menu() {
     pc.printf("0: Exit\n\r");
@@ -23,13 +74,12 @@
     pc.printf("2: Init\n\r"); 
     pc.printf("3: IO Out\n\r");     
     pc.printf("4: Echo Text\n\r");        
+    pc.printf("5: Free bufferspace\n\r");                
+    pc.printf("6: Enable RTS/CTS\n\r");                
+    pc.printf("7: Disable RTS/CTS\n\r");                    
+    pc.printf("8: Write block\n\r");                            
 
  #if(0)
-
-    pc.printf("5: \n\r");            
-    pc.printf("6: \n\r");                
-    pc.printf("7: \n\r");                    
-    pc.printf("8: \n\r");                        
     pc.printf("9: \n\r");                            
     pc.printf("A: \n\r");                    
     pc.printf("B: \n\r");                        
@@ -68,10 +118,20 @@
 
 int main() {
   bool running=true;
-  char command;
+  bool running_test=true;                   
+  char command, ch;
   int i=0;
    
-  pc.printf("\nHello World!\n\r");
+#if defined(TARGET_LPC1768)
+  pc.printf("\r\nHello World from LPC1768\r\n");
+#endif  
+#if defined(TARGET_KL25Z)
+  pc.printf("\r\nHello World from KL25Z\r\n");
+#endif  
+#if defined(TARGET_LPC812)
+  pc.printf("\r\nHello World from LPC812\r\n");
+#endif
+
 
   heartbeat_start();     
 
@@ -128,9 +188,8 @@
           case '4' :        
                      pc.printf("Echo Text, Enter '$' to quit...\n\r");                    
                      
-                     char ch;
-                     bool running_test=true;
-                      
+                     running_test=true;
+                     
                      while (running_test) {
                        // From SPI/I2C to serial                       
                        while (running_test && pc.readable()) {
@@ -151,8 +210,27 @@
                      pc.printf("\n\rEcho Text Done\n\r");                                         
                      break;
 
+          case '5' :        
+                     pc.printf("Available for Reading = %3d (Free Space = %3d)\n\r", serial_bridge.readableCount(), SC16IS750_FIFO_RX - serial_bridge.readableCount());                    
+                     pc.printf("Available for Writing = %3d (Used Space = %3d)\n\r", serial_bridge.writableCount(), SC16IS750_FIFO_TX - serial_bridge.writableCount());                                         
+                     break;
+
+          case '6' :        
+                     pc.printf("Enable RTS/CTS\n\r");
+                     serial_bridge.set_flow_control(SC16IS750::RTSCTS);
+                     break;                     
+          case '7' :        
+                     pc.printf("Disable RTS/CTS\n\r");     
+                     serial_bridge.set_flow_control(SC16IS750::Disabled);                     
+                     break;                     
+
+          case '8' :        
+                     pc.printf("Write block\n\r");                                                 
+                     serial_bridge.write("Hello World from mbed and SC16IS750 ");                     
+                     break;                     
+
           default :
-                    break;                     
+                     break;                     
 
          } //switch
        } //if