Patent Publication Number: US-7711540-B2

Title: In-circuit emulation system with a programming function

Description:
BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The invention relates to the technical field of integrated circuit (IC) programming and in-circuit emulation (ICE) and, more particularly, to an in-circuit emulation with a programming function. 
   2. Description of Related Art 
     FIG. 1  is a block diagram of a conventional universal device programmer. As shown in  FIG. 1 , the programmer includes a control logic  105 , a memory  110 , a transmission interface  115 , a peripheral input and output interface  120 , a microprocessor  125 , a programmer socket  130 , a system power supply  135 , and a DC/DC converter  140 . When an IC  160  is to be programmed, the IC  160  is placed in the programmer socket  130 , and a programming code is downloaded from a personal computer  150  to the microprocessor  125  via the transmission interface  115  for being stored in the memory  110 . Subsequently, the microprocessor  125  produces a special control signal based on the programming code and executes a programming function on the IC  160  via the programmer socket  130 . 
   The typical programmer uses a general-purpose input-output (GPIO) pin of the microprocessor  125  to simulate and generate timing of control signals. Such a configuration requires the external devices to support and expand the programming capacity so as to increase the hardware cost. In addition, the corresponding firmware design is complicated, and the management and maintenance take much time. Further, such a complicated design has a low integration and cannot be used with the development tools of the microprocessor  125 . Therefore, it is desirable to provide an improved in-circuit emulation system to mitigate and/or obviate the aforementioned problems. 
   SUMMARY OF THE INVENTION 
   An object of the invention is to provide an in-circuit emulation (ICE) system with a programming function, which can support and expand the programming capacity without using external devices and can overcome the increased hardware cost. 
   Another object of the invention is to provide an in-circuit emulation (ICE) system with a programming function, which can reduce the complexity of the programming firmware design and overcome the prior problem of taking much time on the management and maintenance. 
   A further object of the invention is to provide an in-circuit emulation (ICE) system with a programming function, which integrates the programmer and the ICE in order to use with the development tools of the microprocessor and reduce the entire cost and a learning curve of the programmer and ICE. 
   A further another object of the invention is to provide an in-circuit emulation (ICE) system with a programming function, which collectively places pins of the programmer to a fixed location for providing programming voltages and signals to thereby reduce the complexity of the system software and hardware design. 
   A still another object of the invention is to provide an in-circuit emulation (ICE) system with a programming function, which collectively places pins of the programmer to a fixed location in order to provide a user to establish a consistent habitual on programming and avoid the operation errors. 
   To achieve the objects of the invention, there is provided an in-circuit emulation (ICE) system with a programming function. The ICE system includes a system power supply, a DC/DC converter, a processing device, a programmer socket and a connector. The system power supply produces a first DC voltage for use as a system power. The DC/DC converter is connected to the system power supply in order to change the first DC voltage into a second DC voltage and a third DC voltage that are provided for programming an integral circuit (IC), wherein the second and the third DC voltages are higher than the first DC voltage. The processing device has a processor and a parallel/serial converter. The processor performs an in-circuit emulation and executes a programming function. For executing the programming function, the processor uses the parallel/serial converter to convert programming codes into corresponding programming signals. The programmer socket is connected to the DC/DC converter and the parallel/serial converter in order to receive the programming signals, the second DC voltage and the third DC voltage to accordingly execute the programming function on the IC plugged in the socket. The connector has one end connected to the processing device and the other end connected to a target board to thereby drive and receive electrical signals of the target board on performing the in-circuit emulation. 
   The ICE system further comprises a clock generator connected to the processing device in order to provide a clock to the ICE system. 
   The ICE system further comprises a transmission module coupled between the processing device and a personal computer in order to download the programming codes or program codes of the in-circuit emulation from the personal computer to the processing device or upload the electrical signals of the target board on performing the in-circuit emulation from the processing device to the personal computer. 
   In the ICE system, the processing device further comprises an internal storage to temporarily store the programming code, the program codes or the electrical signals. 
   In the ICE system, the processing device further comprises a set of control registers such that the processor performs a write operation on the set of control registers when the ICE system executes the programming function, to thereby set a programming timing and activate the parallel/serial converter. 
   In the ICE system, the clock generator is a crystal or an oscillator. 
   In the ICE system, the transmission module is a USB transmission module or a printer port transmission module. 
   In the ICE system, the first DC voltage is 5V, the second DC voltage is 6V, and the third DC voltage is 13V. 
   In the ICE system, the programmer socket is a dual in-line package (DIP). 
   The ICE system uses the parallel/serial converter to generate a serial clock and a serial data, and uses the programmer socket to output the second DC voltage, the third DC voltage, the serial clock and the serial data, to thereby execute the programming function on the IC plugged in the programmer socket. 
   In the ICE system, the DIP programmer socket has N pins, and the second DC voltage, the third DC voltage, the serial clock and the serial data are arranged at the N-th, (N−4)-th, (N−2)-th and (N−3)-th pins respectively. 
   The ICE system further comprises an adapter to convert the DIP programmer socket into a small out-line package (SOP) programmer socket. 
   Other objects, advantages, and novel features of the invention will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a block diagram of a conventional universal device programmer; 
       FIG. 2  is a block diagram of an in-circuit emulation (ICE) system with a programming function in accordance with the invention; 
       FIG. 3  is a block diagram of a processing device in accordance with the invention; 
       FIG. 4  is a timing diagram of executing a programming function by the ICE system of  FIG. 2  in accordance with the invention; and 
       FIG. 5  is a schematic view of a pin arrangement of a programmer socket in accordance with the invention. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 2  is a block diagram of an in-circuit emulation (ICE) system with a programming function in accordance with the invention. As shown in  FIG. 2 , the ICE system includes a system power supply  210 , a DC/DC converter  220 , a processing device  250 , a programmer socket  230 , a connector  260 , a clock generator  240  and a transmission module  270 . 
   The system power supply  210  produces a first DC voltage V 1  for use as a system power. The first DC voltage is preferred 5V. The DC/DC converter  220  is connected to the system power supply  210  in order to change the first DC voltage V 1  into a second DC voltage V PP  and a third DC voltage V DD  that are provided for programming an IC  280 , wherein both the second and the third DC voltages V PP  and V DD  are higher than the first DC voltage V. The second DC voltage V PP  is preferred 6V, and the third DC voltage V DD  is preferred 13V. 
     FIG. 3  is a block diagram of the processing device  250  in accordance with the invention. As shown in  FIG. 3 , the processing device  250  has a processor  252 , a parallel/serial converter  254  and a set of control registers  256 . The processor  252  executes the functions of in-circuit emulation and device programming. When the processor  252  executes a programming function, it uses the parallel/serial converter  254  to convert programming codes into corresponding programming signals. The processor  252  further has an internal storage  2522  to temporarily store the programming codes, program codes for an in-circuit emulation, and electrical signals on a target board  300 . The internal storage  2522  is preferred an embedded SRAM. 
   When the ICE system executes the programming function, the processor  252  performs a write-in operation on the set of control registers  256  for setting timing parameters for the programming signals when the IC  280  is programming, and activating the parallel/serial converter. 
   The clock generator  240  is connected to the processing device  250  in order to provide a clock to the ICE system. The clock generator  240  can be a crystal or an oscillator. 
   The transmission module  270  is coupled between the processing device  250  and a personal computer  290  in order to download the programming codes or the program codes of an in-circuit emulation from the personal computer  290  to the processing device  250 , or upload the electrical signals of the target board  300  on performing the in-circuit emulation from the processing device  250  to the personal computer  290 . The transmission module  270  is a USB or printer port transmission module. 
   When the ICE system performs the programming function, the programming codes for the IC  280  is downloaded from the personal computer  290  to the processing device  250  through the transmission module  270 . The processing device  250  stores the programming codes in the internal storage  2522 . Subsequently, the processor  252  performs a write-in operation on the set of control registers  256  for setting timing parameters for the programming signals when the IC  280  is programming, and activating the parallel/serial converter  254  to produce the timing for accordingly performs a programming operation on the IC  280 . 
   The programmer socket  230  is connected to the DC/DC converter  220  and the parallel/serial converter  254  in order to receive the programing signals, the second DC voltage V DD  and the third DC voltage V PP  for programming a IC  280  currently plugged in the socket. In this embodiment, the programmer socket  230  is a dual in-line package (DIP). 
     FIG. 4  is a timing diagram of executing a programming function by the ICE system of  FIG. 2  in accordance with the invention. As shown in  FIG. 4 , the programming signals include the signals MEM_SCK and MEM_SDA. The signals MEM_SCK and MEM_SDA produced by the parallel/serial converter  254  are a serial clock and a serial data. 
   The parallel/serial converter  254  produces the serial clock signal MEM_SCK and the serial data MEM_SDA. The programmer socket  230  outputs the second DC voltage V DD , the third DC voltage V PP , the serial clock MEM_SCK and the serial data MEM_SDA, to thereby execute the programming function on the IC  280  currently plugged in the programmer socket  230 . 
     FIG. 5  is a schematic view of a pin arrangement of the DIP programmer socket  230  in accordance with the invention. As shown in  FIG. 5 , the DIP programmer socket  230  has N pins. The second DC voltage V DD , the third DC voltage V PP , the serial clock MEM_SCK and the serial data MEM_SDA are arranged at the N-th, (N−4)-th, (N−2)-th and (N−3)-th pins respectively. Take N=20 for example. When the IC  280  is a  20 -pin DIP package, the 20-th, 16-th, 18-th, 17-th pins correspond to the second DC voltage V DD , the third DC voltage V PP , the serial clock MEM_SCK and the serial data MEM_SDA of the socket  230 , respectively. Take N=24 for example. When the IC  280  is a 24-pin DIP package, the 24-th, 20-th, 22-th, 21-th pins correspond to the second DC voltage V DD , the third DC voltage V PP , the serial clock MEM_SCK and the serial data MEM_SDA of the socket  230 , respectively. Accordingly, the arrangement for a 28- or 32-pin DIP IC package is similar and not described any more. 
   The pins of such an arrangement are collectively placed to a fixed location such that the programmer socket  230  can provide the programming voltages and signals to the fixed pins, which provides a simpler configuration design of software and hardware without designing many adapters and accordingly reduce the cost and the management and maintenance problem. In addition, the fixed pins provide a user to establish a consistent habitual on programming and avoid the operation errors. 
   In such a pin arrangement of the invention, the pins of the signals MEM_SCK and MEM_SDA are arranged between the pins of the second and third DC voltages V DD  and V PP  to thereby prevent the signals MEM_SCK and MEM_SDA from the noise interference and enhance the noise-proof capability on programming the IC  280 , to further avoid the programming failure. 
   The ICE system further has an adapter to convert the DIP programmer socket into a small out-line package (SOP) programmer socket or another type of programmer socket for adapting various package type ICs. 
   The connector  260  has one end connected to the processing device  250  and the other end connected to the target board  300  in order to drive and receive the electrical signals on the target board by the ICE system on performing the in-circuit emulation, 
   For performing the in-circuit emulation, the ICE system downloads a program code from the personal computer  290  to the processing device  250  through the transmission module  270 . The processing device  250  stores the program code in a special location in the internal storage  2522 , and subsequently resets the processor  252  in order to force the processor to be in a known state. After the reset, the processor  252  reads the program code from the special location to execute. 
   In view of the foregoing, it is known that the invention integrates the internal storage  2522  into the processor  252 , and accordingly the programming capacity can be expanded without the support of external devices, which overcomes the problem of increasing the hardware cost. In addition, the integrated programmer and in-circuit emulator can be used with the development tools of the microprocessor, so as to reduce the entire cost and the learning curve of programmer and in-circuit emulator, which leads the programming firmware design to a reduced complexity and overcomes the problem of taking much time on the management and maintenance. In the ICE system, the pins of the programmer socket are collectively placed on a fixed location to provide the required programming voltages and signals at the respectively fixed pins, which further reduces the complexity of system software and hardware design and provides a user to establish a consistent habitual on programming to thereby avoid the operation errors. 
   Although the present invention has been explained in relation to its preferred embodiment, it is to be understood that many other possible modifications and variations can be made without departing from the spirit and scope of the invention as hereinafter claimed.