From 232326222f0f30b5e14cba057df38acc2200e559 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Tue, 20 May 2008 23:49:11 +0000 Subject: [PATCH] minor edits, some more tests git-svn-id: https://svn.code.sf.net/p/freetel/code@24 01035d8c-6547-0410-b346-abe4f91aad63 --- wispcar/documentation.txt | 30 ++++++++++++++++++++++++++++++ wispcar/wispcar.sch | 36 ++++++++++++++++++------------------ wispcar/wispcar_sch.pdf | Bin 8444 -> 8459 bytes 3 files changed, 48 insertions(+), 18 deletions(-) diff --git a/wispcar/documentation.txt b/wispcar/documentation.txt index f7ebc0ab..63bd892f 100644 --- a/wispcar/documentation.txt +++ b/wispcar/documentation.txt @@ -133,6 +133,27 @@ when Vbat=40V). Need higher Vce Q2 or change circuit to limit Vgs(max). Need to make sure sufficient Vgs to switch on Q1 at low Vbat. Maybe two versions with different R1/R2? +4/ Current Sensor resistor values. When building the first soldered +prototype I found that residual flux messed up the 10M R11 feedback +resistor. Scraping flux away and cleaning with solvent brought the +resistance back up again. This could be a problem with home +construction, and possibly humid environments. Perhaps we should +scale resistors down to say 100k/10k voltage dividers, 1M R11? + +5/ When building the first soldered prototype I found that the +position of the ground wires carrying high current caused the current +sensor to stop working (stuck at 0V). U2 GND and the GND of R7, R9, +R10 where at different places along the GND track carrying 0.5A. This +caused a voltage drop of about 5mV between the two GNDs. I moved the +ground connection (made the GND in GND out points close to each other +so 0.5A was only flowing thru a short section of track) and the +current sensor started working again. This suggests a carefully laid +out PCB is a good idea. + +6/ The voltage on pins 2 & 3 of U2 (+/i op-amp input) should be within +10 mV of each other with U2 unplugged. A greater difference indicates +one of the resistor values is wrong. + TODO List --------- @@ -147,6 +168,8 @@ TODO List + with datasheet pdfs ? [ ] wire correctly for power on reset + test with dodgy power on curve (slow power up) +[ ] unused LM324 inputs + + check if its really OK to GND them [X] blog post [X] README in SVN + this file @@ -157,6 +180,9 @@ TODO List [ ] check what happens in overvoltage on input, how can we protect? [ ] document test plan [ ] get PIC part name right in symbol file +[ ] meausure the current consumption of the soldered prototype +[ ] Indicate single point grounding on schematic +[ ] Note 1% R's on schematic [X] make sure we can't stall in RS232 input routine + need a way to get around this..... + malformed RS323 could cause a hang @@ -171,6 +197,10 @@ TODO List + or can it be spread over cycles? [ ] enable PIC watchdog timer + how can we test? +[ ] How repeatable is current sensor? + + y intercept (DC offset) + + slope + + maybe build a few a check [ ] make sure all RS232 chars OK + how to prog with calibrated clock? + check baud rate diff --git a/wispcar/wispcar.sch b/wispcar/wispcar.sch index f89a00a5..db323aba 100644 --- a/wispcar/wispcar.sch +++ b/wispcar/wispcar.sch @@ -36,7 +36,7 @@ device=LM324 T 57500 35900 5 10 1 1 180 6 1 refdes=U2 T 58000 35600 5 10 0 0 180 6 1 -slot=2 +slot=1 } C 56300 28300 1 0 0 lm324-1.sym { @@ -45,7 +45,7 @@ device=LM324 T 57000 29100 5 10 1 1 0 0 1 refdes=U2 T 56300 28300 5 10 0 0 0 0 1 -slot=1 +slot=2 } C 56300 29300 1 0 0 lm324-1.sym { @@ -194,45 +194,45 @@ value=0.1R 5W } C 54400 36300 1 270 0 bf-resistor-1.sym { -T 53900 36000 5 10 1 1 0 0 1 +T 54700 36000 5 10 1 1 0 0 1 refdes=R6 -T 53900 35800 5 10 1 1 0 0 1 -value=1M +T 54700 35800 5 10 1 1 0 0 1 +value=100k 1% } C 54400 34900 1 270 0 bf-resistor-1.sym { -T 53900 34700 5 10 1 1 0 0 1 +T 54700 34600 5 10 1 1 0 0 1 refdes=R7 -T 53900 34500 5 10 1 1 0 0 1 -value=100k +T 54700 34400 5 10 1 1 0 0 1 +value=10k 1% } C 56400 36300 1 270 0 bf-resistor-1.sym { -T 55900 36000 5 10 1 1 0 0 1 +T 56700 36400 5 10 1 1 0 0 1 refdes=R8 -T 55900 35800 5 10 1 1 0 0 1 -value=1M +T 56700 36200 5 10 1 1 0 0 1 +value=100k 1% } C 56400 34900 1 270 0 bf-resistor-1.sym { -T 55900 34600 5 10 1 1 0 0 1 +T 56700 34600 5 10 1 1 0 0 1 refdes=R9 -T 55900 34400 5 10 1 1 0 0 1 -value=100k +T 56700 34400 5 10 1 1 0 0 1 +value=10k 1% } C 57500 34900 1 270 0 bf-resistor-1.sym { -T 57000 34600 5 10 1 1 0 0 1 +T 57800 34100 5 10 1 1 0 0 1 refdes=R10 -T 57000 34400 5 10 1 1 0 0 1 -value=10M +T 57800 33900 5 10 1 1 0 0 1 +value=1M 1% } C 58000 36000 1 0 0 bf-resistor-1.sym { T 58300 36500 5 10 1 1 0 0 1 refdes=R11 T 58300 36300 5 10 1 1 0 0 1 -value=10M +value=1M 1% } N 54500 36700 54500 36300 4 N 54500 35400 54500 34900 4 diff --git a/wispcar/wispcar_sch.pdf b/wispcar/wispcar_sch.pdf index 14817e2bc456b7b7e1a963c9590a9602d694b614..621c0ca0d5abce1c5fd91eba2a3d7b79bb06f05a 100644 GIT binary patch delta 7657 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 delta 7642 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 TmR6WT5FQ97Bcrsc4Cem;6d9@Q -- 2.25.1