From 4cd615a3325874a2145566f8eb5d674f27604e09 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Sun, 18 May 2008 07:26:37 +0000 Subject: [PATCH] added notes to doco and fixed pinout on PIC git-svn-id: https://svn.code.sf.net/p/freetel/code@22 01035d8c-6547-0410-b346-abe4f91aad63 --- wispcar/documentation.txt | 33 ++++++++++++++++++++++++++------- wispcar/sym/PC12F510.sym | 8 ++++---- wispcar/wispcar_sch.pdf | Bin 8081 -> 8082 bytes 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/wispcar/documentation.txt b/wispcar/documentation.txt index b350ce2f..f7ebc0ab 100644 --- a/wispcar/documentation.txt +++ b/wispcar/documentation.txt @@ -113,11 +113,25 @@ router without level conversion, see reference docs for RS232 software UART code in wispcar.asm. I used a MAX232 type chip for interfacing the RS232 tx & rx to a PC's serial port for testing. -Gotcha ------- +Gotchas +------- + +1/ On the PIC12F510 we can only use 'call' to call an address in the +first 256 bytes, so put all funcs at the start of the program, main at +the end. + +2/ If the RS232 characters have occasional errors, the internal clock +oscillator may need tweaking. You can check the baud rate of the +RS232 signals using an oscilloscope, at 4800 baud the bit period +should be 208us. See PIC data sheet for information on adjusting the +internal oscillator. -Can only use 'call' to call an address in the first 256 bytes, so put -all funcs at the start of the program, main at the end. +3/ The Vce(max) rating of Q2 is 35V, and Vgs(max) of Q1 +/- 20V. As +R1/R2 form a voltage divider I think this sets the maximum Vbat at 35V +for the current version, i.e. Q1 will pop first (as Vgs will hit 20V +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? TODO List --------- @@ -129,17 +143,20 @@ TODO List [ ] connect + & - together on unsued op-amp sections [ ] TAPR open harwdare license -[ ] svn repository +[X] svn repository + with datasheet pdfs ? [ ] wire correctly for power on reset + test with dodgy power on curve (slow power up) -[ ] blog post -[ ] README in SVN +[X] blog post +[X] README in SVN + + this file +[ ] Add 4th digit to sleep timer [ ] test with WRT54 [ ] add brown out detector to PIC reset to be double sure? + see PIC data sheet [ ] check what happens in overvoltage on input, how can we protect? [ ] document test plan +[ ] get PIC part name right in symbol file [X] make sure we can't stall in RS232 input routine + need a way to get around this..... + malformed RS323 could cause a hang @@ -177,3 +194,5 @@ TODO List [ ] work out how to run from 60V + 78L05 pops at 35V +[ ] Will 5V levels from PIC play nicely with 3V3 levels of router - +check data sheets! diff --git a/wispcar/sym/PC12F510.sym b/wispcar/sym/PC12F510.sym index f33ada5a..7198d934 100644 --- a/wispcar/sym/PC12F510.sym +++ b/wispcar/sym/PC12F510.sym @@ -49,7 +49,7 @@ numslots=0 P 1800 1600 1500 1600 1 0 0 { T 1600 1650 5 8 1 1 0 0 1 -pinnumber=1 +pinnumber=8 T 1450 1550 5 8 1 1 0 6 1 pinlabel=GND T 2100 1700 5 8 0 1 0 8 1 @@ -58,7 +58,7 @@ pintype=pwr P 1800 400 1500 400 1 0 0 { T 1600 450 5 8 1 1 0 0 1 -pinnumber=4 +pinnumber=5 T 1450 350 5 8 1 1 0 6 1 pinlabel=GP2 T 2000 450 5 8 0 1 0 8 1 @@ -67,7 +67,7 @@ pintype=io P 1800 800 1500 800 1 0 0 { T 1600 850 5 8 1 1 0 0 1 -pinnumber=3 +pinnumber=6 T 1450 750 5 8 1 1 0 6 1 pinlabel=GP1 T 2000 950 5 8 0 1 0 8 1 @@ -76,7 +76,7 @@ pintype=io P 1800 1200 1500 1200 1 0 0 { T 1600 1250 5 8 1 1 0 0 1 -pinnumber=2 +pinnumber=7 T 1450 1150 5 8 1 1 0 6 1 pinlabel=GP0 T 2050 1300 5 8 0 1 0 8 1 diff --git a/wispcar/wispcar_sch.pdf b/wispcar/wispcar_sch.pdf index bfd688922b80c371a55520a299c0d93d3ee75eb5..9678b6411bb5e068bfe724c7439d214cd0b42c56 100644 GIT binary patch delta 7059 zcmZWt1yCEzwk{M6DK5bZg+g%xMT-_|(H1Q(h2R92V!_=ZxD+T3!7X_4;_gzsK#-zE zU+=x|-FY+r&YanEzMcJM&(6xX8!wR{5vPr26R$&!<{IzH1tSKg#Eu4>S>dR&N%B4^ zV4nh!ot-VzzBa0%mKMU}x7xD>JIUURfJ`aNJq6zd4>Ux!&JDBuF`X60p3n^K-va5*6ZH-T@vl z#s8|V+m~?W0CN>;*)05pn)~SO>3g*=G4|Xr%LlfzgK>eS@F%H{<}G###m7Nzy!{9O z;dig{=I%lnCKH;50KFtd_HX+7>G4NZtP_s7tI_HUGZ44evtMvbM#2Cyx^QUiyRlTJ zSk?=D1DDNAjv0+RWQxnQoN}EVmrNG(CpEuzQTRs%7uYrX?ciJXx9X+DO!-!tU+Ktx znp=t=7Uwoq4`V@fJKnqo3BHlQ2^40ufR7t&3;W021FtDtK*wk5eP4dIhp{VS6BJJ9ZuaFsPw%QpGwO9LOI} zgV(&;b}nuJPlzAaBB646Wjw<W#~vg=GWs^{tLn5AHJcHkSqZ1viB2amVba z)eh8Ja+X3KJ&Uxp7sIX}e@59kY_~#mSyJC?GekuP3S*_i-UAtiQSAJj<8I^MP5ec_ zZc`$5>?+hg1HW=~D?g*`3#gxnlTEC_U_@I?oW+oWk>34u>N|2gDun1%T@6Um4}n<6 z_#MxBoqeTJn+4dS*C*<2&7^xlioHw(8BTEP-p4A|E6Or_R_UIuFbaBxUfm-1cAvBT zi={QgN4~qOr5wW!>ea{l3kTQZU)v{Jb945g_J-}Zzq*IqE3xya9-MZ&LkTu-Q##tI zVPCFbjS`}Nc9uGpD|oEpfY0v^9ukXS?X4c?BQq!Kt7nne-P?&21lSVFcnN(AKhZns zNjO+eHb#urfMcs2-j6#ejonj5;(iQQurId{E8G%~K#AkFd#fhz`vdOd)u#^PtsZBG zzwT2~T!jL;w7&|P$~~dAgsP&pA6xy=J0WE-%JX^hFIHNPQ1RI#%zVNiz#e|RV5Uf> zvDB3IbGp^L%Y(9%gIW0+XT%1K;m64aiB%}ml6<+b4ba;Z;;B-@TSLL%-xY|>i(#w6= zRs->i=;73C?06w+>JqY=v)RtWm>Ou>yRg=e%dsSuWt*C7KIveqj?JJytg+2OD%zwv z<`qh}@;f|=V5;TZ>|zPI^s$@4MjciY-OBCfovozKhxErkL{;XcaFeVj_FLA=Sa+M; zaI=pc)*VN9wl~=x-tGjhX3%2>o8^+ij7nf9>6l4xeBWwC<%97{h-f4`)5TSsGpL(- zD^VhB$h$^3y`bPg)>(!pfVZs%T)LI+@pD@kAl2wjAXB>!%x4 zM~;RW{5Of#jr{I~R=c$cU@d**D@1h01} z+cp!J1S>nscoOpm7y0~mg}NkjF&{%$fh&!H_b2;GZ}k=RuvptWTe~zOjUu|Es50#{yUX zGug{i#^G;phGeAWD;f|p8hU~^8`sSRc_u=$|41uY2n*;MM&=^smB ze7H_*t}yR{VF0g<6b_jy)t3khSxx{_&0vUnYT$iAG%TuCa5C`er6j}Xt3|P5QyP^R zF@{yLb#jb1A*3s1F?tF;O);jSlyVfN^aXjm<<-$SJmqh(`;>knCG60UJL*c*W^_8Vi0?04xwLg3`<=5X(*S$I!lW?5=a|HSJfO@y`dj2=0kfO`u&0 zY*07F2%$HCUiPxem54|XQcF?d8B{_aclunMLG`;sP8-dOe1UP?{~~eX7%~m6XUs&r=$oe%$HeBLI)hViscIG5(Mx68etRe$Ev~IjXa};QK-sf zDdW5Gz1{usB_bCx^wAZyD>SUoelm623@nP+<7_Wc4B=pr557&Mw^*%qlDF7)6mEv? zSuW33r1d+|7>zsa_57oFLb>jjdBt&y0dOM*wf}=iW;8t#um_GCvST-R;<$3j+9jR^6Z3pw?ZRiM2FdEWt|DD zaV%cj3Bq{_iDK$_(q@(~_63yAXn}Hp&PeP_>G>>F5Gj+Q7)w}t5BBS1u>621?3@XC ztg$nmQf##zfih9ItcS_YnEj%BJ!pR6NQP~-klHpkiuTqtJGU|O)1PKL8qp4zkrxNj zDMpUEm!?eF4<|4@c81xoY$U&E(E~N_RJDk+V`-;v+gvfhy!+6_s&vtJ=tfAxVe53u$=+(!KuHGrgX5n-fCPxl+=;sNcx;kZZ z(5Jf%E%N!j0kO!;=&pR%_!x5+dF2!ge)Y2AGUX1G)i=Dr{)6u;!+Qz#lf8Dgl)t{O zpCTPzy+#fT{^CVl@RsX~>R>DmWN#8cxyNq^_q&=1w?(6DT4bYif+ar`!PMZ{Jghze zBOrT6$^Fr1-(847$&OAa@99tbPs@R{&2!E;m#e*~o-P)Bg2_+_hjRv*)yE4*1ud#i zV-u57OX{a@QH6I2SjO*An5f? z54qqFU+3sUNOh;58s^@HN>aGb@vrr@!)}bUu4XakvzdEReva7{b!7u8OT^_#%}IJt zXG~B8tw69@q<5&<2lD5?%iiH)m{t-^NTKk_Oy00H*Vl2)$uFzvggc8QRsl(2DVUf& zeNs+btI6>il7ZD2W_t_ln4B~KZ2ycWXgcB)7WbZbhBN#L;T-U7iLPQ)#e&;=zBFcH zL>HoGEbA*-c>MR5lZ6ozLh})*ILkm{`HlJ)dU+Ie3_NP7FU|MMB5=!&TBQ>TL`dZK z?)rRRNkpmczJB<^K^#uhPbw0C=skaoWc>oQ9^u9##xOY(`b774@hzMa6A^%SzH zI(DKDnDqHBe*A2+k!xsN%PlyAB0qTMOsozuDRrakv0j|GS#!#7C^v!LDk-SBq6 zwT#`2BsP)28^^ma_o@S=t+ThE&2B@?n!_lv?kq#dE=jlK%d;6+M2oAphAS}A(Yvq8 z=AEdAkj2x+EtxC{46_~EV*`VS%`-5d7`<9B+L;Bp2~w*ntlo~eCr*=UW9fVA!_ z3!unbyEGo}04DW?a5(68KiM$INN@CGHfoa=0j-L~Z z%)};Gcv#lT%rO$}i&e}*^!?0)rMlu6^3~;JZ}JN8aw1krd$Z(I1?!gTKV%=3A0bn9 z{igcSa7?)cmw!VA!g}L&DR95IXTw~N_a)L3I|vwH`$PPt+9@u;O3mgswBOX{1P^+P z5UBDMyW~1ln;+-BTk>)8I5B>1z`*oK+8n$IgP09-d>}ytV!tr0DAMD%+Vg6byG_44 zN3ih(MNK?p9dcZ=q|{UZTfLqiaP=ZxNuH1Cyb$T*w*5y%TW@aZK~W%}#j(<=4J$tB@l{ZeMQTFemvU67=T zvJ7+^2!$x$@9N;u6^PiJ7J{dC8-6g<6dpwkf)xL7;*ShXSTK~y&$Tu*;@NasA+#X% zxY$O%Q2A2v!&Q1Y+H)|Dsms(L(UFK1W---&v5WqCZ9$X#XYqkeYHTAp{Pd5}lwr?S zg`vS%ylQWGmv&J+x@^dc@9QN?jEy4(V(PS#cB3>ENIH?P1#GW8nQ_4+T)N=CO$Ir5 z+&+mc;GM1vIQ3>Y-U;V|@+F*TFZX5a*%@I{UMH}UlT8pGPz&seBme%decTC?<}I>a zT1^WGf7-3$R2#E)bN% zffF2Hv{)N;BNZK#A|DjbIUQots5`Pa6V_*Gm@91iqhirHG#l!P;RE~Hz5TI~8K`NE zTVGJ4oPJx7FI@|EN3Pb$p7CzzvME@pCk?fZlC*Df_`g=F;E;zzqpyyX$=10x%gG9+ z!~g2he5XVX909{JCxZ>&TEn^#M13Pyqsp@2d0h)MqyGcbY#VDq`e!5plihWti_p5x z!B9LOSJ>v5%CY^$0*u6-O_VWS+#bIzOnNZ)%2oJ6s(Zjr<#!kb8>3$F+4l_o&y@+0 zFAkjMJaTi_R_95$HP|ktr0aKsb^TgT5@UcX>%q>+`PnH${cTmY%t>-+r_3c6uFa!( z{~FtF@DCeJ#9x++zbuP-DJ^|?@a(p6zF3c3HDw-yxd5(>V1*GwOTK%{4KB~EG-70D zqZ@S}HZoby0q--9L!RBUz|&1qtZhOITXy(_apGH2Qdk=;zoUf7QjAh|?ocCM!mQ$u za%E#pH&chWWs20I5ZfkxhSRL-vr0|jgW|t}J=1kMc273u(;5kiX6EIA`DO9cn*FPPS6e@5i&sw_kn5-Y{C#+0t2ihULYY;op-M4`oKOXn^DBG2 zzbbx7rafy@#F|HM&D$vN*uJDQstcJmUz}!gG{|nuD6h=6%+r5Q)vQO9Z@)+vw8%HB zlp^GKDX$SUD9*0wGhn5lk@Cz1?+VZ&x)7bvQUV)gtLA~5l;DIi8g#T-@8^xkFe#FgJ^_e8EP4j-RtuUoZ z+!xVSyH+oCcYj7KYTMOMMk3ym2G!*?=-rZDVncF0G}!Z|YK+IcyykPG6%4Q-?o%=> z`3f_dV>@@ndPN`PBu>(z>L7AZ^G3mx>*nM^~^Z6>hdOq^y|xJl(ROvMvQ3RJ#gMJ{Nd(?6Pv?HhM%}P_}#7 z#kwtaV-eTz?9-#b9p*7b!xeeU0i)bq1>!jyDx!Zk2>3Zdktq$+n^X6(;uMoxxtDPyOmEZ&#$QG;RW@zKl z-jfX{xYaNMXw3=r+W=pB=(QJBRB2C^-u_xU$(@Rhh1mu37P2+xB3BF$8KM&n_Ucen zsQ518m=0qqOHKRBfQkB1`iym(*P+_{GTUsTk<&v+3Gz&kwDcq!J>hyp{>DcB_h?_G zVmRVz)n$J-k*)P!m=T-O4r}SOGnghFR=40Yp@)62*xV+X`q3*Cp7za$&K47jKTT^- zkE1jMn=~-;ZD{H3eik;jZAp|#Ek1cC|NahXziyVPXW%JyNgF;TmSiW*TXRdWh^p)>AA8F zTv&nY``~YFh{(F^m_v2a0ti}ov4eF&jMIs~`?+%H(cKb@`Pv)0)o>Q#C2T;NYRRKg zw)qr~p&bRsB=h>xKjIH?EF2M0SG#$+e%JB&Kk2J*jDg`6SmnBvcUGa#+J5#WV}@oJ z=>paVHBtgNW{gV>e|-H_!7$GY>wGE7@siXxeUbM4##itVA&|8TsNKIBG0Lkn`%8e1 zRSu*|lcRDn)hxh^M{0-jrx7xzM3#vaP{Z+d@1HLp4%Oub1(2-lKs-1 z`h2oao=AB)rHRa06g3~Y+j)Cnmr|3!SDHf4P(29W{Cpp2xv=xcR0vK8td0=B9Ae); z*qE_A!$xAn(rNIA1>|R-Jj6Rn)f)WEim`Vc@mrK7^d^NJ`|q*Jf%ays_v6bsgat2l zh-QfKd%T@a-Agy`YSfiYMmE$X+rGK}TP9CtUB6%Bj7aKgK2cOZQz3(u&pAq=V}M?J z%Co>yzQu`tet-~Y^_E5kHnbX}E|KK>qan*FM-;Mj?!vLO^JSv*sjS;+FP%vG5ppz{=XXEAXa0k2`1sldSpMWX&hgcTA1cQKO!44 z-*+$1Qrv-y?JtXEs{Nn*GTZHxE2H``;&%#_(-X`6)ZG-CWBleU$xW$EwVnN*I;p3w zS@VHnnc&^aZWl6gfinUHEG{pzg#W*Qj(7+)L9pkG=y}3*?QKO@s*Ye1{Mh z9C=cqKm^*)gD2r7)xvl;CCd!)$*z(aW>!8xI;(zD{9U;C<$9HO@>HZJ4>E0(DSBE+ zK}x?>WL*ZRAxac?QCdgl?Y)!KCCOMqwr;Ul+muw1`S_K^Bc8F&cqIgC z=Ir7GF|h;u_3S@e0|e;7^#7^_!2;m_!}#cHAE?*R7=(BP`1$ySSpnS2_GU6BE)W)( zH@sl55SX9mf145?X+6aLQv9pXL+JtkcEE!Cg2Mm6UV{byf&JxAtb6`SjQ<}ke0;C} ziSh9L1LNoAO$5=2ik)j^*m;oe#xZX5x1+cZ;#gV!ffxY9#R1MPCQdFMP7rf|pr8N` MfQd==gB;+00B262m;e9( delta 7038 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 Lfk94P9^-!i4is&Q -- 2.25.1