Dependencies:   mbed

Revision:
0:1e5295127662
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests.cpp	Fri Oct 23 14:05:46 2009 +0000
@@ -0,0 +1,243 @@
+#include "Helper.h"
+#include "Objects.h"
+#include "Tests.h"
+
+
+//// ///////////////////////////////////////////////////////
+//// Measure the voltages and Idut
+//// should see 0.757 (2.5v) and (0.5) 1.65v
+//// Expect Idut to be below 180mA
+//// expect to read below 0.11 across a 2R shunt.
+//// ///////////////////////////////////////////////////////
+
+int VCTest (void) {
+    
+    int result=0;
+    
+    float tmp_v3v3=0.0; 
+    float tmp_v5v0=0.0;
+    float duti = 0.0;
+        
+
+    for (int i=0; i<100 ; i++){
+        tmp_v5v0 = (tmp_v5v0 + v5v0)/2.0;
+        tmp_v3v3 = (tmp_v3v3 + v3v3)/2.0;
+        duti = (duti + idut*0.33)/2.0; // this give the number in mA
+        wait(0.001);
+    }    
+    
+    
+    pc.printf("idut = %fmA\n",(duti*1000.0));
+    pc.printf("v3v3 = %f\n",tmp_v3v3);
+    pc.printf("v5v0 = %f\n",tmp_v5v0);
+
+
+    // Test the current
+    // somewhere between 90mA and 200mA
+    if ((duti < 0.09) || (duti > 0.2)) {
+        //result |= 0x1;
+        
+    }
+
+
+    // Test the 3v3 rail 
+    // give a 10% leaway for tolerance and instrumentation error
+    if ((tmp_v3v3 < 0.45) || (tmp_v3v3 > 0.575)) {
+        result |= 0x1;
+    }
+    
+    // Test the 5v0 rail 
+    // give a 10% leaway for tolerance and instrumentation error
+    if ((tmp_v5v0 < 0.68) || (tmp_v5v0 > 0.835)) {
+        result |= 0x1;
+    }
+
+    return(result);
+    
+}
+
+
+
+//// ///////////////////////////////////////////////////////
+//// 
+//// ///////////////////////////////////////////////////////
+
+int DutSetupTest (void) {
+   
+   int result=0;
+
+    DutBufferFlush();
+    
+    Dut.printf("S2");
+    
+    led2 = 1;
+
+    // wait here until 
+    while (!Dut.readable()) {
+        led1 = !led1;
+        wait (0.05);
+    }
+    
+    
+    char tmp = Dut.getc();
+    
+    if ( tmp != 'P' ) {
+        result |= DUTSETUPTEST_FAILED;        
+    }
+    
+    return(result);
+}
+
+
+
+//// ///////////////////////////////////////////////////////
+//// 
+//// ///////////////////////////////////////////////////////
+
+int IOTest (void) {
+   
+   int result=0;
+
+    DutBufferFlush();
+    Dut.printf("S3");
+    
+    // wait here until 
+    while (!Dut.readable()) {}
+    char tmp = Dut.getc();
+    
+    if ( tmp != 'P' ) {
+        result |= IOTEST_FAILED;        
+    }
+    
+    return(result);
+}
+
+//// ///////////////////////////////////////////////////////
+//// 
+//// ///////////////////////////////////////////////////////
+
+int ResetTest (void) {
+
+   int result=0;
+
+    DutBufferFlush();
+
+    // this should hang the target in a while(1) loop
+    Dut.printf("S4");
+
+    // reset the target
+    DUT_NR = 0;
+    wait(0.1);
+    DUT_NR = 1;
+
+    
+    // Expect to hear that character back
+
+    // wait here until 
+    while (!Dut.readable()) {}
+    char tmp = Dut.getc();
+    
+    if ( tmp != 'R' ) {
+        result |= RESETTEST_FAILED;        
+    }
+    
+    return(result);
+
+}
+
+//// ///////////////////////////////////////////////////////
+//// 
+//// ///////////////////////////////////////////////////////
+
+int BatteryTest (void) {
+    int result=0;
+    
+    // Run the test on the dut. This should ensure the RTC has a sensible value.
+    // after the power down
+    
+    DutBufferFlush();
+    Dut.printf("S5");
+    
+    // wait here until 
+    while (!Dut.readable()) {}
+    char tmp = Dut.getc();
+    
+    if ( tmp != 'P' ) {
+        result |= BATTERYTEST_FAILED;        
+    }
+    
+    return(0);
+}
+
+
+//// ///////////////////////////////////////////////////////
+//// 
+//// ///////////////////////////////////////////////////////
+
+int RTCTest (void) {
+    int result=0;
+    
+    // Run the test on the dut. This should ensure the RTC has a sensible value.
+    // after the power down
+    DutBufferFlush();
+    Dut.printf("S5");
+    
+    // wait here until 
+    while (!Dut.readable()) {}
+    char tmp = Dut.getc();
+    
+    if ( tmp != 'P' ) {
+        result |= RTCTEST_FAILED;        
+    }
+    
+    return(result);
+}
+
+
+
+
+//// ///////////////////////////////////////////////////////
+//// 
+//// ///////////////////////////////////////////////////////
+
+int EthernetTest (void) {
+   int result=0;
+
+    DutBufferFlush();
+    Dut.printf("S6");
+    
+    // wait here until 
+    while (!Dut.readable()) {}
+    char tmp = Dut.getc();
+    
+    if ( tmp != 'P' ) {
+        result |= ETHERNETTEST_FAILED;        
+    }
+    
+    return(result);
+}
+
+
+
+
+//// ///////////////////////////////////////////////////////
+//// 
+//// ///////////////////////////////////////////////////////
+
+int CleanUp (void) {
+   int result=0;
+
+    DutBufferFlush();
+    Dut.printf("S7");
+    
+    // wait here until 
+    while (!Dut.readable()) {led3 = !led3; wait (0.1);}
+    char tmp = Dut.getc();
+    
+    if ( tmp != 'P' ) {
+        result |= CLEANUP_FAILED;        
+    }
+    
+    return(result);
+}
+