1 /* atlc - arbitrary transmission line calculator, for the analysis of
2 transmission lines are directional couplers.
4 Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License
8 as published by the Free Software Foundation; either package_version 2
9 of the License, or (at your option) any later package_version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
21 Dr. David Kirkby, e-mail drkirkby at gmail.com
31 #include "definitions.h"
32 #include "exit_codes.h"
34 void usage_create_bmp_for_microstrip_coupler(void)
36 fprintf(stderr,"Usage: create_bmp_for_microstrip_coupler [-b bmp_size] [-v] w s g h t Er1 Er2 filename\n\n");
37 fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
38 fprintf(stderr,"where h, t, g1 and g2 are all ,in mm, all in inches or all in ..\n");
39 fprintf(stderr,"(they *must* use the same units. Non-integers allowed for all parameters)\n");
40 fprintf(stderr,"Options are:\n");
41 fprintf(stderr," -C Print copyright, licencing and distribution information.\n");
42 fprintf(stderr," -b bmp_size Sets the size of the bitmap, in the range 1 to 15 (default %d).\n",DEFAULT_BMP_SIZE);
43 fprintf(stderr," -H height Sets the height 'H' of the box. Normally 15x(h+t)\n");
44 fprintf(stderr," -W width Sets the height 'H' of the box. Normally 6h+2g+s+2w)\n");
45 fprintf(stderr,"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ^\n");
46 fprintf(stderr,"G G |\n");
47 fprintf(stderr,"G G |\n");
48 fprintf(stderr,"G Dielectric, permittivity=Er1 (usually 1.0) G |\n");
49 fprintf(stderr,"G G |\n");
50 fprintf(stderr,"G c's denonte the copuled transmission lines of width w. G |\n");
51 fprintf(stderr,"G t is the thickness of the copper of the PCB (typically 0.035 mm) G |\n");
52 fprintf(stderr,"G h is the thickness of the dielectric ( ~1.593 mm for 1.6 mm PCB) G |\n");
53 fprintf(stderr,"G | g is the gap between the coupled lines and the groundplane. G |\n");
54 fprintf(stderr,"G | s is the spacing between the two coupled lines. G |\n");
55 fprintf(stderr,"G | This is NOT drawn to scale (W and H are shown far too small ) G H\n");
56 fprintf(stderr,"G | G |\n");
57 fprintf(stderr,"G v <--g--><--w--><----s----><--w--><--g--> G |\n");
58 fprintf(stderr,"GGGGGGGGGGGGGGGGGGG ccccccc ccccccc GGGGGGGGGGGGGGG |\n");
59 fprintf(stderr,"GGGGGGGGGGGGGGGGGGG.......ccccccc...........ccccccc.......GGGGGGGGGGGGGGG |\n");
60 fprintf(stderr,"G.^................................................^....................G |\n");
61 fprintf(stderr,"G.|................................................|....................G |\n");
62 fprintf(stderr,"G.|t........Dielectric, permittivity=Er2...........h....................G |\n");
63 fprintf(stderr,"G.|............(3.7 for FR4 PCB)...................|....................G |\n");
64 fprintf(stderr,"G..................................................V....................G |\n");
65 fprintf(stderr,"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG |\n");
66 fprintf(stderr,"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG. v\n");
67 fprintf(stderr,"<-----------------------------------W----------------------------------->\n\n");
68 fprintf(stderr,"E.g. \ncreate_bmp_for_microstrip_coupler 1.5 2.0 1 1.593 0.035 1 3.7 foo.bmp\n");
69 fprintf(stderr,"In this example, the conductor thickness t was small, but the width w is\n");
70 fprintf(stderr,"large, so a fine grid (large bitmap) was needed. Hence the bitmap size\n");
71 fprintf(stderr,"was increassed with the -b optoin. Without it, an error would result\n");
72 exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS);