Beruflich Dokumente
Kultur Dokumente
How to Implement ICP Using ELAN EM78PXXX General Purpose OTP MCUs
Technical Description, Release 1.0
Copyright 2003 Elan Microelectronics Corporation, No. 12, innovation 1st. Rd. Science-Based Industrial Park, Hsinchu City, Taiwan.
The use of this document is limited to: 1. Distribution within your organization. 2. Distribution to potential customers or partners. This authorization is given on condition that any extract of these documents made by you shall retain all proprietary notice, including this copyright notice. The contents of this specification are subject to change without notice. Elan Microelectronics assumes no responsibility for errors that may appear in this specification and makes no commitment to update, or to keep current, the information contained in this specification. The products described herein are not intended for use in life support appliances, devices, or systems. Use of Elan Microelectronics products in such applications is not supported and is prohibited. NO PART OF THIS SPECIFICATION MAY BE REPRODUCED OR TRANSMITTED IN ANY FORM OR BY ANY MEANS WITHOUT THE EXPRESS WRITTEN PERMISSION OF ELAN MICROELECTRONICS. Note that any product, process or technology described in the document may be subject of other intellectual property rights reserved by Elan Microelectronics Corporation or a third party. No right to use such Intellectual Property Right is granted hereunder. Trademarks Elan Microelectronics Corporation and the Elan logo are registered trademarks and service marks or trade names whether registered or not, which may attach to certain words or signs used herein. The absence of such mention, however, in no way implies that there is no protection. Elan Microelectronics Corporation may make improvements or changes in the products or the program described in this document at any time without notice. This page and all content enclosed are Copyright Elan Microelectronics, Hsinchu City, Taiwan.
REVISION HISTORY Version 1.0 Date 24.06.2004 Author Mark Svoboda Description Released
AN-E005-V1.0-page 2
Preliminary
www.elan-europe.com
TABLE OF CONTENTS 1.0 INTRODUCTION 2.0 RE-PROGRAMMING AN OTP MICROCONTROLLER 3.0 ABOUT ELANS EM78P156 4.0 HOW TO IMPLEMENT ICP WITH EM78P156 5.0 APPLICATION CIRCUIT 6.0 PROGRAMMER 7.0 PROGRAMMING ENVIRONMENT 8.0 REPROGRAMMING WITH ELAN OTP MCU EM78P156 9.0 CONCLUSION APPENDIX A: APPENDIX B: PROGRAM EXAMPLE EXAMPLE ICP CIRCUIT 4 4 4 4 5 5 5 6 6 7 8
AN-E005-V1.0-page 3
Preliminary
www.elan-europe.com
1.0 INTRODUCTION
In-circuit programming ICP is a technique that allows a programmable device, a microcontroller for example, to be programmed after the device has been placed or soldered in the circuit board. ICP is a great way to reduce the cost of field firmware upgrades as well as reduce time to market for your product. This solution also allows manufacturers to quickly match microcontroller firmware variations running on the same PCB with actual market demand via last-minute programming. This application note describes a simple way to program Elans family of 8-bit general purpose microcontrollers while the IC is mounted in the application PCB. For purposes of description, this application note describes ICP for Elans popular EM78P156 1K ROM OTP microcontroller while mounted in the PCB. The same technique may also be used for Elans EM78P153, EM78P156N, EM78P257, EM78P447(N), EM78P458, EM78P459, EM78P418N, EM78P419N, and EM78P809N microcontrollers, all of which have very similar OTP programming structures.
The EM78P156 is pin and function compatible with Microchip PIC 16C54/55/56 (see Elan application note Replacing Microchips PIC 16C54/55/56/57 with Elan Microelectronics EM78P156/P447).
AN-E005-V1.0-page 4
Preliminary
www.elan-europe.com
See Appendix B: Example ICP circuit Another important issue is supply voltage. The OTP programming specification states that the MCU should be programmed at 5V. If the application circuits operating voltage is not 5V, the VDD pin should be isolated, and a 5V supply applied to VDD.
Pin Name Pin (programming mode # / operating mode) ACLK / OSCO DATAIN / P50 DINCK / P51 PGMB / OSCI OEB / P67 VPP / RESET 15 17 18 16 13 4
I/O
6.0 PROGRAMMER
I I/O I I I I CLK for address increase ROM series Input/Output pin CLK for DATAIN pin Program enable control pin, active low. Output enable control for DATAIN, active low for output. 13 Volt for OTP programming. The second consideration is the OTP programmer and its drive capabilities. DWTR is ELANs standard OTP programmer which has been designed to program the MCU in a socket mounted on the programmer. It has not been designed to drive signals over long connectors. It is therefore recommended that the cable length between the programmer and application circuit should not be longer than 20 centimeters. If the cable length is too long, the programming might be fail due to signal attenuation. Note: for manufacturers wanting to develop their own OTP programming hardware, Elans OTP programming specifications are available free of charge under NonDisclosure Agreement (NDA).
The application circuit must be designed to allow all the OTP programming signals to be connected directly to the EM78P156. Fig. 1 shows an example circuit for implementing ICP with the EM78P156. When designing an application circuit with ICP, several issues must be considered: Isolation of all the programming signal pins from the surrounding circuit. Minimum and maximum operating voltage for VDD. In a typical application circuit, each pin of the MCU might be connected to several other active and/or passive components. Any component still connected to programming pins during programming could cause an OTP programming error. For example, capacitive loading on a programming signal pin could negatively affect the programming signals required rise time. Resistive loading would reduce necessary programming signal voltages. Therefore, the first step to implement the ICP circuit is isolation of all the programming pins. Fig. 1 shows the ICP circuit example. The critical factor in the ICP circuit is how to isolate the 6 programming-related pins without affecting the functionality of the application circuit. EM78P156 needs six pins for OTP programming. All these programming pins need to be isolated during programming. When the EM78P156 is programmed, the /RESET/VPP pin must be supplied with an external 13V DC level. The VPP pin of EM78P156 also functions as the reset pin during normal operation, and is normally connected to an external RC circuit. Therefore it is recommended to use a diode to isolate the VPP pin. The CD4066 is a low-cost bi-directional solid-state electronic switch. The circuit below is configured such that a high voltage (13V) applied to VPP during OTP programming will cause the CD4066, via a transistor inverter (2N3904), to disconnect the 6 other pins which are used for OTP programming. After programming, to insure that the application circuit functions normally, the resistor values must be chosen such that the 2N3904 is switched off during normal operation of the circuit. When designing your application, you should also consider the ON state resistance of the CD4066 switch, which can depend on the supply voltage. Note that electrical isolation of pins may also be achieved by mechanical jumpers, or mechanical switches. This method involves manual intervention before and after ICP programming.
AN-E005-V1.0-page 5
Preliminary
www.elan-europe.com
9.0 CONCLUSION
Anyone can create a reliable ICP programming circuit by adopting the recommended circuit design and programming techniques previously mentioned. Multiple-time OTP programming can also be achieved with the software technique described in this application note. Elans technical support staff are available to answer any questions you have about the requirements for ICP based on Elans OTP microcontrollers.
AN-E005-V1.0-page 6
Preliminary
www.elan-europe.com
APPENDIX A:
Example1: Firmware list files
PROGRAM EXAMPLE
Program Opcode Assembly Instruction ORG JMP ORG JMP ORG INTERRUPT: CLRA MOV MOV MOV RETI START: MOV CONTW CLRA IOW IOW MOV MOV IOW MOV IOW ENI JMP 0X00 START 0X08 INTERRUPT 0X0B
Program Opcode Assembly Instruction ORG NOP ORG JMP ORG NOP ORG JMP ORG NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP ORG INTERRUPT: MOV MOV MOV RETI START: MOV CONTW CLRA IOW IOW MOV MOV IOW MOV IOW ENI 0X00 0X01 START 0X08 0X09 INTERRUPT 0X0B
00000 00008 00009 0000B 0000C 0000D 0000E 0000F 00010 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 0001A 0001B 0001B
1410 1409
00000 00001
0000 1421
00008 0080 004F 18FF 0046 0013 RF,A A,@0XFF PORT6,A 00009 0000B 0000C 0000D 0000E 0000F 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 0001A 0001B 0001C 0001D 0001E 0001F 00020 00021 00021 00022 00023 00024 00025 00026 00027 00028 00029 0002A 0002B
0000 141C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
184F 0002 0080 0005 0006 0046 1840 000E 1804 000F 0010 HERE: 141B
A,@0b01001111
HERE
0X1C
004F 18FF 0046 0013 184F 0002 0080 0005 0006 0046 1840 000E 1804 000F 0010
A,@0b01001111
AN-E005-V1.0-page 7
Preliminary
www.elan-europe.com
APPENDIX B:
R
C
CD4066 EM 78P156
P51
I/O1_A
P50
D
/RESET/VPP VSS
I/O2_A
OSCI
I/O3_A
OSCO
I/O4_A
VDD
I/O5_A
P67
VDD
Control Pin
2N3904
AN-E005-V1.0-page 8
Preliminary
www.elan-europe.com