KR20010071231A - 쓰기 인에이블 비트를 갖는 마이크로 컨트롤러 - Google Patents

쓰기 인에이블 비트를 갖는 마이크로 컨트롤러 Download PDF

Info

Publication number
KR20010071231A
KR20010071231A KR1020007012551A KR20007012551A KR20010071231A KR 20010071231 A KR20010071231 A KR 20010071231A KR 1020007012551 A KR1020007012551 A KR 1020007012551A KR 20007012551 A KR20007012551 A KR 20007012551A KR 20010071231 A KR20010071231 A KR 20010071231A
Authority
KR
South Korea
Prior art keywords
programming
microcontroller
memory
signal
circuit
Prior art date
Application number
KR1020007012551A
Other languages
English (en)
Inventor
이고르 워제워다
죠셉 더블유. 트리세
Original Assignee
씨. 필립 채프맨
마이크로칩 테크놀로지 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 씨. 필립 채프맨, 마이크로칩 테크놀로지 인코포레이티드 filed Critical 씨. 필립 채프맨
Publication of KR20010071231A publication Critical patent/KR20010071231A/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • G11C16/225Preventing erasure, programming or reading when power supply voltages are outside the required ranges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)

Abstract

사용자 모드에서 프로그램 가능한 메모리를 갖는 마이크로 컨트롤러가 개시된다. 마이크로 컨트롤러는 프로그램밍 레벨 전압이 활성화되었는지를 검출하는 회로를 포함한다. 또한 메모리의 프로그래밍을 인에이블/디스에이블하기 위한 인에이블 비트를 포함하는 롱라이트 인에이블 레지스터가 포함된다. 상기 레지스터가 인에이블됨으로써 프로그래밍을 지시하는 비트를 포함하며 프로그래밍 레벨 전압이 검출될 때, 마이크로 컨트롤러는 프로그램 메모리가 프로그램되도록 한다. 프로그래밍은 사용자 모드에서 발생할 수 있다. 프로그래밍 레벨 전압 신호는 또한 테스트 모드로 진입할 것인지를 검출하도록 사용된다. 프로그램 메모리의 프로그래밍은 또한 테스트 모드에서 가능하다. 본 발명은 프로그램 메모리의 프로그램을 제어하기 위한 마이크로 컨트롤러를 동작시키는 방법을 제공한다. 본 발명에 따른 마이크로 컨트롤러는 테스트 모드 선택 입력 신호를 요구하지 않고서도 테스트 모드에 진입할 것인지를 검출함으로써 기능성을 증가시킨다.

Description

쓰기 인에이블 비트를 갖는 마이크로 컨트롤러{MICROCONTROLLER HAVING WRITE ENABLE BIT}
마이크로 컨트롤러는 칩위에 비휘발성 메모리, 전형적으로 전기적으로 소거가능한 프로그램 가능한 읽기 전용 메모리(EEPROM 및 EPROM)형태를 갖도록 설계되었다. EEPROM은 마이크로 컨트롤러가 응용하려는 의도에 따라 프로그램되도록 할 수 있다. EEPROM은 또한 프로그래밍을 수정이나 삭제할 수 있다. 우연이나 의도적으로 프로그램되거나 재프로그램되는 것으로부터 마이크로 컨트롤러에서 비휘발성 메모리를 보호하는 것은 중요하다. 이와 같은 문제에 대응하는 많은 연구가 있었다.
하나의 연구는 미합중국 특허 5,808,544호 공보에서 기술된다. 이 공보에서 마이크로 컨트롤러는 중앙 처리 장치(CPU)가 그 내부의 읽기 전용 메모리(ROM)내에서 명령을 수행하고 있을 때만 프로그램이 가능하다. 마이크로 컨트롤러(100)는 ROM(110)에 연결된 도체(118)위의 ROM 제어신호 및 EEPROM(109)에 연결된도체(120)위의 EEPROM 제어신호를 출력하는 보안 로직(116)을 포함한다. 보안 로직(116)은 CPU가 내부 ROM(110)으로 외부의 코드를 실행하는 동안 EEPROM(109)을 프로그램하려고 시도하고 있을 때 EEPROM(109)으로의 접근을 불가능하게 한다. 코드가 ROM(110)의 외부에서 수행되고 있을 때마다 ROM으로는 접근할 수 없다. 또한, ROM 보안 로직은 보안 로직(116)에서 포함되며 프로그램 카운터(204)에서 현재 어드레스를 보호된 어드레스 범위 레지스터에서 제 1 및 2 어드레스와 비교하는 현재 어드레스 비교기(202)를 포함한다. 프로그램 카운터 어드레스가 제 1 어드레스보다 크며 제 2 어드레스보다는 작다면, 현재 어드레스는 보호된 어드레스 범위에 있도록 결정된다. 현재 어드레스 비교기는 현재 어드레스가 보호된 어드레스 범위에 있다면 고 레벨 논리 신호를 출력하며 그렇지 않다면 저 레벨 논리 신호를 출력한다.
다른 연구로서는 전원 전압의 바람직하지 못한 저하에 기인하는 재프로그래밍을 피하는데 초점을 맞추고 있다. 이와 같은 연구는 미합중국 특허 5,349,669호 공보에서 기술된다. 여기서, 회로는 주 전원 전압이 백업 전원 전압으로 전환될 때를 감시한다. 스위칭이 발생할 때, 데이터 보호 설정 및 해제 식별 회로는 전원에서 이와 같은 중단을 검출하며 데이터 보호 제어신호가 데이터를 보호하도록 한다. 또 하나의 예는 미합중국 특허 5,199,032호 공보에서 기술된다. 이 공보에서 마이크로 컨트롤러는 전원 전압을 감시하는 저 전압 프로그램 금지(LIPI) 회로를 포함한다. 전원 전압이 소정의 전압 레벨이하로 떨어지면, LVP1회로는 EEPROM의 프로그래밍이나 소거를 예방하며 EEPROM 프로그래밍 레지스터의 사용을 금지한다.
본 출원인에 의해 제작된 마이크로 컨트롤러 모델 번호 PIC17C42와 같은 또하나의 시스템은 테스트 모드 선택 제어를 위한 분리된 핀인 TEST핀을 포함한다. 다른 하나의 핀인 MCLR/VPP는 마스터 클리어 리셋 입력으로서 동작하며 또한 프로그래밍 모드동안 프로그래밍 전압을 받아들인다. 이와 같은 장치에서 메모리의 프로그래밍은 특별한 모드동안 발생하며 보통 사용자 모드동안은 발생하지 않으며, 분리된 핀은 테스트 모드 선택 신호를 위해 할당된다.
본 발명은 마이크로 컨트롤러에 관한 것이며, 특히 쓰기 인에이블 비트를 사용하여 사용자 모드에서 메모리의 프로그래밍을 할 수 있는 내부 메모리를 가진 마이크로 컨트롤러에 관한 것이다.
도 1은 본 발명에 따른 마이크로 컨트롤러의 핀 다이어그램.
도 2는 본 발명에 따른 마이크로 컨트롤러의 블록 다이어그램.
도 3은 본 발명에 따른 마이크로 컨트롤러에서 회로망의 다이어그램.
도 4는 본 발명에 따른 마이크로 컨트롤러에서 데이터 메모리의 다이어그램.
도 5는 본 발명에 따른 마이크로 컨트롤러의 동작을 예시하는 타이밍 다이어그램.
본 발명의 목적은 사용자 모드에서 프로그램 가능한 마이크로 컨트롤러를 제공하는 것이다.
본 발명의 다른 목적은 모드 선택의 내부 검출을 허용하는 입력 핀을 멀티플렉싱함으로써 또한 모드 선택 제어를 위한 분리된 핀을 할당할 필요성을 제거함으로써 마이크로 컨트롤러의 기능성을 증가시키는 것이다.
본 발명의 또 다른 목적은 마이크로 컨트롤러와 같은 장치의 핀-호환 패밀리의 기능성을 증가시키는 것이다.
이와 같은 목적 및 다른 목적은 프로그램 메모리 쓰기 인에이블 레지스터, 전압 검출기 회로 및 레지스터와 검출기 회로에 접속된 디코더 회로를 구비한 프로그램 메모리를 가진 마이크로 컨트롤러에서 사용되는 회로에 의해서 성취된다. 리셋 회로가 레지스터와 검출기 회로에 접속된다. 리셋 회로는 레지스터를 리셋하는 신호를 출력한다. 리셋 회로는 또한 마이크로 컨트롤러를 리셋할 때만 레지스터를 리셋하는 수단을 포함한다. 마이크로 컨트롤러는 또한 리셋 회로와 검출기 회로에접속된 입력 핀을 갖는다.
디코더 회로는 또한 검출기 회로의 출력을 수신하도록 접속되는 제 1 입력 및 레지스터의 출력을 수신하도록 접속된 제 2 입력을 포함한다. 디코더 회로는 또한 검출기 회로 및 레지스터의 출력에 기초하여 프로그램 메모리 인에이블 신호 및 테스트 모드 인에이블 신호를 출력하는 수단을 포함한다.
하나의 실시예에서, 마이크로 컨트롤러는 데이터 메모리를 포함하며 레지스터는 데이터 메모리에서 메모리 위치를 포함한다. 레지스터는 또한 분리된 레지스터나 퓨즈로써 수행될 수 있다.
상기 목적은 또한 프로그래밍 레벨 전압을 검출하는 단계와 메모리의 프로그래밍이 인에이블되야 할지를 결정하는 단계와 그리고 전압을 검출하며 메모리가 프로그래밍을 위해 인에이블되야 할지를 결정한 후에 메모리를 프로그래밍하는 단계를 포함하는 마이크로 컨트롤러에서 메모리를 프로그래밍하는 방법에 의해 성취된다. 상기 방법은 또한 전압이 검출되며 메모리가 프로그래밍을 위해 인에이블되지 않을 때 테스트 모드로 진입하는 단계를 포함한다. 본 발명은 테스트 모드로 진입하는 단계, 프로그래밍을 위해 메모리를 인에이블하는 단계 및 테스트 모드동안 메모리를 프로그래밍하는 단계를 더 포함한다.
테스트 모드로 진입할 것인지의 결정은 마이크로 컨트롤러에 의해 내부적으로 실행될 수 있다. 내부적으로 테스트 모드로 진입할 것인지를 결정하는 것은 프로그래밍 레벨 전압을 사용함으로써 성취된다.
마이크로 컨트롤러는 보통 사용자 모드에서 동작될 수 있으며 메모리는 보통사용자 모드동안 프로그램된다.
상기 방법은 또한 마이크로 컨트롤러의 입력 핀 상에서 프로그램 레벨 전압을 검출하는 방법 및 리셋 신호와 같은 핀 상에서 적어도 하나의 다른 신호를 멀티플렉싱하는 방법을 포함한다.
상기 목적은 각각의 제 1 및 제 2 의 미리결정된 기능을 수행하도록 요구되는 제 1 및 2 입력 신호를 확인하는 단계를 포함하는 마이크로 컨트롤러에서 기능성을 증가시키는 방법에 의해 성취된다. 제 1 신호는 제 1 기능을 실행하도록 사용되며 내부적으로 제 2 기능을 실행해야 할지를 결정하도록 사용된다. 제 2 입력 신호는 마이크로 컨트롤러에 입력신호로써 제거된다. 이와 같은 방법은 또한 제 1 신호가 마이크로 컨트롤러에서 메모리를 프로그램하기 위한 프로그래밍 레벨 전압인가를 확인하는 단계를 포함하며, 제 2 신호가 테스트 모드 신호인가를 확인하는 단계와 프로그램 레벨 전압을 사용하는 테스트 모드로 진입할 것인지를 결정하는 단계를 포함한다. 테스트 모드 선택 신호는 입력 신호로써 제거된다.
내부적으로 제 1 신호를 사용하는 단계는 프로그래밍 레벨 전압을 검출하는 단계와, 마이크로 컨트롤러에서 프로그램 메모리의 프로그래밍을 인에이블해야 할지를 결정하는 단계와, 그리고 프로그래밍 레벨 전압을 검출하며 메모리의 프로그래밍이 인에이블되는지를 결정할 때 프로그래밍 모드로 진입하는 단계를 포함한다. 프로그램 모드는 마이크로 컨트롤러의 보통 사용자 모드동안 그리고 테스트 모드로 진입한 후에 들어간다.
도 1을 참조하면, 본 발명에 따른 마이크로 컨트롤러가 예시된다. 도 1은 마이크로 컨트롤러에 적용되는 본 발명의 핀 다이어그램을 보여준다. 이와 같은 마이크로 컨트롤러는 본 발명이 적용되는 장치의 예로써 사용되며, 본 발명을 제한하는것으로 간주되지 않는다. 도 1에서, 도면 번호 10은 DIP형태로 패키지된 마이크로 컨트롤러의 핀 다이어그램을 나타낸다. 이 마이크로 컨트롤러는 플라스틱 리드 칩 캐리어(PLCC:plastic leaded chip carrier) 또는 플라스틱 표면 실장형 패키지(plastic surface mount package)와 같은 다른 형태로 또한 패키지될 수 있다. 핀 명칭 RA0 내지 RA5는 양방향 I/O 포트 A에 해당된다. 유사한 명칭은 양방향 I/O 포트 B, C, D 및 E에 대하여도 사용된다. 정보는 양방향 I/O 포트의 핀으로 전송되며 그 핀으로부터 출력된다. 패키지(10)는 또한 전원(VDD및 VSS), 발진기 입력 및 출력(OSC1 및 OSC2) 및 마스터 클리어/프로그래밍 전압 입력 핀 MCLR/VPP에 대한 핀들을 포함한다.
또한 도 1에서 보여진 바와 같이 5V 또는 12V 전원 중 하나가 전압 스위치(11)를 통하여 MCLR/VPP핀에 공급된다. 전압 스위치(11)는 잘 알려진 회로망으로 수행될 수 있다. 스위치 제어 라인(12)은 5V 및 12V 전원사이에서 스위칭을 제어하며, I/O 포트 A의 핀 RA4에 접속된다. 스위칭 제어를 위해 스위치 제어 라인(12)은 또한 또하나의 적절한 핀을 사용할 수도 있다. 전압 스위칭은 CPU의 제어아래 수행된다.
5V 전원은 또한 VDD핀에 공급되며 VSS핀에 접지된다. 발진기(13)는 클록 입력을 제공하기 위해 OSC1 및 OSC2사이에 접속된다. 발진기(13)는 크리스탈 공진기일 수 있다.
마이크로 컨트롤러(10)의 몇몇의 적절한 요소의 블록 다이어그램은 도 2에서 더욱 자세하게 보여진다. 몇몇 요소는 간소화를 위해 본 도면에서 삭제되었다. 점선으로 표시된 CPU(45)는 하기에 더욱 자세히 기술되는 (33) 내지 (36) 및 (38) 내지 (43)의 요소를 포함하며 마이크로 컨트롤러의 동작을 제어한다.
도 2는 또한 데이터 버스(25)에 각각 접속된 포트 A(20), 포트 B(21), 포트 C(22), 포트 D(23) 및 포트 E(24)를 포함한다. 이와 같은 예에서 포트 A(20)는 6비트 폭의 데이터 포트이며 마이크로 컨트롤러의 주변특징에 따라 다중화될 수 있다. 포트 B(21) 및 포트 C(22)는 8비트 폭 양방향 포트이며 마이크로 컨트롤러의 주변특징에 따라 다중화될 수 있다. 포트 D(23)는 또한 8비트 양방향 포트이며 시스템 버스 어드레스/데이터 포트로서 사용될 수 있다. 포트 E(24)는 3비트 양방향 포트이며 그 핀은 어드레스 래치 인에이블, 출력 인에이블 또는 쓰기등과 같은 기능을 위해 사용될 수 있다.
도 2의 회로는 또한 산술 논리 장치(26)와 블록(27)의 주변장치를 포함한다. 블록(28)은 파워-업 타이머, 발진기 스타트-업 타이머, 파워-온 리셋부, 감시 타이머, 브라운-아웃 리셋부 및 테스트 모드 선택부와 같은 다수의 회로 요소를 포함한다. MCLR, VDD및 VSS핀은 블록(28)에 접속된다. 이와 같은 요소들의 기능은 잘 이해된다고 믿고 그것들에 대하여는 설명을 생략하며 여기에서는 기술하지 않는다. OSC1 및 OSC2핀은 버퍼(32)를 통한 타이밍 발생 회로(31)로의 입력부이며, 타이밍 발생 회로(31)는 블록(28)에 접속된다. 타이밍 발생 회로(31)는 또한 4XPLL 회로(30)에 접속되며 회로(30)은 블록(28)에 접속된다. 정밀 밴드갭 기준부(29)는 블록(28)에 접속된다. 명령은 명령 디코드 및 제어 회로(33)를 사용하여 디코드된다.
마이크로 컨트롤러의 메모리는 두개의 구성요소로 구성된다. 제 1의 구성요소는 대략 2M바이트, 어드레스 래치 및 데이터 래치를 포함할 수 있는 프로그램 메모리(37)이다. 프로그램 메모리는 ROM이나 EEPROM 중 하나로써 구현되며 마이크로 컨트롤러에 의해 실행되는 소프트웨어 프로그램을 유지한다. 어드레스는 프로그램 카운터(40) 및 테이블 포인터(39)로부터 멀티플렉서(38)를 통하여 메모리(37)로 입력된다. N-레벨 스텍(41)은 프로그램 카운터(40)에 연결된다. 마이크로 컨트롤러는 또한 마이크로 컨트롤러에 의해 사용되는 데이터를 저장하는 데이터 RAM(44)을 포함한다. 어드레스는 어드레스 멀티플렉서(43)를 통하여 데이터 RAM에 공급된다. 어드레스의 선택은 레지스터 선택 로직(42)에 의해 수행된다. 도 2는 또한 테이블 레치(36), ROM 래치(35) 및 IR 레지스터(34)와 같은 시스템에서 사용되는 다른 래치 및 레지스터를 보여준다. MCLR 핀에 접속되는 회로(28)에서의 회로망은 도 3에서 더욱 자세하게 보여준다. MCLR 신호 및 프로그래밍 전압 레벨은 핀(50)을 통하여 공급된다. 화살표(51)는 정보를 프로그램 메모리안에 프로그래밍하기 위한 적절한 회로망에 프로그램 전압의 접속을 나타낸다. 핀(50)에 접속된 고전압 검출 회로(52)는 프로그래밍 전압 레벨을 검출한다. 이와 같은 것은 다수의 방식으로 수행될 수 있다. 예를 들어, 검출 회로(52)는 절대 전압 레벨(즉, 예를 들어 12 볼트보다 큰)을 예측할 수 있거나 두 전압간 전압차를 검사할 수 있다. 이와 같은 경우에 전압은 전원 전압과 비교될 수 있으며 차이가 소정의 양보다 크면, 입력 전압은 프로그래밍 전압으로써 검출될 수 있다. 이와 같은 회로는 간단한 비교기 및 전압 기준과 같은 아날로그 및 디지털 구성요소의 혼합으로 구성되며 트랜지스터 드레스홀드 및/또는 저항 분주기를 포함한다.
또한 리셋 로직(53)은 핀(50)에 접속된다. 리셋 로직은 적절한 신호가 핀(50)에 공급될 때 마이크로 컨트롤러의 리셋팅을 수행한다. 예를 들어, 통상의 동작 동안 전원 전압은 핀(50)에 공급된다. 핀(50)위의 전압이 접지레벨로 떨어지면, 리셋 로직은 적절한 리셋 신호로써 이것을 검출하며 리셋팅을 수행할 것이다.
디코드 로직(54)는 고전압 검출 회로(52)의 출력에 접속된다. 디코드 로직은 기본적인 디지털 회로망으로 수행된다. 이와 같은 회로는 두개의 출력:Test_Enable 및 Longwrite_Enable 신호를 발생한다. 이와 같은 신호는 고전압 검출 회로(52) 및 롱라이트(longwrite) 인에이블 레지스터(55)로부터의 입력을 기준으로 하여 발생된다. 활성화된 Longwrite_Enable 신호는 프로그램 메모리(37)의 프로그램을 허용하는 반면 활성화된 Test_Enable 신호는 마이크로 컨트롤러를 테스트 모드에 있도록 한다. 고전압 레벨이 회로(52)에 의해 검출될 때 및 롱라이트 인에이블 레지스터가 활성화되지 않을때, 디코드 로직(54)는 Test_Enable 신호를 활성화한다. 테스트 모드가 인에이블될 때, 롱라이트(LWRT) 비트가 활성화된다면, 디코드 회로(54)는 Test_Enable 신호의 활성상태를 유지할 것이며 Longwrite_Enable 신호도 활성화될 것이다. 디코드 로직은 테스트 모드에서 프로그램 메모리(37)의 프로그래밍을 허용한다. LWRT 비트가 핀(50)위에 고전압을 보내기에 앞서 활성화되는 경우에, Longwrite_Enable 신호는 활성화되지만 Test_Enable 신호는 활성화되지 않는다. 메모리(37)의 프로그래밍은 이와 같이 마이크로 컨트롤러가 보통의 사용자 모드에 있는 동안, 즉 프로그램 메모리에서 명령을 수행하고 있을 때 발생할 수 있다. 양쪽 모두의 경우에, Longwrite_Enable 신호는 LWRT 비트나 고전압 중 하나라도 존재하지 않는다면 활성화되지 않을 것이다. 보통의 사용자 모드는 코드 수행이 사용자의 프로그램 메모리(이와 같은 예에서 메모리(37))로부터 패치되는 명령에 엄격하게 기반이 되는 모드이다. 단지 내부 메모리를 가진 마이크로 컨트롤러의 경우에, 이와 같은 모드는 메모리(37)로 제한된다. 마이크로 컨트롤러가 외부 코드 수행 능력을 가지고 있으면, 외부 메모리 버스도 존재한다.
테스트 모드가 이미 개시되었다면, 활성 LWRT 비트는 테스트 모드에서 프로그래밍을 허용하지 않는 디코드 로직(54)을 구성할 수 있다. 프로그래밍 모드는 처음 활성 LWRT 비트에 의해 및 연속적으로 회로(52)를 사용하여 고전압을 검출함으로써 개시된다.
롱라이트 인에이블 레지스터(55)는 프로그램 메모리에서 비휘발성 메모리를 프로그램하도록 하는 사용자 요구를 지시하기 위해 마이크로 컨트롤러에서 사용자 코드에 의해 설정되는 LWRT 비트를 포함한다. 일단 LWRT 비트가 설정되면, 핀(50)위의 전압을 상승시키면 마이크로 컨트롤러가 보통의 실행 모드에서 동작하고 있는 동안 마이크로 컨트롤러는 사용자에게 프로그램 메모리를 프로그램하도록 허용하는 모드를 들어가도록 한다. LWRT 비트를 포함하는 레지스터는 몇가지 방식으로 수행된다. 분리된 레지스터는 마이크로 컨트롤러에 포함되며 CPU에 의해 실행되는 사용자 코드에 의해 제어된다. 마이크로 컨트롤러에 존재하는 코드는 정보를 롱라이트 레지스터(55)로 송신하도록 사용되거나 롱라이트 레지스터(55)의 외부로 정보를 판독하는데 사용된다. 레지스터는 사용자가 셀을 자유롭게 읽으며 쓸수 있는, 이와 같은 경우에는 기술 SRAM 셀인 사용자 데이터 메모리의 일부이다. 레지스터는 퓨즈로 구현될 수 있다.
LWRT 레지스터가 데이터 RAM(44)에서 구현되는 경우를 도 4에서 보여준다. 데이터 RAM(44)은 데이터 래치(46), 어드레스 레치(48) 및 데이터 영역(49)을 포함한다. 데이터 영역(49)의 섹션(47)은 특별한 기능 레지스터(SFRs)를 위해 지정된다. LWRT 레지스터는 SFR 공간(47)에서 사용자의 데이터 RAM 영역(49)의 일부로써 존재한다. SFRs는 I/O포트 및 마이크로 컨트롤러의 일부인 소정의 주변장치를 제어하는 것과 같은 특별한 기능을 수행하도록 사용된다. 감시 타이머, 브라운-아웃 리셋등의 구성은 SFRs에 의해 제어될 수 있다. LWRT 비트로 쓰기를 하는 것은 현재 기술될 것이다. 프로그램 메모리(37)는 마이크로 컨트롤러의 명령어 세트로의 특별한 일련의 명령어를 포함한다. 이와 같은 명령어는 CPU(45)에 의해 프로그램 메모리(37)로부터 패치되며 명령어 레지스터(34) 및 명령어 디코더(33)에 의해 디코딩/인터프리팅 된다. 명령어의 특별한 시퀀스는, 도 3에서 (56)으로 지시되는, LWRT 레지스터를 인에이블하는 동안 데이터 버스(25)위에 정확한 값을 보내기 위해 지시문을 포함한다. LWRT 레지스터가 메모리(44)에서 존재하는 경우에, 레지스터 선택 로직(42)은, 레지스터 선택 로직(42)에 기반이 된, SFR 공간(47)에서 LWRT 레지스터를 인에이블하며, 어드레스는 LWRT 레지스터를 포함하는 SFR을 인에이블하는 메모리(44)로 보내진다. 일단 LWRT 레지스터가 쓰기를 위해 인에이블되면, 데이터 버스(25)로부터의 값은 레지스터로 전송된다.
리셋 로직(53)은 롱라이트 인에이블 레지스터(55)에 접속되며, 일단 LWRT 비트가 설정되면, 물리적 칩 리셋에 의해 클리어될 수 있다. 이와 같이 실행 모드에서 소망하지 않는 변화를 야기하는 프로그래밍 전압 레벨이 핀(50)상에 존재하는 동안 상기 비트를 우연히 클리어하는 것으로부터 사용자를 보호한다.
장치의 동작을 예시하는 타이밍도가 도 5에서 예시된다. 칩에 전원 인가후, MCLR 신호는 마이크로 컨트롤러가 보통 수행 모드를 들어가도록 허용하면서 0V 에서 전원 전압(이와 같은 경우에 5V)까지 상승된다. 초기에, MCLR 신호는 0V에 있을 때 마이크로 컨트롤러는 상기에 기술한 바와 같이 리셋 로직(53)에 의해 리셋된다.동작하는 동안 몇몇 지점에서 롱라이트 인에이블 레지스터는 활성화된다. 이것은 LWRT 신호를 고논리 레벨까지 상승시킴으로써 지시된다. 이와 같은 신호는 또한 이와 같은 값이 레지스터나 데이터 메모리로 쓰여지며 프로그램 메모리(37)의 프로그래밍을 인에이블함으로써 인식되는 경우를 나타낸다.
이와 같은 지점에서 롱라이트 인에이블 레지스터(55)는 LWRT 비트가 활성화된 디코드 로직(54)으로 지시된다. 마이크로 컨트롤러에서 프로그램의 실행의 최근의 지점에서, 스위치 라인은 MCLR 핀(50)으로 프로그램 레벨 전압을 공급하도록 활성화된다. 상기에 기술된 바와 같이, 활성화된 스위치 라인은 LWRT 비트가 셋트되기 전에 또는 테스트 모드동안 발생할 것이다. 도 5에 보여진 바와 같이, MCLR 신호는 그후 12V까지 상승된다. 이것은 고전압 검출 회로(52)가 프로그래밍 레벨 전압에 직면하여 디코드 로직(52)으로 지시되도록 야기한다. Longwrite_Enable 신호는 고레벨로 세트되는 경우에 이와 같이 활성화된다. 프로그램 메모리(37)의 프로그래밍은 현재 가능하다.
도 5에서는 보여지지 않는 반면, Longwrite_Enable 신호의 활성화 다음에 MCLR 신호는 LWRT 비트를 리셋하기 위해 0V로 돌아간다. LWRT 및 Longwrite_Enable 전압은 모두 그후 0V로 돌아간다.
본 발명에서 프로그래밍 전압 신호는 프로그램 메모리를 프로그래밍하는 이와 같은 경우에 미리결정된 기능을 실행하도록 요구된다. 또한 이와 같은 신호는 마이크로 컨트롤러가 어느쪽이든 테스트 인에이블 모드를 들어가도록 명령한다. 과거에 그러한 명령어는 분리된 테스트 모드 선택 신호와 함께 실행되어 왔다. 롱라이트 인에이블 모드는 분리된 기능을 수행하기서나 특별한 모드를 들어가기 위해위해 칩에 지시하도록 신호가 공급되는 핀에 첨부된 회로망에 의해 검출된다. 본 발명은 이와 같이 마이크로 프로세서가 모든 의도했던 기능을 수행할 수 있도록 필요한 다수의 핀에서의 감소를 허용한다.
핀 의 감소는 특히 핀-호환 장치의 패밀리를 개발중인 경우에 이점이 있다. 사용자가 마이크로 컨트롤러에 대한 밑넓이(footprint)를 설계했을 때, 추가의 기능을 허용하기 위해 추가의 핀을 자유롭게 증가시키기 때문에 핀 밑넓이의 호환성을 유지하여 사용자에 의해 부과된 제한을 고수하면서 대단한 기능성을 가진 더욱 강력한 마이크로 컨트롤러를 공급하는 능력을 제공한다. 더 높은 호환성을 가지면 사용자가 칩 패밀리의 가장 최신의 버젼을 포함할 때나 또는 특별한 기능성을 원하거나 필요로 할때 고가이며 시간을 소비하는 재설계 활동을 떠 맡을 필요가 없기 때문에 커다란 이점이 갖는다.
더욱이, 하드웨어보다 다소 소프트웨어/펌웨어를 수정함으로써 사용될 수 있는 업그레이드가 보통 바람직하다. 본 발명은 사용자가 보통 모드를 중지하며 분리된 프로그래밍 모드를 들어가지 않고도 사용자 모드에서 소프트웨어/펌웨어를 수정할 수 있도록 한다. 마이크로 컨트롤러의 두가지 모두의 기능성은, 개선되며 더욱 유연하게 만들어진 소프트웨어를 업그레이드하거나 수정하기 위한 능력과 핀을 자유롭게 증가시킴으로써 개선되거나 증가된다.
명백하게, 본 발명의 수많은 변경 및 변형은 상기에 기술된 견지에서 가능하다. 예를 들어, 본 발명이 마스터 클리어/프로그래밍 전압 입력 핀의 예를 사용하여 설명된 반면, 제한을 두지는 않는다. 분리된 핀을 할당할 필요성을 제거하는 반면, 본 발명은 신호가 마이크로 컨트롤러 또는 다른 장치에 공급되는 경우에 적용될 수 있으며, 하나의 핀으로 멀티플렉싱되며 적절한 모드/기능성이 실행되도록 허용하는 내부 회로망을 사용하여 검출된다. 본 발명은 또한 어떤 형태나 특별한 마이크로 컨트롤러에 제한을 두지 않지만, 핀-호환 패밀리 장치에 특히 이점을 가지고 있다. 그러므로 첨부된 청구범위의 범위 내에서 본 발명은 본 명세서에서 명세적으로 기술된 것이상의 다른 방법으로 실행된다는 것이 이해되도록 의도된다.

Claims (20)

  1. 프로그램 메모리를 가진 마이크로 컨트롤러에 사용되는 회로로서,
    프로그램 메모리 쓰기 인에이블 레지스터;
    전압 검출기 회로; 및
    상기 레지스터 및 상기 검출기 회로에 접속된 디코더 회로를 포함하는 회로.
  2. 제 1 항에 있어서, 상기 레지스터 및 상기 검출기 회로에 접속된 리셋 회로를 포함하는 것을 특징으로 하는 회로.
  3. 제 2 항에 있어서, 상기 리셋 회로는 상기 레지스터를 리셋하는 신호를 출력하는 것을 특징으로 하는 회로.
  4. 제 3 항에 있어서, 상기 리셋 회로는 상기 마이크로 컨트롤러를 리셋할 때만 상기 레지스터를 리셋하는 수단을 포함하는 것을 특징으로 하는 회로.
  5. 제 2 항에 있어서, 상기 리셋 회로 및 상기 검출기 회로에 접속된 상기 마이크로 컨트롤러의 입력 핀을 포함하는 것을 특징으로 하는 회로.
  6. 제 1 항에 있어서, 상기 디코더 회로는 상기 검출기 회로의 출력을 수신하도록 접속된 제 1 입력;
    상기 레지스터의 출력을 수신하도록 접속된 제 2 입력; 및
    상기 검출기 회로 및 상기 레지스터의 상기 출력들에 기초하여 테스트 모드 인에이블 신호 및 프로그램 메모리 인에이블 신호를 출력하는 수단을 포함하는 것을 특징으로 하는 회로.
  7. 제 1 항에 있어서, 상기 마이크로 컨트롤러는 데이터 메모리를 포함하며, 상기 레지스터는 상기 데이터 메모리에 있는 메모리 장소를 포함하는 것을 특징으로 하는 회로.
  8. 마이크로 컨트롤러에 있는 메모리를 프로그램하는 방법으로서,
    프로그래밍 레벨 전압을 검출하는 단계와;
    상기 메모리의 프로그래밍이 인에이블되는가를 결정하는 단계와; 그리고
    상기 전압을 검출하며 프로그래밍을 위해 인에이블되도록 상기 메모리를 결정한 후에 상기 메모리를 프로그래밍하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서, 상기 전압이 검출되며 상기 메모리가 프로그램을 하기 위해 인에이블되지 않을 때 테스트 모드로 진입하는 단계를 포함하는 방법.
  10. 제 9 항에 있어서, 상기 테스트 모드로 진입하는 단계와;
    프로그래밍을 위한 상기 메모리를 인에이블하는 단계와; 그리고
    상기 테스트 모드에 있는 동안 상기 메모리를 프로그램하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제 8 항에 있어서, 테스트 모드로 진입할 것인지를 내부적으로 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서, 상기 프로그램밍 레벨 전압을 사용하여 상기 테스트 모드로 진입할 것인지를 내부적으로 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제 8 항에 있어서, 보통 사용자 모드에서 상기 마이크로 컨트롤러를 동작시키는 단계와; 그리고
    상기 보통 사용자 모드동안 상기 메모리를 프로그램하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제 8 항에 있어서, 상기 마이크로 컨트롤러의 입력 핀 상에서 프로그램 레벨 전압을 검출하는 단계와; 그리고
    상기 핀 상에 적어도 하나의 다른 신호를 멀티플렉싱하는 단계를 포함하는것을 특징으로 하는 방법.
  15. 제 14 항에 있어서, 상기 핀상에 리셋 신호를 멀티플렉싱하는 단계를 포함하는 것을 특징으로 하는 방법.
  16. 마이크로 컨트롤러에서 기능성을 증가시키기 위한 방법으로서,
    각각의 제 1 및 제 2 의 미리결정된 기능들을 수행하도록 요구된 제 1 및 제 2 입력 신호를 확인하는 단계와;
    상기 제 1 기능을 수행하기 위하여 상기 제 1 신호를 사용하는 단계와;
    상기 제 2 기능을 수행해야 할지를 검출하기 위해 제 1 신호를 내부적으로 사용하는 단계와; 그리고
    상기 마이크로 컨트롤러에의 입력으로써 상기 제 2 입력 신호를 제거하는 단계를 포함하는 것을 특징으로 하는 방법.
  17. 제 16 항에 있어서, 상기 제 1 신호가 상기 마이크로 컨트롤러에 있는 메모리를 프로그램하기 위한 프로그래밍 레벨 전압인지를 확인하는 단계와;
    제 2 신호가 테스트 모드 선택 신호인지를 확인하는 단계와;
    상기 프로그래밍 레벨 전압을 사용하여 상기 테스트 모드로 진입할 것인지를 검출하는 단계와; 그리고
    상기 테스트 모드 선택 신호를 입력 신호로써 제거하는 단계를 포함하는 것을 특징으로 하는 방법.
  18. 제 16 항에 있어서, 상기 제 1 신호를 내부적으로 사용하는 단계는,
    상기 프로그래밍 레벨 전압을 검출하는 단계와;
    상기 마이크로 컨트롤러에서 프로그램 메모리의 프로그래밍을 인에이블해야할지를 결정하는 단계와;
    상기 프로그래밍 레벨 전압을 검출하고 상기 메모리의 프로그래밍이 인에이블되지 않도록 결정할 때 상기 테스트 모드로 진입하는 단계와; 그리고
    상기 프로그래밍 레벨 전압을 검출하고 상기 메모리의 프로그래밍이 인에이블되도록 결정할 때 프로그래밍 모드로 진입하는 단계를 포함하는 것을 특징으로 하는 방법
  19. 제 18 항에 있어서, 보통 사용자 모드에서 상기 마이크로 컨트롤러를 동작시키는 동안 상기 프로그래밍 모드로 진입하는 단계를 포함하는 방법.
  20. 제 18 항에 있어서, 상기 테스트 모드 진입후에 상기 프로그래밍 모드로 진입하는 단계를 포함하는 방법.
KR1020007012551A 1999-03-09 2000-03-09 쓰기 인에이블 비트를 갖는 마이크로 컨트롤러 KR20010071231A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US26470799A 1999-03-09 1999-03-09
US09/264,707 1999-03-09
PCT/US2000/006165 WO2000054282A1 (en) 1999-03-09 2000-03-09 Microcontroller having write enable bit

Publications (1)

Publication Number Publication Date
KR20010071231A true KR20010071231A (ko) 2001-07-28

Family

ID=23007269

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007012551A KR20010071231A (ko) 1999-03-09 2000-03-09 쓰기 인에이블 비트를 갖는 마이크로 컨트롤러

Country Status (6)

Country Link
EP (1) EP1086466A1 (ko)
JP (1) JP2002539542A (ko)
KR (1) KR20010071231A (ko)
CN (1) CN1300432A (ko)
TW (1) TW490670B (ko)
WO (1) WO2000054282A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003032089A (ja) * 2001-07-18 2003-01-31 Matsushita Electric Ind Co Ltd リセット機能内蔵マイクロコンピュータ
TWI397855B (zh) * 2008-05-07 2013-06-01 Sunplus Mmedia Inc 減少接腳數之方法以及使用其之微處理器
TWI503818B (zh) 2013-01-21 2015-10-11 Richtek Technology Corp 具共用腳位之馬達控制器與相關控制方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0729386A (ja) * 1993-07-13 1995-01-31 Hitachi Ltd フラッシュメモリ及びマイクロコンピュータ
US5615159A (en) * 1995-11-28 1997-03-25 Micron Quantum Devices, Inc. Memory system with non-volatile data storage unit and method of initializing same
JPH09282302A (ja) * 1996-04-10 1997-10-31 Sanyo Electric Co Ltd マイクロコンピュータ
US5991849A (en) * 1996-04-10 1999-11-23 Sanyo Electric Co., Ltd Rewriting protection of a size varying first region of a reprogrammable non-volatile memory
FR2766594B1 (fr) * 1997-07-24 2000-01-28 Sgs Thomson Microelectronics Dispositif de re-initialisation a commande externe pour une memoire non volatile en circuit integre

Also Published As

Publication number Publication date
CN1300432A (zh) 2001-06-20
TW490670B (en) 2002-06-11
WO2000054282A1 (en) 2000-09-14
JP2002539542A (ja) 2002-11-19
EP1086466A1 (en) 2001-03-28

Similar Documents

Publication Publication Date Title
KR100489757B1 (ko) 프로그램 가능한 액세스 보호 기능을 갖는 메모리 장치 및 그 메모리 장치의 동작 방법
KR101110994B1 (ko) 에러 동작으로부터 집적 회로를 보호하는 방법 및 장치
US5826007A (en) Memory data protection circuit
JP3277475B2 (ja) 自動電源構成による不揮発性メモリ・カード
KR100444537B1 (ko) 데이타처리장치
JP3884839B2 (ja) 半導体記憶装置
KR100232400B1 (ko) 음란/폭력물 차단 기능을 구비한 컴퓨터 및 그 제어 방법
US6859876B2 (en) System and method for detecting and using a replacement boot block during initialization by an original boot block
US6587916B2 (en) Microcomputer with built-in programmable nonvolatile memory
US20060005005A1 (en) Method and apparatus for executing the boot code of embedded systems
KR100305490B1 (ko) 비휘발성메모리제어회로
JPH03141447A (ja) 電気的に消去可能なプログラマブル読み出し専用メモリーに常駐するファームウェアを更新する方法及び装置
KR20010071238A (ko) 비휘발성 메모리에서의 하드웨어 블록 로킹 방법 및 장치
JPH1050078A (ja) 電気的に消去およびプログラムが可能なリード・オンリ・メモリの消去およびプログラミング保護方法および装置
US5889987A (en) Flexible non-volatile memory controller with boot block emulation
WO2006060073A2 (en) Method and apparatus for dual protection of a protected memory block
US20070133280A1 (en) Semiconductor integrated circuit apparatus and electronic system
US6292012B1 (en) Device for protecting a programmable non-volatile memory
KR100251381B1 (ko) 휘발성메모리의초기화장치및방법
US5642480A (en) Method and apparatus for enhanced security of a data processor
US20040186947A1 (en) Access control system for nonvolatile memory
US20020144103A1 (en) Non-volatile alterable default flash memory configuration registers
KR20010071231A (ko) 쓰기 인에이블 비트를 갖는 마이크로 컨트롤러
JPH05216639A (ja) フラッシュメモリをbios−romとして使用したパーソナルコンピュータ
US6813191B2 (en) Microcomputer with nonvolatile memory protected against false erasing or writing

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid