added test results, expect test script, and made wispcar output easier to parse
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Thu, 22 May 2008 02:00:25 +0000 (02:00 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Thu, 22 May 2008 02:00:25 +0000 (02:00 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@25 01035d8c-6547-0410-b346-abe4f91aad63

wispcar/documentation.txt
wispcar/test_watchdog.tcl [new file with mode: 0755]
wispcar/wispcar.asm

index 63bd892f521b4a67cdaf55d005a95aa81f47b1b7..7aff11130dedfd3ce007c176de8730625ee1d388 100644 (file)
@@ -42,6 +42,11 @@ Project Plan
     [ ] Install in Solar powered AP (Rowetel)
     
 [ ] WP300 Testing
+    [ ] Test 1: false watchdog firing
+       + test_watchdog.tcl Exepct script
+       + sends 'w' every sec, look for false WD fire
+       + results: after approx 40 hrs, 91,000 seconds, no false firing
+        
     [ ] Test to determine watchdog doesn't fire by mistake
         + leave running for 1 week
         + stable power & router
@@ -158,11 +163,11 @@ TODO List
 ---------
 
 [ ] schematic
-    [ ] pinout of 78L05
-    [ ] pinout of power FET
-    [ ] pinout of BC548
+    [X] pinout of 78L05
+    [X] pinout of power FET
+    [X] pinout of BC548
     [ ] connect + & - together on unsued op-amp sections
-    [ ] TAPR open harwdare license
+    [X] TAPR open harwdare license
 
 [X] svn repository
     + with datasheet pdfs ?
@@ -171,6 +176,8 @@ TODO List
 [ ] unused LM324 inputs
     + check if its really OK to GND them
 [X] blog post
+[ ] test at 5A for 24 Hrs
+    + given FET on-resistance do we need a heat sink?
 [X] README in SVN
     + this file
 [ ] Add 4th digit to sleep timer
diff --git a/wispcar/test_watchdog.tcl b/wispcar/test_watchdog.tcl
new file mode 100755 (executable)
index 0000000..41e8411
--- /dev/null
@@ -0,0 +1,38 @@
+#!/usr/local/bin/expect  -f 
+# test_watchdog.tcl - Expect script to test wispcar watch dog timer.
+#
+# Assumes /etc//etc/minirc.mini4800.dfl config file configured for
+# 4800 baud
+
+set rs232 dragonballz
+set send_slow {1 0.2}
+set timeout -1
+
+# connect to machine with RS232 port
+
+spawn ssh $rs232
+expect "$ "
+send "killall -9 minicom\r"
+expect "$ "
+send "minicom mini4800.dfl\r"
+
+# Keep sending 'w' every second
+# This shoud mean WD _never_ times out
+
+set fire 0
+set count 0
+while {1} {
+    send "w"
+    expect -re "(...) (...) (.) (...) (...) (...) (.) (...) (.)"
+    set v $expect_out(1,string)
+    set w $expect_out(9,string)
+    if {$w == "w"} {
+       # watchdog has fired
+        set fire [expr $fire+1]
+       send "w"
+    }
+    set count [expr $count+1]
+    puts "count: $count  fire: $fire"
+}
+
+close
index 03348e7959b6fe76654bc075a6f938c617101411..8550fa45b8be95344b6d114ebcc7d88a5331841f 100644 (file)
 ;\r
 ; 4800 BAUD RS232 OUTPUT\r
 ; ======================\r
-;\r
-; Vsense\r
-; |   Isense\r
-; |   |   Last char received (ASCII)\r
-; |   |   | Last char received (decimal)\r
-; |   |   | |   Watchdog timeout counter\r
-; |   |   | |   |   Watchdog fire counter\r
-; |   |   | |   |   |   Sleep state machine state\r
-; |   |   | |   |   |   | Sleep timeout counter\r
-; |   |   | |   |   |   | |    \r
-; 040 031   032 012 000 0 000 w---reason for last restart\r
-;                                 b - Wispcar (re)booted  \r
-;                                 w - watchdog timer fired \r
-;                                 s - we went to sleep\r
-;\r
+; Name of script on host that parses this line\r
+; |       Vsense\r
+; |       |   Isense\r
+; |       |   |   char received (ASCII)\r
+; |       |   |   | Last char received (decimal)\r
+; |       |   |   | |   Watchdog timeout counter\r
+; |       |   |   | |   |   Watchdog fire counter\r
+; |       |   |   | |   |   |   Sleep state machine state\r
+; |       |   |   | |   |   |   | Sleep timeout counter\r
+; |       |   |   | |   |   |   | |    \r
+; wispcar 040 031 - 032 012 000 0 000 w---reason for last restart\r
+;                                     b - Wispcar (re)booted  \r
+;                                     w - watchdog timer fired \r
+;                                     s - we went to sleep\r
+;                                     - - restart flag reset\r
 ;\r
 ; COMMANDS\r
 ; ========\r
@@ -334,7 +334,7 @@ inch_n_delay
 \r
        ; clear previous rx char\r
 \r
-       movlw   ' '\r
+       movlw   '-'\r
        movwf   SERBUFI\r
 \r
        ; init delay loop for 1999996 cycles\r
@@ -407,7 +407,7 @@ inch_n1
        movlw   WD_TIMEOUT      ; reset watchdog timer\r
        movwf   wd_timeout\r
 \r
-       movlw   ' '             ; clear reboot flag\r
+       movlw   '-'             ; clear reboot flag\r
         movwf  restart_flag\r
 \r
        clrf    sleep_state     ; reset sleep state machine for good measure\r
@@ -694,6 +694,26 @@ wait_adc_v
        btfsc   ADCON0,1        ; skip if A/D conversion finished\r
        goto    wait_adc_v\r
 \r
+       ; print 'wispcar' to get host to call script called wispcar.\r
+       ; This script can then parse wispcar output\r
+\r
+       movlw   'w'\r
+       call    outch_n\r
+       movlw   'i'\r
+       call    outch_n\r
+       movlw   's'\r
+       call    outch_n\r
+       movlw   'p'\r
+       call    outch_n\r
+       movlw   'c'\r
+       call    outch_n\r
+       movlw   'a'\r
+       call    outch_n\r
+       movlw   'r'\r
+       call    outch_n\r
+       movlw   ' '\r
+       call    outch_n\r
+\r
        ; print voltage to RS232\r
 \r
        movf    ADRES, 0\r