├── README.md ├── Si4010 ├── eagle │ ├── OpenChargeport_Si4010.brd │ └── OpenChargeport_Si4010.sch └── source │ ├── keyfob_demo.h │ └── keyfob_demo_main.c ├── eagle ├── OpenChargeport.brd └── OpenChargeport.sch └── sourcecode ├── OpenChargeport.HEX ├── OpenChargeport.asm ├── OpenChargeport_10F200.HEX └── OpenChargeport_10F200.asm /README.md: -------------------------------------------------------------------------------- 1 | Open ChargePort 2 | =============== 3 | 4 | What is it? 5 | As the name suggests, it's a transmitter that will open the charge port of a Model S. 6 | 7 | When I received my EU spec model S, i charged a few times with the cable Tesla supplies with the car. 8 | The button to open the Charge port door, really is a nice feature. 9 | As there is no such thing on a standard Type 2 charge cable, i now have to open the car door, touch the battery icon, and select open charge port. Not very convenient. 10 | 11 | Therefore i wanted to make my own transmitter that opens the chargeport. 12 | 13 | Credits to Banahogg who documented his attempts to analyze the RF data here 14 | which helped me finish this project in a few days. 15 | 16 | The components needed: 17 | 18 | I used a 433 Mhz module connected to a PIC microcontroller. (US model S, requires a 315Mhz module) 19 | Only a few other components are required. 20 | 21 | 1x PIC12F1822 or PIC10F200 microcontroller 22 | 1x TX-SAW MID/3V 23 | 1x Lithium cell, 3V 24 | 2x 100nf capacitor 25 | 1x 10uf capacitor 26 | 1x pushbutton 27 | 28 | Please note that the PCB layout in /eagle was designed for the PIC10F200 microcontroller. 29 | 30 | ======================================================================================= 31 | 32 | There is now a new version, based on the same chip Tesla uses in it's Charging Cable. 33 | 34 | The chip is a Silabs Si4010, only one external component (capacitor) is required. 35 | I converted the Tesla specific bitstream for use with this microcontroller. 36 | As Silabs also provided a PCB layout file for 5 buttons, but only one button is needed, these files were modified. 37 | The PCB layout fit's the Polycase FB-20 keyfob housing. 38 | 39 | All files for this version can be found in the /Si4010 folder. 40 | -------------------------------------------------------------------------------- /Si4010/eagle/OpenChargeport_Si4010.brd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | Possible positions of PCB edge TABs! 119 | www.stegen.com/ocp 120 | Open Chargeport 121 | GND 122 | C2CK 123 | C2D 124 | VCC 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | >NAME 286 | 287 | 288 | 289 | 290 | SOIC-14, Texas Instruments - Logic Gates 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | >NAME 313 | >VALUE 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | <b>Ceramic Chip Capacitor KEMET 0805 reflow solder</b><p> 335 | Metric Code Size 2012 336 | 337 | 338 | 339 | 340 | >NAME 341 | >VALUE 342 | 343 | 344 | 345 | 346 | <b>Ceramic Chip Capacitor KEMET 0603 reflow solder</b><p> 347 | Metric Code Size 1608 348 | 349 | 350 | 351 | 352 | >NAME 353 | >VALUE 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | >NAME 371 | >VALUE 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | <b>EAGLE Design Rules</b> 389 | <p> 390 | Die Standard-Design-Rules sind so gewählt, dass sie für 391 | die meisten Anwendungen passen. Sollte ihre Platine 392 | besondere Anforderungen haben, treffen Sie die erforderlichen 393 | Einstellungen hier und speichern die Design Rules unter 394 | einem neuen Namen ab. 395 | <b>EAGLE Design Rules</b> 396 | <p> 397 | The default Design Rules have been set to cover 398 | a wide range of applications. Your particular design 399 | may have different requirements, so please make the 400 | necessary adjustments and save your customized 401 | design rules under a new name. 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | -------------------------------------------------------------------------------- /Si4010/source/keyfob_demo.h: -------------------------------------------------------------------------------- 1 | /*------------------------------------------------------------------------------ 2 | * Silicon Laboratories, Inc. 3 | * Copyright 2010 4 | * CONFIDENTIAL & PROPRIETARY 5 | *------------------------------------------------------------------------------ 6 | * 7 | * FILE: keyfob_demo.h 8 | * TARGET: Si4010 9 | * TOOLCHAIN: Keil 10 | * RELEASE: 1.1 ; ROM version 02.00 11 | * AUTHOR: Miklos Lukacs 12 | * DATE: Jun 07, 2010 13 | * 14 | *------------------------------------------------------------------------------ 15 | * 16 | * DESCRIPTION: 17 | * Header file for the keyfob_demo module. 18 | * 19 | *------------------------------------------------------------------------------*/ 20 | #ifndef _KEYFOB_DEMO_H 21 | #define _KEYFOB_DEMO_H 22 | 23 | 24 | /*------------------------------------------------------------------------------ 25 | * 26 | * INCLUDES: 27 | */ 28 | #include "si4010_types.h" 29 | 30 | /*------------------------------------------------------------------------------ 31 | * 32 | * Definitions: 33 | */ 34 | 35 | #define bRke_EncodeNoneNrz_c 0 /* No encoding */ 36 | #define bRke_EncodeManchester_c 1 /* Manchester encoding */ 37 | #define bRke_Encode4b5b_c 2 /* 4b-5b encoding */ 38 | 39 | #define bRke_OokMod_c (0x00) 40 | #define bRke_FskMod_c (0x01) 41 | 42 | // button 'identifiers' 43 | #define bButton1_c 0x01 44 | #define bButton2_c 0x02 45 | #define bButton3_c 0x04 46 | #define bButton4_c 0x08 47 | #define bButton5_c 0x10 48 | 49 | // definition of the RF packet lenght 50 | #define bFrameSize_c 42 51 | 52 | // RF packet fields 53 | #define lFramePreamble_c 0x555555 54 | 55 | 56 | // Amount of time (x32ms), the application will wait after boot without 57 | // getting a qualified button push before giving up and shutting the chip down. 58 | // Sets the maximum wait time for push as 1.6s; the variable is unit in 32ms. 59 | #define bMaxWaitForPush_c 50 60 | 61 | // This specifies the number of times that the RTC ISR is called between 62 | // each call to the button service routine. The actual time between 63 | // calls is dependent on the setting of RTC_CTRL.RTC_DIV which dictates how 64 | // often the RTC ISR is called. 65 | #define bDebounceInterval_c 8 66 | 67 | // Sets target frequency to 433.92MHz 68 | #define fOperatingFrequency 433920000 69 | 70 | // Sets FSK deviation ~60kHz 71 | //#define bFskDeviation 104 72 | 73 | // The time of packet transmission for the demo: 74 | // Here set the packet interval about (40 * 3) +15 = 130 ms. 75 | #define wRepeatInterval 135+25 76 | 77 | // Repeat packet 4 times for each button packet transmission. 78 | #define bRepeatCount_c 4 79 | 80 | 81 | 82 | 83 | /*------------------------------------------------------------------------------ 84 | * 85 | * VARIABLES: 86 | */ 87 | 88 | // Packet transmit repeat counter 89 | BYTE xdata bRepeatCount; 90 | 91 | LWORD xdata lTimestamp; 92 | 93 | // storing the button which is under processing 94 | BYTE xdata bAp_ButtonState; 95 | 96 | // Pointer to the head of the frame to be sent out. 97 | // the vStl_SingleTxLoop() API function expects a pointer residing in the Data memory 98 | BYTE xdata *pbRke_FrameHead; 99 | 100 | // Structure for setting up the ODS .. must be in XDATA // 101 | tOds_Setup xdata rOdsSetup; 102 | 103 | // Structure for setting up the PA .. must be in XDATA // 104 | tPa_Setup xdata rPaSetup; 105 | 106 | // Battery measurement .. delete if battery measurement is not used // 107 | int iBatteryMv; 108 | BYTE bBatteryWait; // Wait time after loading in 17us increment // 109 | 110 | // BSR control structure // 111 | tBsr_Setup xdata rBsrSetup; 112 | BYTE xdata abBsrPtsPlaceHolder [20] = {0}; 113 | 114 | // setup structure for external crystal oscilator // 115 | tFCast_XoSetup rFCast_XoSetup; 116 | 117 | BYTE bIsr_DebounceCount; 118 | BYTE bdata bPrevBtn = 0; 119 | 120 | // array for storing the TX packet 121 | // needs to be present in the global variable area because it is used in more 122 | // than one Overly Module 123 | BYTE xdata abButtonFrame[bFrameSize_c]; 124 | 125 | // storing the payload of the RF packet, and used as a return status of the 126 | // vPacketAssemble() function 127 | LWORD xdata lPayLoad; 128 | 129 | 130 | 131 | /*------------------------------------------------------------------------- 132 | * 133 | * FUNCTION PROTOTYPES: 134 | */ 135 | 136 | void vAppInitial(void); 137 | 138 | void vButtonCheck(void); 139 | 140 | void vPacketAssemble(void); 141 | 142 | void vButtonCheck(void); 143 | 144 | void vRtl_RepeatTxLoop(void); 145 | 146 | 147 | 148 | #endif /* _KEYFOB_DEMO_H */ 149 | -------------------------------------------------------------------------------- /Si4010/source/keyfob_demo_main.c: -------------------------------------------------------------------------------- 1 | /*------------------------------------------------------------------------------ 2 | * Silicon Laboratories, Inc. 3 | * http://www.silabs.com 4 | * Copyright 2010 5 | *------------------------------------------------------------------------------ 6 | * 7 | * FILE: keyfob_demo_main.c 8 | * TARGET: Si4010 9 | * TOOLCHAIN: Keil 10 | * RELEASE: 1.1 ; ROM version 02.00 11 | * AUTHOR: Miklos Lukacs, 12 | * modified by Michael Stegen for use as Open Chargeport 13 | * DATE: October 07, 2013 14 | * 15 | *------------------------------------------------------------------------------ 16 | * 17 | * DESCRIPTION: 18 | * This file contains the main function for the Keil toolchain 19 | * sample keyfob_demo project. 20 | * 21 | * BL51 linker directives for building this application: 22 | * 23 | * BL51: PL(68) PW(78) IXREF RS(256) 24 | * CODE (0x0-0x08FF) 25 | * DATA (0x40) 26 | * IDATA (0x80) 27 | * XDATA (0x0900-0x107F) 28 | * STACK (?STACK(0x8A)) 29 | * 30 | *------------------------------------------------------------------------------ 31 | * 32 | * INCLUDES: 33 | */ 34 | #include 35 | #include "si4010.h" 36 | #include "si4010_api_rom.h" 37 | 38 | /* Demo header */ 39 | #include "keyfob_demo.h" 40 | 41 | /*------------------------------------------------------------------------------ 42 | * 43 | * FUNCTION DESCRIPTION: 44 | * This function tunes the si4010 for transmission and transmits frames. 45 | * It consists of two fundamental phases, setup and the transmission loop. 46 | * 47 | * Setup Phase: 48 | * The Setup Phase calls all setup function for the need API modules. 49 | * These functions are to be called once per boot of the chip. 50 | * vSys_Setup 51 | * vPa_Setup 52 | * vOds_Setup 53 | * vStl_EncodeSetup 54 | * vFCast_Setup 55 | * 56 | * Transmission Loop Phase: 57 | * The Transmission Loop Phase is a loop which transmits the proper frame 58 | * once a button is pushed. Frequency casting, FSK adjustment 59 | * and PA tuning are all performed between each transmission. 60 | * 61 | *------------------------------------------------------------------------------ 62 | */ 63 | void main(void) 64 | { 65 | /*------------------------------------------------------------------------------ 66 | * SETUP PHASE 67 | *------------------------------------------------------------------------------ 68 | */ 69 | //Set DMD interrupt to high priority, 70 | // any other interrupts have to stay low priority 71 | PDMD=1; 72 | 73 | // Parameters Initialization. 74 | vAppInitial(); 75 | 76 | 77 | // Call the system setup. This just for initialization. 78 | // Argument of 1 just configures the SYS module such that the 79 | // bandgap can be turned off if needed. 80 | vSys_Setup( 1 ); 81 | 82 | // Setup the bandgap for working with the temperature sensor here 83 | vSys_BandGapLdo( 1 ); 84 | 85 | // Setup the BSR 86 | vBsr_Setup( &rBsrSetup ); 87 | 88 | // Setup the RTC to tick every 5ms and clear it. Keep it disabled. 89 | RTC_CTRL = (0x07 << B_RTC_DIV) | M_RTC_CLR; 90 | 91 | // Enable the RTC 92 | RTC_CTRL |= M_RTC_ENA; 93 | 94 | // Enable the RTC interrupt and global interrupt enable 95 | ERTC = 1; 96 | EA = 1; 97 | 98 | // Setup the PA 99 | vPa_Setup( &rPaSetup ); 100 | 101 | // ODS setup 102 | vOds_Setup( &rOdsSetup ); 103 | 104 | // Setup the STL encoding to NoneNrz code. we 105 | // leave the pointer at NULL. 106 | // vStl_EncodeSetup( bEnc_Manchester_c, NULL ); 107 | vStl_EncodeSetup( bEnc_NoneNrz_c, NULL ); 108 | 109 | 110 | // Setup frequency casting .. needed to be called once per boot 111 | vFCast_Setup(); 112 | 113 | 114 | 115 | /*------------------------------------------------------------------------------ 116 | * TRANSMISSION LOOP PHASE 117 | *------------------------------------------------------------------------------ 118 | */ 119 | 120 | // Application loop, including push button state analyzation and transmission. 121 | while(1) 122 | { 123 | // Buttons analyzation and update task flag. 124 | vButtonCheck(); 125 | 126 | if (bAp_ButtonState) 127 | { 128 | // Set frame size and frame header pointer 129 | vPacketAssemble(); 130 | if (lPayLoad) 131 | { 132 | // Start to transmit 133 | vRtl_RepeatTxLoop(); 134 | } 135 | } 136 | else if( (lSys_GetMasterTime() >> 5) > bMaxWaitForPush_c ) 137 | { 138 | // Shutdown if timeout, currently after about 1.6s, 139 | // For debugging with IDE, comment it out since it does not support boot. 140 | vSys_Shutdown(); 141 | } 142 | } 143 | } 144 | 145 | 146 | /*------------------------------------------------------------------------------ 147 | * 148 | * FUNCTION DESCRIPTION: 149 | * Initialization of Application parameters. 150 | * 151 | *------------------------------------------------------------------------------ 152 | */ 153 | void vAppInitial(void) 154 | { 155 | // Disable the Matrix and Roff modes on GPIO[3:1] 156 | PORT_CTRL &= ~(M_PORT_MATRIX | M_PORT_ROFF | M_PORT_STROBE); 157 | PORT_CTRL |= M_PORT_STROBE; 158 | PORT_CTRL &= (~M_PORT_STROBE); 159 | 160 | // Turn LED control off 161 | GPIO_LED = 0; 162 | // Set LED intensity .. acceptable values are 0 (off) or 1, 2, and 3 163 | vSys_LedIntensity( 0 ); 164 | 165 | // Initial debouce time. 166 | bIsr_DebounceCount = 0; 167 | // debounce time definition, the unit is defined by the RTC interrupt time 168 | //(5ms in the demo).It means that the interval between calls to the 169 | // vBsr_Service() function is 5*8=40ms. 170 | // BSR parameters initialization 171 | rBsrSetup.bButtonMask = 0x1F; // GPIO0 only 172 | rBsrSetup.pbPtsReserveHead = abBsrPtsPlaceHolder; 173 | rBsrSetup.bPtsSize = 10; 174 | rBsrSetup.bPushQualThresh = 3; 175 | 176 | // Setup the PA. 177 | // fAlpha and fBeta has to be set based on antenna configuration. 178 | // Chose a PA level and nominal cap. Both values come from 179 | // the calculation spreadsheet. 180 | rPaSetup.fAlpha = 0.0; 181 | rPaSetup.fBeta = 0.3593; 182 | rPaSetup.bLevel = 0; 183 | rPaSetup.wNominalCap = 10; 184 | rPaSetup.bMaxDrv = 0; 185 | 186 | // Setup the ODS 187 | rOdsSetup.bModulationType = bRke_OokMod_c; // Use OOK 188 | // rOdsSetup.bModulationType = bRke_FskMod_c; // Use FSK 189 | rOdsSetup.bClkDiv = 5; 190 | rOdsSetup.bEdgeRate = 0; 191 | 192 | // Set group width to 7, which means 8 bits/encoded byte to be transmitted. 193 | // The value must match the output width of the data encoding function 194 | // set by the vStl_EncodeSetup() below! 195 | rOdsSetup.bGroupWidth = 7; 196 | // 24MHz / (bClkDiv+1) / 9.6kbps = 417 197 | rOdsSetup.wBitRate = 1600; // 1,25kbps 198 | 199 | // Configure the warm up intervals LC: 8, DIV: 4, PA: 4 200 | rOdsSetup.bLcWarmInt = 8; 201 | rOdsSetup.bDivWarmInt = 5; 202 | rOdsSetup.bPaWarmInt = 4; 203 | 204 | // Set external crystal oscillator parameters - 10MHz, 12pF 205 | // currently XO is not used in this example 206 | rFCast_XoSetup.fXoFreq = 10000000;//12729633; 207 | rFCast_XoSetup.bLowCap = 1; 208 | 209 | return; 210 | } 211 | 212 | /*------------------------------------------------------------------------------ 213 | * 214 | * FUNCTION DESCRIPTION: 215 | * This function contains the loop which consists of three procedures, 216 | * tx setup, tx loop and tx shutdown in the application. 217 | * During waiting for repeat transmission, check button state. 218 | * Once any new push button is detected, then transmit the new packet 219 | * instead of the current packet. 220 | * 221 | *------------------------------------------------------------------------------ 222 | */ 223 | void vRtl_RepeatTxLoop(void) 224 | 225 | { 226 | 227 | // Repeat packet 8 times for each button packet transmission. 228 | bRepeatCount = bRepeatCount_c; 229 | 230 | 231 | 232 | do 233 | { 234 | // Setup the bandgap 235 | vSys_BandGapLdo( 1 ); 236 | 237 | // Save current timestamp for repeat transmission interval checking later. 238 | lTimestamp = lSys_GetMasterTime(); 239 | 240 | // Run at 433.92 MHz (frequency).Input is in [Hz]. 241 | // The function also calculates necessary data to be used by the single Tx loop 242 | // main function, vStl_SingleTxLoop(), for fine frequency correction during TX 243 | vFCast_Tune( fOperatingFrequency ); 244 | 245 | // bFskDeviation comes from the calculation spreadsheet. 246 | // vFCast_FskAdj( bFskDeviation ); 247 | 248 | // Now wait until there is a temperature value 249 | while ( 0 == bDmdTs_GetSamplesTaken() ){} 250 | 251 | // Tune the PA with the current temperature as an argument 252 | vPa_Tune( iDmdTs_GetLatestTemp()); 253 | 254 | // Sets up the temperature sensor and demodulator, 255 | // enable ODS before entering the single tx loop. 256 | vStl_PreLoop(); 257 | 258 | // Then assign the first address of the frame buffer to 259 | // the packet pointer used for transmission. 260 | pbRke_FrameHead = abButtonFrame; 261 | 262 | // call the single tx loop function 263 | vStl_SingleTxLoop(pbRke_FrameHead, 264 | bFrameSize_c); 265 | 266 | // Disable the temperature sensor and ODS 267 | vStl_PostLoop(); 268 | 269 | // Disable Bandgap and LDO 270 | vSys_BandGapLdo(0); 271 | 272 | 273 | //turn LED on 274 | GPIO_LED = 1; 275 | 276 | // Wait repeat interval. 277 | while ( (lSys_GetMasterTime() - lTimestamp) < wRepeatInterval ); 278 | 279 | //turn LED off 280 | GPIO_LED = 0; 281 | }while(--bRepeatCount); 282 | 283 | // After repeat transmission, clear all tasks flag. 284 | bAp_ButtonState = 0; 285 | 286 | // Clear time value for next button push detecting. 287 | vSys_SetMasterTime(0); 288 | return; 289 | } 290 | 291 | /* 292 | *------------------------------------------------------------------------------ 293 | * 294 | * FUNCTION DESCRIPTION: 295 | * Update the master time by 5, every time this isr is run, and call the 296 | * Button Service Routine 297 | * 298 | */ 299 | 300 | void isr_rtc (void) interrupt INTERRUPT_RTC using 1 301 | 302 | { 303 | 304 | // clear the RTC_INT 305 | RTC_CTRL &= ~M_RTC_INT; 306 | vSys_IncMasterTime(5); 307 | bIsr_DebounceCount ++; 308 | if ((bIsr_DebounceCount % bDebounceInterval_c) == 0) 309 | { 310 | vBsr_Service(); 311 | } 312 | return; 313 | } 314 | 315 | /* 316 | *------------------------------------------------------------------------------ 317 | * 318 | * FUNCTION DESCRIPTION: 319 | * Update bAp_ButtonState which indicates what to be transmitted. 320 | * Check the elements on PTS (push tracking strcture) to see if any GPIO 321 | * has been pressed or released. 322 | * If any new pressed button has detected, the corresponding flag will be set and 323 | * the associated information will be transmitted in the application loop procedure. 324 | * 325 | *------------------------------------------------------------------------------ 326 | */ 327 | void vButtonCheck( void) 328 | { 329 | ERTC = 0; // Disable RTC interrupt, otherwise button state might be corrupted. 330 | bAp_ButtonState = 0; 331 | if (bBsr_GetPtsItemCnt()) 332 | { // GPIO status have been changed. 333 | // Some buttons may have been pressed or released. 334 | bAp_ButtonState = wBsr_Pop() & 0xFF; 335 | if (bPrevBtn) 336 | { 337 | bPrevBtn = bAp_ButtonState; 338 | bAp_ButtonState = 0; 339 | } 340 | else 341 | { 342 | bPrevBtn = bAp_ButtonState; 343 | } 344 | } 345 | ERTC = 1; // Enable RTC interrupt 346 | return; 347 | } 348 | 349 | /*------------------------------------------------------------------------------ 350 | * 351 | * FUNCTION DESCRIPTION: 352 | * This function is used to update the packet for transmission, 353 | * it is called after vAp_AnalyzeButton(), according to the 354 | * the result of buttons analyzation to decide which packet 355 | * to be transmited. 356 | * 357 | *------------------------------------------------------------------------------ 358 | */ 359 | void vPacketAssemble ( void) 360 | { 361 | /* Normal packet transmission mode, send the associated packet 362 | * 363 | * Note that Output Data Serializer (ODS) is in little endian fashion, 364 | * bit 0 first and inverted. So each byte of the packet data should be 365 | * converted properly before writing into frame buffer. 366 | */ 367 | 368 | /* switch (bAp_ButtonState) 369 | { 370 | case bButton1_c: 371 | lPayLoad = lFramePayLoad1_c; 372 | break; 373 | case bButton2_c: 374 | lPayLoad = lFramePayLoad2_c; 375 | break; 376 | case bButton3_c: 377 | lPayLoad = lFramePayLoad3_c; 378 | break; 379 | case bButton4_c: 380 | lPayLoad = lFramePayLoad4_c; 381 | break; 382 | case bButton5_c: 383 | lPayLoad = lFramePayLoad5_c; 384 | break; 385 | default: 386 | lPayLoad = 0; 387 | break; 388 | } 389 | */ 390 | // Fill frame buffer with the corresponding button data. 391 | abButtonFrame[0] = 0x55; 392 | abButtonFrame[1] = 0x55; 393 | abButtonFrame[2] = 0x55; 394 | 395 | abButtonFrame[3] = 0x51; // Tesla specific data 396 | abButtonFrame[4] = 0xd3; 397 | abButtonFrame[5] = 0x4c; 398 | abButtonFrame[6] = 0x33; 399 | abButtonFrame[7] = 0x33; 400 | abButtonFrame[8] = 0xd3; 401 | abButtonFrame[9] = 0xb2; 402 | abButtonFrame[10] = 0xb4; 403 | abButtonFrame[11] = 0x52; 404 | abButtonFrame[12] = 0xcb; 405 | abButtonFrame[13] = 0x32; 406 | abButtonFrame[14] = 0xd5; 407 | abButtonFrame[15] = 0xd2; 408 | 409 | abButtonFrame[16] = 0xA8; 410 | abButtonFrame[17] = 0x69; 411 | abButtonFrame[18] = 0xa6; 412 | abButtonFrame[19] = 0x99; 413 | abButtonFrame[20] = 0x99; 414 | abButtonFrame[21] = 0x69; 415 | abButtonFrame[22] = 0x59; 416 | abButtonFrame[23] = 0x5a; 417 | abButtonFrame[24] = 0xa9; 418 | abButtonFrame[25] = 0x65; 419 | abButtonFrame[26] = 0x99; 420 | abButtonFrame[27] = 0x6a; 421 | abButtonFrame[28] = 0x69; 422 | 423 | abButtonFrame[29] = 0xd4; 424 | abButtonFrame[30] = 0x34; 425 | abButtonFrame[31] = 0xd3; 426 | abButtonFrame[32] = 0xcc; 427 | abButtonFrame[33] = 0xcc; 428 | abButtonFrame[34] = 0xb4; 429 | abButtonFrame[35] = 0x2c; 430 | abButtonFrame[36] = 0xad; 431 | abButtonFrame[37] = 0xd4; 432 | abButtonFrame[38] = 0xb2; 433 | abButtonFrame[39] = 0x4c; 434 | abButtonFrame[40] = 0xb5; 435 | abButtonFrame[41] = 0x34; 436 | 437 | 438 | 439 | 440 | return; 441 | } -------------------------------------------------------------------------------- /eagle/OpenChargeport.brd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | Open Chargeport 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | * 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | * 131 | >NAME 132 | >VALUE 133 | 134 | 135 | 136 | 137 | <b>Lithium Batteries and NC Accus</b><p> 138 | <author>Created by librarian@cadsoft.de</author> 139 | 140 | 141 | <b>LI BATTERY</b> Varta 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | >NAME 161 | >VALUE 162 | Lit.3V 163 | 164 | 165 | 166 | 167 | 168 | <b>Resistors, Capacitors, Inductors</b><p> 169 | Based on the previous libraries: 170 | <ul> 171 | <li>r.lbr 172 | <li>cap.lbr 173 | <li>cap-fe.lbr 174 | <li>captant.lbr 175 | <li>polcap.lbr 176 | <li>ipc-smd.lbr 177 | </ul> 178 | All SMD packages are defined according to the IPC specifications and CECC<p> 179 | <author>Created by librarian@cadsoft.de</author><p> 180 | <p> 181 | for Electrolyt Capacitors see also :<p> 182 | www.bccomponents.com <p> 183 | www.panasonic.com<p> 184 | www.kemet.com<p> 185 | http://www.secc.co.jp/pdf/os_e/2004/e_os_all.pdf <b>(SANYO)</b> 186 | <p> 187 | for trimmer refence see : <u>www.electrospec-inc.com/cross_references/trimpotcrossref.asp</u><p> 188 | 189 | <table border=0 cellspacing=0 cellpadding=0 width="100%" cellpaddding=0> 190 | <tr valign="top"> 191 | 192 | <! <td width="10">&nbsp;</td> 193 | <td width="90%"> 194 | 195 | <b><font color="#0000FF" size="4">TRIM-POT CROSS REFERENCE</font></b> 196 | <P> 197 | <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2> 198 | <TR> 199 | <TD COLSPAN=8> 200 | <FONT SIZE=3 FACE=ARIAL><B>RECTANGULAR MULTI-TURN</B></FONT> 201 | </TD> 202 | </TR> 203 | <TR> 204 | <TD ALIGN=CENTER> 205 | <B> 206 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">BOURNS</FONT> 207 | </B> 208 | </TD> 209 | <TD ALIGN=CENTER> 210 | <B> 211 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">BI&nbsp;TECH</FONT> 212 | </B> 213 | </TD> 214 | <TD ALIGN=CENTER> 215 | <B> 216 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">DALE-VISHAY</FONT> 217 | </B> 218 | </TD> 219 | <TD ALIGN=CENTER> 220 | <B> 221 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">PHILIPS/MEPCO</FONT> 222 | </B> 223 | </TD> 224 | <TD ALIGN=CENTER> 225 | <B> 226 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">MURATA</FONT> 227 | </B> 228 | </TD> 229 | <TD ALIGN=CENTER> 230 | <B> 231 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">PANASONIC</FONT> 232 | </B> 233 | </TD> 234 | <TD ALIGN=CENTER> 235 | <B> 236 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">SPECTROL</FONT> 237 | </B> 238 | </TD> 239 | <TD ALIGN=CENTER> 240 | <B> 241 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">MILSPEC</FONT> 242 | </B> 243 | </TD><TD>&nbsp;</TD> 244 | </TR> 245 | <TR> 246 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3 > 247 | 3005P<BR> 248 | 3006P<BR> 249 | 3006W<BR> 250 | 3006Y<BR> 251 | 3009P<BR> 252 | 3009W<BR> 253 | 3009Y<BR> 254 | 3057J<BR> 255 | 3057L<BR> 256 | 3057P<BR> 257 | 3057Y<BR> 258 | 3059J<BR> 259 | 3059L<BR> 260 | 3059P<BR> 261 | 3059Y<BR></FONT> 262 | </TD> 263 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 264 | -<BR> 265 | 89P<BR> 266 | 89W<BR> 267 | 89X<BR> 268 | 89PH<BR> 269 | 76P<BR> 270 | 89XH<BR> 271 | 78SLT<BR> 272 | 78L&nbsp;ALT<BR> 273 | 56P&nbsp;ALT<BR> 274 | 78P&nbsp;ALT<BR> 275 | T8S<BR> 276 | 78L<BR> 277 | 56P<BR> 278 | 78P<BR></FONT> 279 | </TD> 280 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 281 | -<BR> 282 | T18/784<BR> 283 | 783<BR> 284 | 781<BR> 285 | -<BR> 286 | -<BR> 287 | -<BR> 288 | 2199<BR> 289 | 1697/1897<BR> 290 | 1680/1880<BR> 291 | 2187<BR> 292 | -<BR> 293 | -<BR> 294 | -<BR> 295 | -<BR></FONT> 296 | </TD> 297 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 298 | -<BR> 299 | 8035EKP/CT20/RJ-20P<BR> 300 | -<BR> 301 | RJ-20X<BR> 302 | -<BR> 303 | -<BR> 304 | -<BR> 305 | 1211L<BR> 306 | 8012EKQ&nbsp;ALT<BR> 307 | 8012EKR&nbsp;ALT<BR> 308 | 1211P<BR> 309 | 8012EKJ<BR> 310 | 8012EKL<BR> 311 | 8012EKQ<BR> 312 | 8012EKR<BR></FONT> 313 | </TD> 314 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 315 | -<BR> 316 | 2101P<BR> 317 | 2101W<BR> 318 | 2101Y<BR> 319 | -<BR> 320 | -<BR> 321 | -<BR> 322 | -<BR> 323 | -<BR> 324 | -<BR> 325 | -<BR> 326 | -<BR> 327 | 2102L<BR> 328 | 2102S<BR> 329 | 2102Y<BR></FONT> 330 | </TD> 331 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 332 | -<BR> 333 | EVMCOG<BR> 334 | -<BR> 335 | -<BR> 336 | -<BR> 337 | -<BR> 338 | -<BR> 339 | -<BR> 340 | -<BR> 341 | -<BR> 342 | -<BR> 343 | -<BR> 344 | -<BR> 345 | -<BR> 346 | -<BR></FONT> 347 | </TD> 348 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 349 | -<BR> 350 | 43P<BR> 351 | 43W<BR> 352 | 43Y<BR> 353 | -<BR> 354 | -<BR> 355 | -<BR> 356 | -<BR> 357 | 40L<BR> 358 | 40P<BR> 359 | 40Y<BR> 360 | 70Y-T602<BR> 361 | 70L<BR> 362 | 70P<BR> 363 | 70Y<BR></FONT> 364 | </TD> 365 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 366 | -<BR> 367 | -<BR> 368 | -<BR> 369 | -<BR> 370 | -<BR> 371 | -<BR> 372 | -<BR> 373 | -<BR> 374 | RT/RTR12<BR> 375 | RT/RTR12<BR> 376 | RT/RTR12<BR> 377 | -<BR> 378 | RJ/RJR12<BR> 379 | RJ/RJR12<BR> 380 | RJ/RJR12<BR></FONT> 381 | </TD> 382 | </TR> 383 | <TR> 384 | <TD COLSPAN=8>&nbsp; 385 | </TD> 386 | </TR> 387 | <TR> 388 | <TD COLSPAN=8> 389 | <FONT SIZE=4 FACE=ARIAL><B>SQUARE MULTI-TURN</B></FONT> 390 | </TD> 391 | </TR> 392 | <TR> 393 | <TD ALIGN=CENTER> 394 | <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> 395 | </TD> 396 | <TD ALIGN=CENTER> 397 | <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> 398 | </TD> 399 | <TD ALIGN=CENTER> 400 | <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> 401 | </TD> 402 | <TD ALIGN=CENTER> 403 | <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> 404 | </TD> 405 | <TD ALIGN=CENTER> 406 | <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> 407 | </TD> 408 | <TD ALIGN=CENTER> 409 | <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> 410 | </TD> 411 | <TD ALIGN=CENTER> 412 | <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> 413 | </TD> 414 | <TD ALIGN=CENTER> 415 | <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> 416 | </TD> 417 | </TR> 418 | <TR> 419 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 420 | 3250L<BR> 421 | 3250P<BR> 422 | 3250W<BR> 423 | 3250X<BR> 424 | 3252P<BR> 425 | 3252W<BR> 426 | 3252X<BR> 427 | 3260P<BR> 428 | 3260W<BR> 429 | 3260X<BR> 430 | 3262P<BR> 431 | 3262W<BR> 432 | 3262X<BR> 433 | 3266P<BR> 434 | 3266W<BR> 435 | 3266X<BR> 436 | 3290H<BR> 437 | 3290P<BR> 438 | 3290W<BR> 439 | 3292P<BR> 440 | 3292W<BR> 441 | 3292X<BR> 442 | 3296P<BR> 443 | 3296W<BR> 444 | 3296X<BR> 445 | 3296Y<BR> 446 | 3296Z<BR> 447 | 3299P<BR> 448 | 3299W<BR> 449 | 3299X<BR> 450 | 3299Y<BR> 451 | 3299Z<BR></FONT> 452 | </TD> 453 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 454 | -<BR> 455 | 66P&nbsp;ALT<BR> 456 | 66W&nbsp;ALT<BR> 457 | 66X&nbsp;ALT<BR> 458 | 66P&nbsp;ALT<BR> 459 | 66W&nbsp;ALT<BR> 460 | 66X&nbsp;ALT<BR> 461 | -<BR> 462 | 64W&nbsp;ALT<BR> 463 | -<BR> 464 | 64P&nbsp;ALT<BR> 465 | 64W&nbsp;ALT<BR> 466 | 64X&nbsp;ALT<BR> 467 | 64P<BR> 468 | 64W<BR> 469 | 64X<BR> 470 | 66X&nbsp;ALT<BR> 471 | 66P&nbsp;ALT<BR> 472 | 66W&nbsp;ALT<BR> 473 | 66P<BR> 474 | 66W<BR> 475 | 66X<BR> 476 | 67P<BR> 477 | 67W<BR> 478 | 67X<BR> 479 | 67Y<BR> 480 | 67Z<BR> 481 | 68P<BR> 482 | 68W<BR> 483 | 68X<BR> 484 | 67Y&nbsp;ALT<BR> 485 | 67Z&nbsp;ALT<BR></FONT> 486 | </TD> 487 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 488 | 5050<BR> 489 | 5091<BR> 490 | 5080<BR> 491 | 5087<BR> 492 | -<BR> 493 | -<BR> 494 | -<BR> 495 | -<BR> 496 | -<BR> 497 | -<BR> 498 | -<BR> 499 | T63YB<BR> 500 | T63XB<BR> 501 | -<BR> 502 | -<BR> 503 | -<BR> 504 | 5887<BR> 505 | 5891<BR> 506 | 5880<BR> 507 | -<BR> 508 | -<BR> 509 | -<BR> 510 | T93Z<BR> 511 | T93YA<BR> 512 | T93XA<BR> 513 | T93YB<BR> 514 | T93XB<BR> 515 | -<BR> 516 | -<BR> 517 | -<BR> 518 | -<BR> 519 | -<BR></FONT> 520 | </TD> 521 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 522 | -<BR> 523 | -<BR> 524 | -<BR> 525 | -<BR> 526 | -<BR> 527 | -<BR> 528 | -<BR> 529 | -<BR> 530 | -<BR> 531 | -<BR> 532 | 8026EKP<BR> 533 | 8026EKW<BR> 534 | 8026EKM<BR> 535 | 8026EKP<BR> 536 | 8026EKB<BR> 537 | 8026EKM<BR> 538 | 1309X<BR> 539 | 1309P<BR> 540 | 1309W<BR> 541 | 8024EKP<BR> 542 | 8024EKW<BR> 543 | 8024EKN<BR> 544 | RJ-9P/CT9P<BR> 545 | RJ-9W<BR> 546 | RJ-9X<BR> 547 | -<BR> 548 | -<BR> 549 | -<BR> 550 | -<BR> 551 | -<BR> 552 | -<BR> 553 | -<BR></FONT> 554 | </TD> 555 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 556 | -<BR> 557 | -<BR> 558 | -<BR> 559 | -<BR> 560 | -<BR> 561 | -<BR> 562 | -<BR> 563 | -<BR> 564 | -<BR> 565 | -<BR> 566 | 3103P<BR> 567 | 3103Y<BR> 568 | 3103Z<BR> 569 | 3103P<BR> 570 | 3103Y<BR> 571 | 3103Z<BR> 572 | -<BR> 573 | -<BR> 574 | -<BR> 575 | -<BR> 576 | -<BR> 577 | -<BR> 578 | 3105P/3106P<BR> 579 | 3105W/3106W<BR> 580 | 3105X/3106X<BR> 581 | 3105Y/3106Y<BR> 582 | 3105Z/3105Z<BR> 583 | 3102P<BR> 584 | 3102W<BR> 585 | 3102X<BR> 586 | 3102Y<BR> 587 | 3102Z<BR></FONT> 588 | </TD> 589 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 590 | -<BR> 591 | -<BR> 592 | -<BR> 593 | -<BR> 594 | -<BR> 595 | -<BR> 596 | -<BR> 597 | -<BR> 598 | -<BR> 599 | -<BR> 600 | -<BR> 601 | -<BR> 602 | -<BR> 603 | -<BR> 604 | -<BR> 605 | -<BR> 606 | -<BR> 607 | -<BR> 608 | -<BR> 609 | -<BR> 610 | -<BR> 611 | -<BR> 612 | EVMCBG<BR> 613 | EVMCCG<BR> 614 | -<BR> 615 | -<BR> 616 | -<BR> 617 | -<BR> 618 | -<BR> 619 | -<BR> 620 | -<BR> 621 | -<BR></FONT> 622 | </TD> 623 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 624 | 55-1-X<BR> 625 | 55-4-X<BR> 626 | 55-3-X<BR> 627 | 55-2-X<BR> 628 | -<BR> 629 | -<BR> 630 | -<BR> 631 | -<BR> 632 | -<BR> 633 | -<BR> 634 | -<BR> 635 | -<BR> 636 | -<BR> 637 | -<BR> 638 | -<BR> 639 | -<BR> 640 | 50-2-X<BR> 641 | 50-4-X<BR> 642 | 50-3-X<BR> 643 | -<BR> 644 | -<BR> 645 | -<BR> 646 | 64P<BR> 647 | 64W<BR> 648 | 64X<BR> 649 | 64Y<BR> 650 | 64Z<BR> 651 | -<BR> 652 | -<BR> 653 | -<BR> 654 | -<BR> 655 | -<BR></FONT> 656 | </TD> 657 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 658 | RT/RTR22<BR> 659 | RT/RTR22<BR> 660 | RT/RTR22<BR> 661 | RT/RTR22<BR> 662 | RJ/RJR22<BR> 663 | RJ/RJR22<BR> 664 | RJ/RJR22<BR> 665 | RT/RTR26<BR> 666 | RT/RTR26<BR> 667 | RT/RTR26<BR> 668 | RJ/RJR26<BR> 669 | RJ/RJR26<BR> 670 | RJ/RJR26<BR> 671 | RJ/RJR26<BR> 672 | RJ/RJR26<BR> 673 | RJ/RJR26<BR> 674 | RT/RTR24<BR> 675 | RT/RTR24<BR> 676 | RT/RTR24<BR> 677 | RJ/RJR24<BR> 678 | RJ/RJR24<BR> 679 | RJ/RJR24<BR> 680 | RJ/RJR24<BR> 681 | RJ/RJR24<BR> 682 | RJ/RJR24<BR> 683 | -<BR> 684 | -<BR> 685 | -<BR> 686 | -<BR> 687 | -<BR> 688 | -<BR> 689 | -<BR></FONT> 690 | </TD> 691 | </TR> 692 | <TR> 693 | <TD COLSPAN=8>&nbsp; 694 | </TD> 695 | </TR> 696 | <TR> 697 | <TD COLSPAN=8> 698 | <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> 699 | </TD> 700 | </TR> 701 | <TR> 702 | <TD ALIGN=CENTER> 703 | <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> 704 | </TD> 705 | <TD ALIGN=CENTER> 706 | <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> 707 | </TD> 708 | <TD ALIGN=CENTER> 709 | <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> 710 | </TD> 711 | <TD ALIGN=CENTER> 712 | <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> 713 | </TD> 714 | <TD ALIGN=CENTER> 715 | <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> 716 | </TD> 717 | <TD ALIGN=CENTER> 718 | <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> 719 | </TD> 720 | <TD ALIGN=CENTER> 721 | <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> 722 | </TD> 723 | <TD ALIGN=CENTER> 724 | <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> 725 | </TD> 726 | </TR> 727 | <TR> 728 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 729 | 3323P<BR> 730 | 3323S<BR> 731 | 3323W<BR> 732 | 3329H<BR> 733 | 3329P<BR> 734 | 3329W<BR> 735 | 3339H<BR> 736 | 3339P<BR> 737 | 3339W<BR> 738 | 3352E<BR> 739 | 3352H<BR> 740 | 3352K<BR> 741 | 3352P<BR> 742 | 3352T<BR> 743 | 3352V<BR> 744 | 3352W<BR> 745 | 3362H<BR> 746 | 3362M<BR> 747 | 3362P<BR> 748 | 3362R<BR> 749 | 3362S<BR> 750 | 3362U<BR> 751 | 3362W<BR> 752 | 3362X<BR> 753 | 3386B<BR> 754 | 3386C<BR> 755 | 3386F<BR> 756 | 3386H<BR> 757 | 3386K<BR> 758 | 3386M<BR> 759 | 3386P<BR> 760 | 3386S<BR> 761 | 3386W<BR> 762 | 3386X<BR></FONT> 763 | </TD> 764 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 765 | 25P<BR> 766 | 25S<BR> 767 | 25RX<BR> 768 | 82P<BR> 769 | 82M<BR> 770 | 82PA<BR> 771 | -<BR> 772 | -<BR> 773 | -<BR> 774 | 91E<BR> 775 | 91X<BR> 776 | 91T<BR> 777 | 91B<BR> 778 | 91A<BR> 779 | 91V<BR> 780 | 91W<BR> 781 | 25W<BR> 782 | 25V<BR> 783 | 25P<BR> 784 | -<BR> 785 | 25S<BR> 786 | 25U<BR> 787 | 25RX<BR> 788 | 25X<BR> 789 | 72XW<BR> 790 | 72XL<BR> 791 | 72PM<BR> 792 | 72RX<BR> 793 | -<BR> 794 | 72PX<BR> 795 | 72P<BR> 796 | 72RXW<BR> 797 | 72RXL<BR> 798 | 72X<BR></FONT> 799 | </TD> 800 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 801 | -<BR> 802 | -<BR> 803 | -<BR> 804 | T7YB<BR> 805 | T7YA<BR> 806 | -<BR> 807 | -<BR> 808 | -<BR> 809 | -<BR> 810 | -<BR> 811 | -<BR> 812 | -<BR> 813 | -<BR> 814 | -<BR> 815 | -<BR> 816 | -<BR> 817 | -<BR> 818 | TXD<BR> 819 | TYA<BR> 820 | TYP<BR> 821 | -<BR> 822 | TYD<BR> 823 | TX<BR> 824 | -<BR> 825 | 150SX<BR> 826 | 100SX<BR> 827 | 102T<BR> 828 | 101S<BR> 829 | 190T<BR> 830 | 150TX<BR> 831 | 101<BR> 832 | -<BR> 833 | -<BR> 834 | 101SX<BR></FONT> 835 | </TD> 836 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 837 | ET6P<BR> 838 | ET6S<BR> 839 | ET6X<BR> 840 | RJ-6W/8014EMW<BR> 841 | RJ-6P/8014EMP<BR> 842 | RJ-6X/8014EMX<BR> 843 | TM7W<BR> 844 | TM7P<BR> 845 | TM7X<BR> 846 | -<BR> 847 | 8017SMS<BR> 848 | -<BR> 849 | 8017SMB<BR> 850 | 8017SMA<BR> 851 | -<BR> 852 | -<BR> 853 | CT-6W<BR> 854 | CT-6H<BR> 855 | CT-6P<BR> 856 | CT-6R<BR> 857 | -<BR> 858 | CT-6V<BR> 859 | CT-6X<BR> 860 | -<BR> 861 | -<BR> 862 | 8038EKV<BR> 863 | -<BR> 864 | 8038EKX<BR> 865 | -<BR> 866 | -<BR> 867 | 8038EKP<BR> 868 | 8038EKZ<BR> 869 | 8038EKW<BR> 870 | -<BR></FONT> 871 | </TD> 872 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 873 | -<BR> 874 | -<BR> 875 | -<BR> 876 | 3321H<BR> 877 | 3321P<BR> 878 | 3321N<BR> 879 | 1102H<BR> 880 | 1102P<BR> 881 | 1102T<BR> 882 | RVA0911V304A<BR> 883 | -<BR> 884 | RVA0911H413A<BR> 885 | RVG0707V100A<BR> 886 | RVA0607V(H)306A<BR> 887 | RVA1214H213A<BR> 888 | -<BR> 889 | -<BR> 890 | -<BR> 891 | -<BR> 892 | -<BR> 893 | -<BR> 894 | -<BR> 895 | -<BR> 896 | -<BR> 897 | 3104B<BR> 898 | 3104C<BR> 899 | 3104F<BR> 900 | 3104H<BR> 901 | -<BR> 902 | 3104M<BR> 903 | 3104P<BR> 904 | 3104S<BR> 905 | 3104W<BR> 906 | 3104X<BR></FONT> 907 | </TD> 908 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 909 | EVMQ0G<BR> 910 | EVMQIG<BR> 911 | EVMQ3G<BR> 912 | EVMS0G<BR> 913 | EVMQ0G<BR> 914 | EVMG0G<BR> 915 | -<BR> 916 | -<BR> 917 | -<BR> 918 | EVMK4GA00B<BR> 919 | EVM30GA00B<BR> 920 | EVMK0GA00B<BR> 921 | EVM38GA00B<BR> 922 | EVMB6<BR> 923 | EVLQ0<BR> 924 | -<BR> 925 | EVMMSG<BR> 926 | EVMMBG<BR> 927 | EVMMAG<BR> 928 | -<BR> 929 | -<BR> 930 | EVMMCS<BR> 931 | -<BR> 932 | -<BR> 933 | -<BR> 934 | -<BR> 935 | -<BR> 936 | EVMM1<BR> 937 | -<BR> 938 | -<BR> 939 | EVMM0<BR> 940 | -<BR> 941 | -<BR> 942 | EVMM3<BR></FONT> 943 | </TD> 944 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 945 | -<BR> 946 | -<BR> 947 | -<BR> 948 | 62-3-1<BR> 949 | 62-1-2<BR> 950 | -<BR> 951 | -<BR> 952 | -<BR> 953 | -<BR> 954 | -<BR> 955 | -<BR> 956 | -<BR> 957 | -<BR> 958 | -<BR> 959 | -<BR> 960 | -<BR> 961 | 67R<BR> 962 | -<BR> 963 | 67P<BR> 964 | -<BR> 965 | -<BR> 966 | -<BR> 967 | -<BR> 968 | 67X<BR> 969 | 63V<BR> 970 | 63S<BR> 971 | 63M<BR> 972 | -<BR> 973 | -<BR> 974 | 63H<BR> 975 | 63P<BR> 976 | -<BR> 977 | -<BR> 978 | 63X<BR></FONT> 979 | </TD> 980 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 981 | -<BR> 982 | -<BR> 983 | -<BR> 984 | RJ/RJR50<BR> 985 | RJ/RJR50<BR> 986 | RJ/RJR50<BR> 987 | -<BR> 988 | -<BR> 989 | -<BR> 990 | -<BR> 991 | -<BR> 992 | -<BR> 993 | -<BR> 994 | -<BR> 995 | -<BR> 996 | -<BR> 997 | -<BR> 998 | -<BR> 999 | -<BR> 1000 | -<BR> 1001 | -<BR> 1002 | -<BR> 1003 | -<BR> 1004 | -<BR> 1005 | -<BR> 1006 | -<BR> 1007 | -<BR> 1008 | -<BR> 1009 | -<BR> 1010 | -<BR> 1011 | -<BR> 1012 | -<BR> 1013 | -<BR> 1014 | -<BR></FONT> 1015 | </TD> 1016 | </TR> 1017 | </TABLE> 1018 | <P>&nbsp;<P> 1019 | <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3> 1020 | <TR> 1021 | <TD COLSPAN=7> 1022 | <FONT color="#0000FF" SIZE=4 FACE=ARIAL><B>SMD TRIM-POT CROSS REFERENCE</B></FONT> 1023 | <P> 1024 | <FONT SIZE=4 FACE=ARIAL><B>MULTI-TURN</B></FONT> 1025 | </TD> 1026 | </TR> 1027 | <TR> 1028 | <TD> 1029 | <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> 1030 | </TD> 1031 | <TD> 1032 | <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> 1033 | </TD> 1034 | <TD> 1035 | <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> 1036 | </TD> 1037 | <TD> 1038 | <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> 1039 | </TD> 1040 | <TD> 1041 | <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> 1042 | </TD> 1043 | <TD> 1044 | <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> 1045 | </TD> 1046 | <TD> 1047 | <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> 1048 | </TD> 1049 | </TR> 1050 | <TR> 1051 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1052 | 3224G<BR> 1053 | 3224J<BR> 1054 | 3224W<BR> 1055 | 3269P<BR> 1056 | 3269W<BR> 1057 | 3269X<BR></FONT> 1058 | </TD> 1059 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1060 | 44G<BR> 1061 | 44J<BR> 1062 | 44W<BR> 1063 | 84P<BR> 1064 | 84W<BR> 1065 | 84X<BR></FONT> 1066 | </TD> 1067 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1068 | -<BR> 1069 | -<BR> 1070 | -<BR> 1071 | ST63Z<BR> 1072 | ST63Y<BR> 1073 | -<BR></FONT> 1074 | </TD> 1075 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1076 | -<BR> 1077 | -<BR> 1078 | -<BR> 1079 | ST5P<BR> 1080 | ST5W<BR> 1081 | ST5X<BR></FONT> 1082 | </TD> 1083 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1084 | -<BR> 1085 | -<BR> 1086 | -<BR> 1087 | -<BR> 1088 | -<BR> 1089 | -<BR></FONT> 1090 | </TD> 1091 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1092 | -<BR> 1093 | -<BR> 1094 | -<BR> 1095 | -<BR> 1096 | -<BR> 1097 | -<BR></FONT> 1098 | </TD> 1099 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1100 | -<BR> 1101 | -<BR> 1102 | -<BR> 1103 | -<BR> 1104 | -<BR> 1105 | -<BR></FONT> 1106 | </TD> 1107 | </TR> 1108 | <TR> 1109 | <TD COLSPAN=7>&nbsp; 1110 | </TD> 1111 | </TR> 1112 | <TR> 1113 | <TD COLSPAN=7> 1114 | <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> 1115 | </TD> 1116 | </TR> 1117 | <TR> 1118 | <TD> 1119 | <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> 1120 | </TD> 1121 | <TD> 1122 | <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> 1123 | </TD> 1124 | <TD> 1125 | <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> 1126 | </TD> 1127 | <TD> 1128 | <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> 1129 | </TD> 1130 | <TD> 1131 | <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> 1132 | </TD> 1133 | <TD> 1134 | <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> 1135 | </TD> 1136 | <TD> 1137 | <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> 1138 | </TD> 1139 | </TR> 1140 | <TR> 1141 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1142 | 3314G<BR> 1143 | 3314J<BR> 1144 | 3364A/B<BR> 1145 | 3364C/D<BR> 1146 | 3364W/X<BR> 1147 | 3313G<BR> 1148 | 3313J<BR></FONT> 1149 | </TD> 1150 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1151 | 23B<BR> 1152 | 23A<BR> 1153 | 21X<BR> 1154 | 21W<BR> 1155 | -<BR> 1156 | 22B<BR> 1157 | 22A<BR></FONT> 1158 | </TD> 1159 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1160 | ST5YL/ST53YL<BR> 1161 | ST5YJ/5T53YJ<BR> 1162 | ST-23A<BR> 1163 | ST-22B<BR> 1164 | ST-22<BR> 1165 | -<BR> 1166 | -<BR></FONT> 1167 | </TD> 1168 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1169 | ST-4B<BR> 1170 | ST-4A<BR> 1171 | -<BR> 1172 | -<BR> 1173 | -<BR> 1174 | ST-3B<BR> 1175 | ST-3A<BR></FONT> 1176 | </TD> 1177 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1178 | -<BR> 1179 | EVM-6YS<BR> 1180 | EVM-1E<BR> 1181 | EVM-1G<BR> 1182 | EVM-1D<BR> 1183 | -<BR> 1184 | -<BR></FONT> 1185 | </TD> 1186 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1187 | G4B<BR> 1188 | G4A<BR> 1189 | TR04-3S1<BR> 1190 | TRG04-2S1<BR> 1191 | -<BR> 1192 | -<BR> 1193 | -<BR></FONT> 1194 | </TD> 1195 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1196 | -<BR> 1197 | -<BR> 1198 | DVR-43A<BR> 1199 | CVR-42C<BR> 1200 | CVR-42A/C<BR> 1201 | -<BR> 1202 | -<BR></FONT> 1203 | </TD> 1204 | </TR> 1205 | </TABLE> 1206 | <P> 1207 | <FONT SIZE=4 FACE=ARIAL><B>ALT =&nbsp;ALTERNATE</B></FONT> 1208 | <P> 1209 | 1210 | &nbsp; 1211 | <P> 1212 | </td> 1213 | </tr> 1214 | </table> 1215 | 1216 | 1217 | <b>ELECTROLYTIC CAPACITOR</b><p> 1218 | grid 2.54 mm, diameter 5 mm 1219 | 1220 | 1221 | 1222 | 1223 | 1224 | 1225 | 1226 | 1227 | 1228 | 1229 | 1230 | 1231 | 1232 | 1233 | >NAME 1234 | >VALUE 1235 | 1236 | 1237 | 1238 | <b>CAPACITOR</b><p> 1239 | grid 2.5 mm, outline 2.5 x 5 mm 1240 | 1241 | 1242 | 1243 | 1244 | 1245 | 1246 | 1247 | 1248 | 1249 | 1250 | 1251 | 1252 | 1253 | 1254 | 1255 | 1256 | 1257 | 1258 | >NAME 1259 | >VALUE 1260 | 1261 | 1262 | 1263 | 1264 | <b>Omron Switches</b><p> 1265 | <author>Created by librarian@cadsoft.de</author> 1266 | 1267 | 1268 | <b>OMRON SWITCH</b> 1269 | 1270 | 1271 | 1272 | 1273 | 1274 | 1275 | 1276 | 1277 | 1278 | 1279 | 1280 | 1281 | 1282 | 1283 | 1284 | 1285 | 1286 | 1287 | 1288 | 1289 | 1290 | 1291 | 1292 | 1293 | 1294 | 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1311 | 1312 | 1313 | 1314 | 1315 | 1316 | 1317 | 1318 | 1319 | 1320 | 1321 | 1322 | 1323 | >NAME 1324 | >VALUE 1325 | 1 1326 | 2 1327 | 3 1328 | 4 1329 | 1330 | 1331 | 1332 | 1333 | <b>Solder Pads/Test Points</b><p> 1334 | <author>Created by librarian@cadsoft.de</author> 1335 | 1336 | 1337 | <b>SOLDER PAD</b><p> 1338 | drill 1.0 mm 1339 | 1340 | 1341 | 1342 | 1343 | 1344 | 1345 | 1346 | 1347 | 1348 | 1349 | 1350 | 1351 | 1352 | 1353 | 1354 | >NAME 1355 | >VALUE 1356 | 1357 | 1358 | 1359 | 1360 | 1361 | 1362 | 1363 | 1364 | 1365 | 1366 | 1367 | 1368 | 1369 | <b>EAGLE Design Rules</b> 1370 | <p> 1371 | Die Standard-Design-Rules sind so gewählt, dass sie für 1372 | die meisten Anwendungen passen. Sollte ihre Platine 1373 | besondere Anforderungen haben, treffen Sie die erforderlichen 1374 | Einstellungen hier und speichern die Design Rules unter 1375 | einem neuen Namen ab. 1376 | <b>EAGLE Design Rules</b> 1377 | <p> 1378 | The default Design Rules have been set to cover 1379 | a wide range of applications. Your particular design 1380 | may have different requirements, so please make the 1381 | necessary adjustments and save your customized 1382 | design rules under a new name. 1383 | 1384 | 1385 | 1386 | 1387 | 1388 | 1389 | 1390 | 1391 | 1392 | 1393 | 1394 | 1395 | 1396 | 1397 | 1398 | 1399 | 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | 1406 | 1407 | 1408 | 1409 | 1410 | 1411 | 1412 | 1413 | 1414 | 1415 | 1416 | 1417 | 1418 | 1419 | 1420 | 1421 | 1422 | 1423 | 1424 | 1425 | 1426 | 1427 | 1428 | 1429 | 1430 | 1431 | 1432 | 1433 | 1434 | 1435 | 1436 | 1437 | 1438 | 1439 | 1440 | 1441 | 1442 | 1443 | 1444 | 1445 | 1446 | 1447 | 1448 | 1449 | 1450 | 1451 | 1452 | 1453 | 1454 | 1455 | 1456 | 1457 | 1458 | 1459 | 1460 | 1461 | 1462 | 1463 | 1464 | 1465 | 1466 | 1467 | 1468 | 1469 | 1470 | 1471 | 1472 | 1473 | 1474 | 1475 | 1476 | 1477 | 1478 | 1479 | 1480 | 1481 | 1482 | 1483 | 1484 | 1485 | 1486 | 1487 | 1488 | 1489 | 1490 | 1491 | 1492 | 1493 | 1494 | 1495 | 1496 | 1497 | 1498 | 1499 | 1500 | 1501 | 1502 | 1503 | 1504 | 1505 | 1506 | 1507 | 1508 | 1509 | 1510 | 1511 | 1512 | 1513 | 1514 | 1515 | 1516 | 1517 | 1518 | 1519 | 1520 | 1521 | 1522 | 1523 | 1524 | 1525 | 1526 | 1527 | 1528 | 1529 | 1530 | 1531 | 1532 | 1533 | 1534 | 1535 | 1536 | 1537 | 1538 | 1539 | 1540 | 1541 | 1542 | 1543 | 1544 | 1545 | 1546 | 1547 | 1548 | 1549 | 1550 | 1551 | 1552 | 1553 | 1554 | 1555 | 1556 | 1557 | 1558 | 1559 | 1560 | 1561 | 1562 | 1563 | 1564 | 1565 | 1566 | 1567 | 1568 | 1569 | 1570 | 1571 | 1572 | 1573 | 1574 | 1575 | 1576 | 1577 | 1578 | 1579 | 1580 | 1581 | 1582 | 1583 | 1584 | 1585 | 1586 | 1587 | 1588 | 1589 | 1590 | 1591 | 1592 | 1593 | 1594 | 1595 | 1596 | 1597 | 1598 | 1599 | 1600 | 1601 | 1602 | 1603 | 1604 | 1605 | 1606 | 1607 | 1608 | 1609 | 1610 | 1611 | 1612 | 1613 | 1614 | 1615 | 1616 | 1617 | 1618 | 1619 | 1620 | 1621 | 1622 | 1623 | 1624 | 1625 | 1626 | 1627 | 1628 | 1629 | 1630 | 1631 | 1632 | 1633 | 1634 | 1635 | 1636 | 1637 | 1638 | 1639 | 1640 | 1641 | 1642 | 1643 | 1644 | 1645 | 1646 | 1647 | 1648 | 1649 | 1650 | 1651 | 1652 | 1653 | 1654 | 1655 | 1656 | 1657 | 1658 | 1659 | 1660 | 1661 | 1662 | 1663 | 1664 | 1665 | 1666 | 1667 | 1668 | 1669 | 1670 | 1671 | -------------------------------------------------------------------------------- /sourcecode/OpenChargeport.HEX: -------------------------------------------------------------------------------- 1 | :020000040000FA 2 | :100000003A28F3000330F2000828F3000830F20029 3 | :100010009501F31F0C10F31B0C141508193A031D5E 4 | :100020000D28F31B0C10F31F0C141508323A031D96 5 | :100030001528F30DF20B0828080020000D30F200FF 6 | :1000400095010C141508193A031D22280C101508E7 7 | :10005000323A031D2728F20B2028080095011508C5 8 | :10006000193A031D2F2808003E30F2002E20F20B13 9 | :10007000362808002100C6309500F0309900200095 10 | :100080008C0122008C0123008C0121003E308C0069 11 | :100090001D200330F1002E20123005209530052060 12 | :1000A00053300520673005201B30052043300520E4 13 | :0C00B00020300120F10B4B2834204828A0 14 | :020000040001F9 15 | :02000E0004C824 16 | :02001000FFDC13 17 | :00000001FF 18 | -------------------------------------------------------------------------------- /sourcecode/OpenChargeport.asm: -------------------------------------------------------------------------------- 1 | ;****************************************************************************** 2 | ; Open Chargeport * 3 | ; For use with Tesla Model S * 4 | ;****************************************************************************** 5 | ; * 6 | ; Filename: OpenChargeport.asm * 7 | ; Date: 4-9-13 * 8 | ; File Version: 1.00 * 9 | ; * 10 | ; Author: M. Stegen * 11 | ; Company: Stegen Electronics * 12 | ; * 13 | ; * 14 | ;****************************************************************************** 15 | ; * 16 | ; * 17 | ; * 18 | ; 19 | ; * 20 | ;****************************************************************************** 21 | ; * 22 | ; Revision History: * 23 | ; 1.00 initial release * 24 | ; * 25 | ;****************************************************************************** 26 | ; 27 | ; 28 | ; 29 | ; +----_----+ 30 | ; VDD --| 1 8 |-- GND 31 | ; NC --| 2 7 |-- TX Out 32 | ; NC --| 3 6 |-- NC 33 | ; NC --| 4 5 |-- NC 34 | ; +---------+ 35 | ; 36 | ; 37 | ;***************************************************************************** 38 | 39 | 40 | 41 | list p=12F1822 ; list directive to define processor 42 | #include ; processor specific variable definitions 43 | 44 | ;------------------------------------------------------------------------------ 45 | ; 46 | ; CONFIGURATION WORD SETUP 47 | ; 48 | ; The 'CONFIG' directive is used to embed the configuration word within the 49 | ; .asm file. The lables following the directive are located in the respective 50 | ; .inc file. See the data sheet for additional information on configuration 51 | ; word settings. 52 | ; 53 | ;------------------------------------------------------------------------------ 54 | 55 | __CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_ON & _CPD_ON& _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF 56 | __CONFIG _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_19 & _LVP_OFF 57 | 58 | 59 | 60 | ;------------------------------------------------------------------------------ 61 | ; VARIABLE DEFINITIONS 62 | ; 63 | ; Available Data Memory divided into Bank 0-15. Each Bank may contain 64 | ; Special Function Registers, General Purpose Registers, and Access RAM 65 | ; 66 | ;------------------------------------------------------------------------------ 67 | 68 | ; RAM-Variables 69 | 70 | 71 | Mcount EQU 0x71 72 | Count EQU 0x72 73 | Serdata EQU 0x73 74 | 75 | TX EQU 0 ; pin 7 TX output 76 | 77 | ;------------------------------------------------------------------------------ 78 | ; RESET VECTOR 79 | ;------------------------------------------------------------------------------ 80 | 81 | ORG 0x0000 ; processor reset vector 82 | 83 | goto INIT ; When using debug header, first inst. 84 | ; may be passed over by ICD2. 85 | 86 | ;------------------------------------------------------------------------- 87 | ; Send 3 bits (in W) (MSB) 88 | 89 | MC_TX3 90 | movwf Serdata 91 | MOVLW 3 92 | MOVWF Count ; 3 BITS TO send 93 | goto MC_TXLOOP 94 | 95 | ;------------------------------------------------------------------------- 96 | ; Send one byte (in W) 97 | MC_TX 98 | movwf Serdata 99 | MOVLW 8 100 | MOVWF Count ; 8 BITS TO send 101 | 102 | MC_TXLOOP 103 | CLRF TMR0 104 | 105 | BTFSS Serdata,7 ; check MSB 106 | BCF PORTA,TX ; Signal LOW => 01 107 | BTFSC Serdata,7 ; check MSB 108 | BSF PORTA,TX ; Signal HIGH => 10 109 | MC1_400us 110 | MOVF TMR0,W 111 | XORLW .25 ; 0.000016 * 25= 400 uS 112 | BTFSS STATUS,Z 113 | GOTO MC1_400us 114 | 115 | BTFSC Serdata,7 ; check MSB 116 | BCF PORTA,TX ; Signal LOW => 01 117 | BTFSS Serdata,7 ; check MSB 118 | BSF PORTA,TX ; Signal HIGH => 10 119 | 120 | MC2_400us 121 | MOVF TMR0,W 122 | XORLW .50 ; 0.000016 * 50= 800 uS total 123 | BTFSS STATUS,Z 124 | GOTO MC2_400us 125 | 126 | RLF Serdata,F 127 | decfsz Count,F 128 | goto MC_TXLOOP 129 | return 130 | 131 | 132 | ;------------------------------------------------------------------------------ 133 | ; 134 | SEND_SYNC 135 | BANKSEL PORTA 136 | 137 | movlw .13 138 | movwf Count 139 | sync_loop 140 | CLRF TMR0 141 | BSF PORTA,TX ; High 142 | high_400 143 | MOVF TMR0,W 144 | XORLW .25 ; 0.000016 * 25= 400us 145 | BTFSS STATUS,Z 146 | GOTO high_400 147 | 148 | BCF PORTA,TX ; Low 149 | low_400 150 | MOVF TMR0,W 151 | XORLW .50 ; 0.000016 * 50= 800us 152 | BTFSS STATUS,Z 153 | GOTO low_400 154 | decfsz Count,F ; repeat 155 | goto sync_loop 156 | return 157 | 158 | ;------------------------------------------------------------------------------ 159 | ; 160 | delay400us 161 | CLRF TMR0 162 | dly400us 163 | MOVF TMR0,W 164 | XORLW .25 ; 0.000016 * 25= 400 uS 165 | BTFSS STATUS,Z 166 | GOTO dly400us 167 | return 168 | 169 | delay25ms 170 | movlw .62 171 | movwf Count 172 | dly25ms 173 | call delay400us 174 | decfsz Count,F 175 | goto dly25ms 176 | return 177 | 178 | 179 | ;------------------------------------------------------------------------------ 180 | ; INITIALIZE all REGISTERS 181 | ;------------------------------------------------------------------------------ 182 | 183 | INIT 184 | BANKSEL OPTION_REG 185 | movlw B'11000110' 186 | movwf OPTION_REG ; prescaler 1:128, Weak pull-ups disabled 187 | ; same bank 188 | movlw b'11110000' 189 | movwf OSCCON ; setup 32Mhz internal oscillator 190 | 191 | BANKSEL PORTA 192 | CLRF PORTA ; Init PORTA 193 | BANKSEL LATA ; Data Latch 194 | CLRF LATA 195 | BANKSEL ANSELA 196 | CLRF ANSELA ; digital I/O 197 | BANKSEL TRISA 198 | MOVLW B'00111110' ; set pin 7 as output (TX) 199 | MOVWF TRISA ; the rest as input 200 | 201 | 202 | 203 | MAIN 204 | call SEND_SYNC ; send 13 sync bits 205 | movlw .3 206 | movwf Mcount 207 | Mloop 208 | call delay400us 209 | movlw 0x12 210 | call MC_TX 211 | movlw 0x95 212 | call MC_TX 213 | movlw 0x53 214 | call MC_TX 215 | movlw 0x67 216 | call MC_TX 217 | movlw 0x1B 218 | call MC_TX 219 | movlw 0x43 220 | call MC_TX 221 | movlw 0x20 222 | call MC_TX3 223 | decfsz Mcount,F 224 | goto Mloop 225 | 226 | call delay25ms 227 | 228 | goto MAIN ; loop forever 229 | 230 | 231 | 232 | END -------------------------------------------------------------------------------- /sourcecode/OpenChargeport_10F200.HEX: -------------------------------------------------------------------------------- 1 | :020000040000FA 2 | :10000000390A3200030C3100080A3200080C3100B2 3 | :100010006100F2070604F20606050102190F430704 4 | :100020000D0AF2060604F20706050102320F430725 5 | :10003000150A7203F102080A00080D0C3100610074 6 | :1000400006050102190F4307210A06040102320FB7 7 | :100050004307260AF1021F0A000861000102190F76 8 | :1000600043072E0A00083E0C31002D09F102350A23 9 | :1000700000082500C30C0200670066000E0C060095 10 | :100080001D09030C30002D09120C0509950C0509FA 11 | :10009000530C0509670C05091B0C0509430C0509E0 12 | :0C00A000200C0109F002430A3309400A59 13 | :021FFE00EB0FE7 14 | :00000001FF 15 | -------------------------------------------------------------------------------- /sourcecode/OpenChargeport_10F200.asm: -------------------------------------------------------------------------------- 1 | ;****************************************************************************** 2 | ; Open Chargeport * 3 | ; For use with Tesla Model S * 4 | ;****************************************************************************** 5 | ; * 6 | ; Filename: OpenChargeport.asm * 7 | ; Date: 10-9-13 * 8 | ; File Version: 1.01 * 9 | ; * 10 | ; Author: M. Stegen * 11 | ; Company: Stegen Electronics * 12 | ; * 13 | ; * 14 | ;****************************************************************************** 15 | ; * 16 | ;****************************************************************************** 17 | ; * 18 | ; Revision History: * 19 | ; 1.00 initial release * 20 | ; 1.01 version for PIC 10F200/202/204/206 * 21 | ; * 22 | ;****************************************************************************** 23 | ; 24 | ; PIC 10F200/202/204/206 25 | ; 26 | ; PDIP pinout: 27 | ; +----_----+ 28 | ; NC --| 1 8 |-- NC 29 | ; VCC --| 2 7 |-- GND 30 | ; NC --| 3 6 |-- NC 31 | ; NC --| 4 5 |-- TX out 32 | ; +---------+ 33 | ; 34 | ; SOT23 pinout: 35 | ; +------+ 36 | ; TXout --|*1 6 |-- NC 37 | ; GND --| 2 5 |-- VCC 38 | ; NC --| 3 4 |-- NC 39 | ; +------+ 40 | ; 41 | ;***************************************************************************** 42 | 43 | 44 | 45 | list p=10F204 ; list directive to define processor 46 | #include ; processor specific variable definitions 47 | 48 | ;------------------------------------------------------------------------------ 49 | ; 50 | ; CONFIGURATION WORD SETUP 51 | ; 52 | ; The 'CONFIG' directive is used to embed the configuration word within the 53 | ; .asm file. The lables following the directive are located in the respective 54 | ; .inc file. See the data sheet for additional information on configuration 55 | ; word settings. 56 | ; 57 | ;------------------------------------------------------------------------------ 58 | 59 | __CONFIG _WDT_OFF & _MCLRE_OFF & _CP_OFF 60 | 61 | ;------------------------------------------------------------------------------ 62 | ; RAM-Variables 63 | 64 | 65 | Mcount EQU 0x10 66 | Count EQU 0x11 67 | Serdata EQU 0x12 68 | 69 | TX EQU 0 ; TX output 70 | 71 | ;------------------------------------------------------------------------------ 72 | ; RESET VECTOR 73 | ;------------------------------------------------------------------------------ 74 | 75 | ORG 0x0000 ; processor reset vector 76 | 77 | goto INIT ; When using debug header, first inst. 78 | ; may be passed over by ICD2. 79 | 80 | ;------------------------------------------------------------------------- 81 | ; Send 3 bits (in W) (MSB) 82 | 83 | MC_TX3 84 | movwf Serdata 85 | MOVLW 3 86 | MOVWF Count ; 3 BITS TO send 87 | goto MC_TXLOOP 88 | 89 | ;------------------------------------------------------------------------- 90 | ; Send one byte (in W) 91 | MC_TX 92 | movwf Serdata 93 | MOVLW 8 94 | MOVWF Count ; 8 BITS TO send 95 | 96 | MC_TXLOOP 97 | CLRF TMR0 98 | 99 | BTFSS Serdata,7 ; check MSB 100 | BCF GPIO,TX ; Signal LOW => 01 101 | BTFSC Serdata,7 ; check MSB 102 | BSF GPIO,TX ; Signal HIGH => 10 103 | MC1_400us 104 | MOVF TMR0,W 105 | XORLW .25 ; 0.000016 * 25= 400 uS 106 | BTFSS STATUS,Z 107 | GOTO MC1_400us 108 | 109 | BTFSC Serdata,7 ; check MSB 110 | BCF GPIO,TX ; Signal LOW => 01 111 | BTFSS Serdata,7 ; check MSB 112 | BSF GPIO,TX ; Signal HIGH => 10 113 | 114 | MC2_400us 115 | MOVF TMR0,W 116 | XORLW .50 ; 0.000016 * 50= 800 uS total 117 | BTFSS STATUS,Z 118 | GOTO MC2_400us 119 | 120 | RLF Serdata,F 121 | decfsz Count,F 122 | goto MC_TXLOOP 123 | retlw 0x00 124 | 125 | 126 | ;------------------------------------------------------------------------------ 127 | ; 128 | SEND_SYNC 129 | 130 | movlw .13 131 | movwf Count 132 | sync_loop 133 | CLRF TMR0 134 | BSF GPIO,TX ; High 135 | high_400 136 | MOVF TMR0,W 137 | XORLW .25 ; 0.000016 * 25= 400us 138 | BTFSS STATUS,Z 139 | GOTO high_400 140 | 141 | BCF GPIO,TX ; Low 142 | low_400 143 | MOVF TMR0,W 144 | XORLW .50 ; 0.000016 * 50= 800us 145 | BTFSS STATUS,Z 146 | GOTO low_400 147 | decfsz Count,F ; repeat 148 | goto sync_loop 149 | retlw 0x00 150 | 151 | ;------------------------------------------------------------------------------ 152 | ; 153 | delay400us 154 | CLRF TMR0 155 | dly400us 156 | MOVF TMR0,W 157 | XORLW .25 ; 0.000016 * 25= 400 uS 158 | BTFSS STATUS,Z 159 | GOTO dly400us 160 | retlw 0x00 161 | 162 | delay25ms 163 | movlw .62 164 | movwf Count 165 | dly25ms 166 | call delay400us 167 | decfsz Count,F 168 | goto dly25ms 169 | retlw 0x00 170 | 171 | 172 | ;------------------------------------------------------------------------------ 173 | ; INITIALIZE all REGISTERS 174 | ;------------------------------------------------------------------------------ 175 | 176 | INIT 177 | 178 | movwf OSCCAL ; calibrate internal oscillator 179 | movlw B'11000011' 180 | OPTION ; prescaler 1:16, Weak pull-ups disabled 181 | 182 | CLRF CMCON0 ; disable comperator (PIC10F204/206 only) 183 | CLRF GPIO ; Init GPIO 184 | movlw B'00001110' ; set I/O 185 | TRIS GPIO 186 | 187 | MAIN 188 | call SEND_SYNC ; send 13 sync bits 189 | movlw .3 190 | movwf Mcount 191 | Mloop 192 | call delay400us 193 | movlw 0x12 194 | call MC_TX 195 | movlw 0x95 196 | call MC_TX 197 | movlw 0x53 198 | call MC_TX 199 | movlw 0x67 200 | call MC_TX 201 | movlw 0x1B 202 | call MC_TX 203 | movlw 0x43 204 | call MC_TX 205 | movlw 0x20 206 | call MC_TX3 207 | decfsz Mcount,F 208 | goto Mloop 209 | 210 | call delay25ms 211 | 212 | goto MAIN ; loop forever 213 | 214 | 215 | 216 | END --------------------------------------------------------------------------------