ATMEL사의 T89C51RD2 프로세서 1 개만
있으면 8051 하드웨어 디버거가 됩니다.

SE-8051ICD 는 TEMIC(ATMEL-WM)사의 T89C51RD2를 이용한 프로그래머/
하드웨어 디버거 입니다. PC의 시리얼 포트를 통하여 HEX 파일을
다운로드 하여 T89C51RD2 프로세서에 프로그램 합니다.

SE-8051ICD는 CROSSWARE 8051 C 컴파일러를 이용하면 C 소스 프로그램을
한줄씩 스텝 실행하며 모든 변수와 SFR 의 변화 내용이 PC에서 확인되는
하드웨어 인서킷 에뮬레이터가 됩니다.

Crossware 8051 C 컴파일러를 이용한 8051 하드웨어 디버깅의 모든 과정을 자세히 설명하였습니다.
Course 1: Crossware 8051 C 컴파일러에서 LED를 점등하는 예제 프로그램 작성하여 소프트웨어 시뮬레이션 과정을 설명합니다.

Course 2: 8051 하드웨어 디버깅에 필요한 디버그 모니터 HEX 파일 작성 과정을 설명합니다.

Course 3: FLIP 을 이용하여 HEX 파일을 T89C51RD2에 프로그래밍하는 과정을 설명합니다.

Course 4: T89C51RD2를 이용한 8051 하드웨어 디버깅 과정을 설명합니다.

FLIP을 이용하여 T89C51RD2에 HEX파일을 다운로드 하기위한 최소구성회로

PC 의 시리얼 포트(COM1)와 1:1 케이블로 연결합니다.

FLIP모드:
T89C51RD2 프로세서를  시리얼 포트를 통하여 FLASH 메모리에 프로그레밍이 가능 하도록 설정한 상태를 FLIP모드라고 합니다. T89C51RD2는 공장 출하시 시리얼 포트를 이용한 다운로더 기능을 가진 부트로더(Boot Loader) 프로그램이 라이팅 되어 있습니다. T89C51RD2는 리셋 후 PSEN   신호를 검사하여 0V 이면 Boot Loader 프로그램이 실행되며 이 상태를 FLIP모드라고 합니다. FLIP이 동작하는 최소 구성은 RxD, TxD 그리고 GND 가 PC 의 Com1 포트와 연결되어 있어야 합니다. Crossware 디버그 모드를 사용하려면  RTS,CTS를 연결하고 DTR,DSR을 연결하여 NULL 모뎀 조건이 되도록 하여야 합니다.(위 도면 참조)

하드웨어 준비:
(1) PC의 RS-232 시리얼 포트(Com1)와 T89C51RD2의 RxD(P3.0), TxD(P3.1)이 연결되어 있어야 합니다.
(2) PSEN = LOW 상태에서 RESET 하여 FLIP 모드로 전환합니다.
PC 와 타겟프로세서의 통신속도(Baud Rate)는 11.0592MHz 일 때 38400BPS 로 됩니다. FLIP이 동작가능한 크리스탈 주파수는 11.0592MHz, 12.0000MHz, 14.7456MHz, 16.0000MHz, 22.1184MHz, 24.0000MHz 입니다.

소프트웨어 준비:
FLIP:
ATMEL-WM 의 T89C51 시리즈 프로세서 프로그래밍 소프트웨어입니다. ZIP 으로 압축되어 있습니다. 빈 폴더를 만들고 압축된 파일을 unzip합니다. FLIP.EXE 가 폴더안에 생기며 install.exe를 실행하지 않아도 됩니다.

Crossware 8051 C 컴파일러 Demo:

8051 C 컴파일러 입니다. Demo버젼은 4K HEX 파일(바이너리 사이즈)을 만들 수 있습니다. 스타트 번지가 4000H 에서 시작하므로 메모리가 16K Bytes보다 큰 8051 프로세서를 사용할 수 있습니다. T89C51Rx2 와 AT89C55WD를 사용하면 혼자서 작동하는 시스템을 만들 수 있습니다.

Crossware 8051 C 컴파일러 15일 평가판:

모든 기능이 정품과 같습니다. 다만 15일간 사용할 수 있습니다. 모든 8051프로세서를 사용가능하며 64K 바이트까지 HEX 코드를 만들 수 있습니다.

8051 Window 용 어셈블러:

CYGNAL 사에서 C8051Fxxx 프로세서용으로 만들어 공개한 프로그램입니다. 편집화면은 Window 환경이므로 한글 주석문 처리가 가능합니다. 예약어와 주석문은 색상이 구별되므로 사용하기 편리합니다. 어셈블러는 64K Bytes 사용 가능한 Metalink사의 공개된 DOS 버젼용 프로그램이 포함되어 있습니다. 어셈블링 시작할때 DOS창이 열립니다. 어셈블링 완료시 DOS 창을 끄면 HEX파일이 만들어집니다. SFR 정의 파일은 $MOD8F000 을 사용하면 됩니다. CYGNAL 프로세서용 SFR파일이지만 8052 구조에서 확장된 것이므로 다른 8051 프로세서를 사용하는 경우에도 문제없습니다. 설치후 BLINK.ASM 파일을 참조하시기 바랍니다.

Course 1: 새 프로그램 작성과 소프트웨어 시뮬레이션

C1-1 : Crossware C 8051 컴파일러 데모버젼을 다운로드 하여 설치합니다.

C1-2 : Crossware 통합 개발 환경(IDE)은 프로그램 편집창, Output창, Workspace창으로 구성되며 View 메뉴에서 Output창과 Workspace창의 표시를 선택할 수 있습니다.

C1-3 : 새로운 프로그램을 코딩하려면 FILE 메뉴에서 NEW를 클릭합니다. NEW 는 단축아이콘이 없으므로 반드시 FILE 메뉴에서 선택하여야 합니다.

C1-4: 프로젝트의 형식을 선택합니다. 8051에서 동작하는 HEX 파일(또는 IEEE695)을 만드는 것은 NEW 창의 Project 탭에서 Exacutable Program 을 선택합니다. 이 외의 다른것은 디버그용 모니터 프로그램을 생성할 때 선택합니다.

C1-5 : CPU의 종류를 선택합니다. 소프트웨어 시뮬레이션은 표준 8051 호환 프로세서 전부 가능하지만 하드웨어 디버깅은 CYGNAL 과 ATMEL-WM 의 T89C51Rx2계열만 가능합니다. 소프트웨어 시뮬레이션을 실험한 후 하드웨어 디버깅을 할 수 있도록 T89C51RD2 를 선택하고 Congigured for 에서 Standard Operation 을 선택합니다. T89C51RD2를 선택하여 소스프로그램을 작성하여도 나중에 일반 표준 8051(예를들어 ATMEL 사의 AT89C51)을 사용할 수 있습니다.

C1-6 : 프로젝트 이름을 입력합니다.

C1-7 : 메모리 모델을 선택합니다. Small 메모리 모델은 8051외부에 SRAM 을 부착하지 않는 메모리 모델입니다. Large 로 선택하면 모든 변수는 외부 메모리에 배치되며 내부 메모리는 스택영역으로 사용됩니다. T89C51RD2 는 내부에 MOVX 명령으로 저장 가능한 메모리가 1K Bytes 포함되어 있습니다. 따라서 Large 메모리 모델을 선택할 수 있습니다.

C1-8 : 추가 라이브러리 선택하는 항목입니다. "다음"을 클릭하여 넘어갑니다.

C1-9 : 컴파일 후 출력되는 파일의 종류를 선택합니다. 소프트웨어 시뮬레이션과 하드웨어 디버깅가능 출력 포맷은 IEEE695입니다. 생성되는 화일 이름의 확장자가 695로 표시됩니다. HEX 파일을 선택하면 4K Bytes(바이너리)의 코드가 생성됩니다. 데모버젼은 스타트 번지가 4000H 부터 시작되며 4FFFH 까지 코드가 배치됩니다. 16K Bytes보다 큰 메모리를 가진 8051프로세서(AT89C55WD, T89C51Rx2 etc..)는 생성된 HEX 파일을 프로그래밍하여 혼자서 동작할 수 있습니다.

C1-10 : 프로그램 개발 언어를 선택합니다. C 언어일 때 "마침"을 클릭하여 프로젝트 구성을 완료합니다.

C1-11 : 프로젝트 구성을 완료하면 자동으로 기본 프로그램이 만들어집니다.

C1-12 : 예제 프로그램을 키인합니다. P3.0과 P3.1 은 디버그 통신채널로 사용하므로 사용자 프로그램에서 P3.0과 P3.1을 사용할 수 없습니다. UART 와 관련된 레지스터와 인터럽트 비트는 사용하거나 변경할수 없습니다.

C1-13 : Build 메뉴에서 Rebuild All 을 클릭하여 작성한 프로그램을 컴파일합니다.

C1-14 : Simulate -> Step Into 키 또는클릭합니다. 맨 처음 실행되는 start.asm 이 나타납니다.

C1-15 : 명령실행에 따른 SFR, 메모리 그리고 로컬변수의 변화 상황을 관찰하기 위하여 Window 메뉴에서 Register, Memory, Local Symbol을 클릭합니다.

C1-16 : 레지스터, 메모리 그리고 로컬 변수 창이 만들어 집니다. 한라인씩 스텝 실행될 때마다 변화되는것이 확인됩니다.

C1-17 : Port3의 상태를 윈도우 창으로 만들려면 View -> Port3를 클릭합니다.

C1-18 : 포트 비트가 1 일때 점이 표시됩니다.

C1-19 : 스텝실행 아이콘을 클릭하면 한 라인씩 차례로 실행됩니다.

Course 2: 디버그 모니터 HEX 파일 생성

C2-1 : 열려있는 프로젝트가 있다면 닫습니다. 그리고 FILE 에서 NEW를 선택합니다.

C2-2: Project형식에서 "T89C51RD2 Debug Monitor (PCA Step Timer)"를 선택합니다.

C2-3 : 프로젝트 이름을 입력합니다. 프로젝트 이름은 나중에 이해하기 쉽도록 합니다. 위의 예는 프로세서는 T89C51RD2, PCA 카운터 사용, 크리스탈 주파수 11.0592MHz, 더블 클록 모드, 디버깅 시리얼 포트 통신속도가 38400 BPS 를 표시한 것입니다.

C2-4 : 프로젝트 구성이 완성되었습니다. 기본값으로 설정된 것은 디버그시 사용되는 UART의 통신속도 38400 BPS, 클록 속도는 더블 클록 모드, 크리스탈 주파수는 11.0592MHz 입니다. Build메뉴에서 Rebuild All을 클릭하면 디버그 HEX 파일이 만들어집니다.

C2-5 :  변경 가능한 내용은 오실레이터 주파수, 클록 동작모드, UART통신 속도입니다. Wizard에서 Oscillator를 선택합니다.

C2-6 : 오실레이터 주파수, 클록 모드를 선택할 수 있습니다. 변경 후 Insert를 클릭합니다.

C2-7 : Wizards 에서 Uart를 선택합니다.

C2-8 : Mode and Timing 탭의 Baud rate 에서 통신 속도를 선택할 수 있습니다. Double 클록 모드가 선택된 경우 크리스탈이 11.0592MHz 일때 CPU Clock창에 22118400Hz 가 표시됩니다.

C2-9 : Build 메뉴에서 "Rebuild All"을 클릭합니다.

C2-10 : 컴파일이 완료됩니다. rd2_pca_11m_38400.hex 가 만들어 집니다.

C2-11 : 프로젝트를 닫습니다.

Course 3: FLIP 을 이용한 HEX 파일 다운로드

C3-1 : SE-8051ICD의 토글 스위치를 DEBUG 방향으로 놓습니다.

C3-2 : RESET 버튼과 FLIP 버튼을 동시에 누릅니다.

C3-3 : FLIP LED 에 불이 들어온 상태에서 RESET 버튼을 먼져 놓습니다. 그 다음 FLIP 버튼을 놓습니다.

C3-4 : FLIP 프로그램을 부팅합니다.

C3-5 : Device 메뉴의 Select를 클릭합니다.

C3-6 : Device Selction 윈도우에서 Device 를 클릭합니다.

C3-7 : 타겟 프로세서 종류를 T89C51RD2로 선택합니다.

C3-8 : "OK" 를 클릭합니다.

C3-9 : 메뉴에서 Setting -> Communication -> RS232를 선택합니다.

C3-10 : RS232 윈도우에서 "Connect"를 클릭합니다.

C3-11 : 정상적으로 연결되면 디바이스의 ID 가 표시됩니다.

C3-12 : FILE 메뉴에서 Load HEX를 선택합니다.

C3-13 : 다운로드 파일을 선택합니다.

C3-14 : "RUN" 메뉴를 클릭합니다.

C3-15 : 각동작이 완료되면 체크박스의 색상이 초록색으로 됩니다.

C3-16 : 다음에 이 과정을 반복하지 않기 위해 Configuration FILE 을 저장해 둡니다.

C3-17 : Configuration 파일은 HEX파일이 있는 폴더에 저장하는것이 편리합니다.

Course 4 : 하드웨어 디버깅

C4-1 :소프트웨어 시뮬레이션에서 사용한 프로젝트를 선택하려면 FILE -> Open Project를 선택합니다.

C4-2 : 확장자가 XMK 의 프로젝트 파일을 선택합니다. (예제프로젝트)

C4-3 : 하드웨어 디버깅을 하기 위하여 설정값을 변경하여야 합니다. Build -> Setting을 클릭합니다.

C4-4 : Configured for 항목에서 Debug Monitor를 선택합니다.

C4-5 : "예"를 클릭합니다.

C4-6 : Linker 탭에서 IEEE695를 선택합니다.

C4-7 : Build 메뉴에서 Build All 을 클릭합니다.

C4-8 : Simulate메뉴에서 Use Remote Debugger를 선택합니다. Simulate 와 Debug 는 토글 모드 입니다.

C4-9 : Comm 메뉴에서 Setting을 클릭합니다.

C4-10 : Com1 포트의 통신속도를 38400 BPS 로 선택합니다.

C4-11 : RESET 버튼을 누릅니다
.

C4-12 : Debug메뉴에서 Step Into 를 선택합니다.

C4-13 : 다운로드 확인창이 나타납니다. OK를 클릭하면 프로그램이 다운로드 됩니다.

C4-14: 스텝실행시 LED점등상태 입니다.

자주 묻는 질문(FAQ)
Q: 어떤 방법으로 H/W 디버깅을 실현합니까?
T89C51RD2는 플래시 마이크로 컨트롤러이입니다. 일반 Flash MCU와 달리 Flash 에 프로그램을 라이팅한 후 Jump 하여 동작이 가능합니다. Crossware 에서 개발한 Debug Monitor 프로그램이 하위 어드레스에 라이팅되고 그 위에 사용자가 개발한 응용프로그램이 라이팅되어 디버깅 동작합니다. 리셋이나 모드전환 스위치의 조작이 필요없이 몇번이든 새로운 프로그램이 이레이징/ 라이팅 됩니다. 시리얼 포트를 통하여 MCU의 SFR과 RAM 내용이 PC 로 전송되어 디버깅이 가능하게 됩니다. 디버깅이 완료되면 Debug Monitor 프로그램이 필요없이 동작가능(Stand Alone)한 최종 HEX코드를 만들어 8051에 라이팅 합니다.

Q: T89C51RD2 프로세서를 처음 구입하여 부트 프로그램을 라이트 하지 않았는데도 FLIP 모드로 동작됩니까?
T89C51RD2 프로세서는 공장 출하시 부트 프로그램이 FLASH 메모리에 라이팅 되어 있습니다. 부트 프로그램은 특별 영역에 프로그램 되어 있으므로 사용자 프로그램 영역을 지우고 새 프로그램을 라이트 하여도 부트 프로그램은 남아 있습니다. T89C51RD2가 리셋되면 제일먼저 PSEN 신호를 확인합니다. LOW(0V) 이면 부트 프로그램이 실행되고 High 이면 리셋벡터( 0000H번지)를 실행합니다.

Q: 소프트웨어 시뮬레이션과 하드웨어 디버깅의 차이는 무었입니까?
프로그램 컴파일후에 PC 에서 8051 코드를 번역 실행해 보는 것을 시뮬레이션 이라고 합니다. H/W 디버깅이란 타겟에 실장된 프로세서가 직접 동작하며 작성한 프로그램의 동작상황을 확인하는 것입니다.

Q: ATMEL AT89C51 과 T89C51RD2의 차이는 무었입니까?
T89C51은 공장 출하시 시리얼 포트를 통하여 HEX 파일을 다운로드하는 Boot Loader 프로그램이 내장되어 있습니다(현재 V2.4). 1K Bytes의 RAM 과 64K바이트의 Flash 메모리를 가지고 있습니다. T89C51RD2 는 AT89C51의 구조와 상위 호환이므로 동일합니다.

Q: T89C51RD2를 이용한 H/W 디버깅의 제한 조건은 무었입니까?
T89C51RD2의 시리얼 포트를 사용할 수 없습니다. 또한 Baud Rate 를 발생하는 TH1레지스터와 UART 관련 레지스터를 사용할 수 없습니다. UART는 PC 에서 T89C51RD2로 실행 프로그램 전송, 디버그 명령 전송의 용도와,T89C51RD2의 내부 Register, SFR 의 정보를 PC로 넘겨주는 용도로 사용합니다. 인터럽트 인에이블 비트 EA를 클리어할 수 없습니다.

Q: CROSSWARE 8051 C DEMO 컴파일러의 H/W 디버깅후 HEX 파일이 만들어 집니까?
4K 바이트까지 만들어 집니다. 다만 시작 번지가 4000H 부터 입니다. 16K 보다 큰 AT89C55WD 에서 HEX파일 라이팅이 가능합니다.

Q: CROSSWARE 8051 C DEMO 컴파일러 에서 하드웨어 디버깅시 사용자 프로그램과 디버그 모니터 화일 크기의 합이 4 K 바이트 이내여야 합니까?
디버그 모니터파일 (약 3.5K 바이트) 이후에 사용자 프로그램 4K 바이트가 올라갑니다. 그러므로 하드웨어 디버깅 시에도 사용자 프로그램 크기는 4K 바이트까지 입니다.

Q: 샘플전자에서 제작한 SE-8051ICD 가 있어야 H/W 디버깅이 됩니까?
아닙니다. 기존에 제작된 타겟회로와 PC가 시리얼 포트가 연결되어 있으면 하드웨어 디버깅이 가능합니다. 타겟회로에서 8051을 T89C51RD2로 대치하고 PSEN신호를 0V 로 만들 수 있는 스위치를 부착하면 됩니다.

Q: printf()함수는 사용가능 합니까?
printf() 함수에서 바이트 출력을 UART를 이용하지 않도록 하였다면 사용가능합니다. 그러나 printf()함수는 컴파일 코드사이즈가 크므로 사용하지 않는 것이 좋습니다.

Q: IEEE695 파일 포맷은 무었입니까?
마이크로 프로세서 개발 장비(MDS)제조사료 유명한 Microtec사와 HP 사가 공동으로 제정한 디버깅 정보가 포함된 출력 파일 포맷입니다. 부동소숫점, 스트링, 유니온, 스트럭쳐등 표준 C언어에서 만든 모든 변수를 그대로 표시(부둥 소숫점의 십진수 형태표시, 유니온 스트럭쳐의 멤버 표시, 스트링의 문자표시)합니다. 미국 전기 전자 기술자 협회에서 695번으로 등록되어 전세계 모든 MDS 장비 제조업체에서 표준으로 지원합니다.

Q: 디버깅 회로에서 클록주파수는 어떤 것을 선택합니까?
Crossware 8051 C 컴파일러를 이용한 H/W 디버깅 조건은 대부분의 주파수의 크리스탈 사용이 가능합니다. 메뉴바에서 Wizard -> Oscillator 에서 클록 주파수를 선택하면 됩니다. UART 를 통하여 디버깅되는 구조이므로 11.0592MHz나 22.1184MHz 의 주파수 사용을 권장합니다.

Q: 다른 컴파일러/어셈블러에서 만들어진 HEX파일도 디버깅 가능합니까?
안됩니다. Crossware 컴파일러에서 Debug 모드용으로 컴파일된 IEEE695 파일만 하드웨어 디버깅이 가능합니다.

Q: 개발은 TEMIC 프로세서로 한후 실 제품 생산은 저가형 8051 프로세서로 가능합니까?
가능합니다. T89C51RD2는 ATMEL의 AT89C51/52/55 와 명령어, 메모리 구조가 동일합니다. 디버깅 용도로 T89C51을 사용하기 위하여 T89C51RD2 를 별도로 스터디하실 필요가 없습니다. 양쪽 모두 동일한 8051코어 입니다.

자료실:
예제로 사용된 소스파일 (Zip 파일이며 Project 폴더 아래에 압축을 풉니다.)

T89C51RD2 데이터

다운로더 프로그램 FLIP

FLIP 매뉴얼(영문)

TEMIC H/W 디버깅 지원 CROSSWARE 8051 C 컴파일러 데모 다운로드(V3.2.0.0)

CROSSWARE 8051 C 컴파일러 15일 데모버젼 다운로드(64KBytes 풀펑션)

Crossware 디버거에 관한 자세한 내용(영문)

Crossware에서 제작한 Starter-Kit(SE-8051ICD) 영문 매뉴얼

가격

품목 | | 가격
SE-8051ICD KIT | 조립 키트(T89C51RD2포함) | 132,000 원
T89C51RD2 | 40Pin Dip (64K Flash) | 11,000 원
Crossware 8051 ANSI C Compiler | | 1,650,000 원

SE-8051ICD KIT 구성 품목
1. SE-8051ICD 본체
2. T89C51RD2 40 Pin DIP 프로세서
3. 9V 아답터
4. 40 Pin DIP 프르부 커넥터
5. 9Pin 시리얼 케이블
6. 조립 설명서 / CD

SE-8051ICD는 완제품 형태로 판매하지 않습니다.
T89C51RD2 는 1 개 단위로도 판매합니다.
교육기관에서 PCB 만 구입하기 원하시면 문의하시기 바랍니다.

샘플전자 약도
서울시 용산구 한강로3가 용산 전자랜드 본관
광장층 C-18호
TEL:(02)707-3882
FAX:(02)707-3884
[email-masked]