HMS39C7092 32 비트 임베디드 플래시 MCU 플래시 메모리 프로그램 설명서 한글 ver 1.0
플래시메모리 Flash MCU(HMS39C7092) Released : March 2005 ARM 은 Advanced RISC Machine 의 등록 상표입니다. ARM7TDMI 는 ARM 에서 설계하였습니다. 본 문서의 내용은 사전 양해 없이 바뀔 수 있습니다. 본 문서는 저희 제품을 응용하기 위한 설명 용도로 사용되면, 매그나칩에서는 본 문서인해 본 제품 을 사용하는 데에 따른 제 3 사의 저작권 및 특허 침해에 관련된 어떠한 내용에 대해서도 책임을 지 지 않습니다. 본 문서는 매그나칩 및 다른 제 3 자의 어떠한 특허권의 소유에 대한 내용도 포함하고 있지 않습니다. 이 제품들은 일반 전자 장치에 사용되도록 고려되었습니다 (사무기, 통신기기, 측정장비, 가전 등). 이 제품들을 고성능, 고신뢰성 및 안전에 관련된 분야 (원자력 제어, 우주/항공, 교통신호, 연소제어 및 모든 안전관련 장비 등)에 사용하시기 전에 반드시 매그나칩에 문의 하여 주시기 바랍니다. 사전 에 저희 회사와 상의 없이 개발된 제품에 의해 일어난 손해에 대해서는 책임을 지지 않습니다. Copyright 2005 Magnachip Semiconductor, Inc. All Rights Reserved 2
Flash MCU(HMS39C7092) 목 차 플래시메모리 제 1 장... 7 내장 플래시롬 알고리즘... 7 1.1 플래시 메모리 프로그램 및 소거... 8 1.1.1 프로그램 및 프로그램 베리파이... 8 1.1.2 프리프로그램과 프리프로그램 베리파이 모드... 10 1.1.3 소거 및 소거 베리파이 모드... 12 제 2 장... 15 PROM 모드 인터페이스... 15 2.1 플래시 메모리 PROM 모드... 16 2.1.1 PROM 모드 설정... 16 2.1.2 메모리 맵... 17 2.1.3 PROM 모드 동작... 17 2.1.4 플래시 타이밍과 AC/DC 특성... 18 제 3 장... 23 전기적 특성... 23 3
플래시메모리 그 림 목 차 Flash MCU(HMS39C7092) 그림 1.1 프로그램 및 프로그램 베리파이 순서도... 9 그림 1.2 플래시 섹터 프리프로그램과 프리프로그램 베리파이 순서도... 11 그림 1.3 플래시 소거 알고리즘... 12 그림 1.4 플래시 섹터 소거 와 소거 베리파이 순서도... 13 그림 2.1 읽기 타이밍도... 18 그림 2.2 프리프로그램 및 프로그램의 타이밍도... 19 그림 2.3 소거 타이밍도... 19 그림 2.4 프리프로그램 및 프로그램 베리파이의 타이밍도... 20 그림 2.5 소거 베리파이의 타이밍도... 20 4
Flash MCU(HMS39C7092) 표 목 차 플래시메모리 표 2.1 내부 레지스터를 선택하기 위한 FR_SEL 값... 16 표 2.2 레지스터 억세스를 하기 위한 외부 핀의 설정... 16 표 2.3 소거 섹터 레지스터... 17 표 2.4 내장 플래시 PROM 모드 읽기 및 쓰기를 위한 설정... 18 표 3.1 DC 특성... 24 표 3.2 AC 특성... 24 표 3.3 프로그램 파라미터... 25 5
플래시메모리 Flash MCU(HMS39C7092) 6
Flash MCU(HMS39C7092) 플래시롬 알고리즘 제1장 내장 플래시롬 알고리즘 7
플래시롬 알고리즘 Flash MCU(HMS39C7092) 1.1 플래시 메모리 프로그램 및 소거 시스템 상에서 플래시 메모리를 프로그램하거나 소거하기 위해서는 CPU 를 이용 한 소프트웨어적인 방법이 이용됩니다. 플래시 메모리의 동작 모드에는 통상 읽기 모드, 프리프로그램/프로그램 모드, 소거 모드, 프리프로그램/프로그램-베리파이 모 드, 그리고 소거 베리파이 모드의 5 가지가 있으며 이러한 동작 모드의 설정은 플 래시 제어 레지스터 FMCR 를 이용해서 합니다. 플래시 메모리는 프로그램이나 소거 중에는 읽을 수 없으므로 플래시 메모리를 프로그램하고 소거하는 부분은 내부 플래시 메모리 이외의 내부 SRAM 또는 외부 메모리에서 실행되어야 합니 다. 1.1.1 프로그램 및 프로그램 베리파이 플래시 메모리에 데이터를 쓸 경우 그림 1.1의 프로그램 순서도를 따라야 합니다. 내부의 플래시 메모리는 한번에 16-비트 단위로 프로그램될 수 있습니다. 프로그램 베리파이 모드에서는 플래시 메모리가 정확히 써졌는지 알기 위해 플래시 메모리를 읽어보는 모드로써 특정 주소에 대해 베리파이한 결과와 그 주소에 프로그램한 데이터가 같지 않을 경우에는 두 내용이 일치할 때까지 프로그램과 프로그램 베리파이를 반복해야 합니다. 그러나 만약 프로그램과 프로그램 베리파이가 N_PGM 번 반복되어도 두 내용이 일치하지 않을 경우 프로그램이 실패한 것으로 처리합니다. 표 3.3 프로그램 파라미터 참조 8
Flash MCU(HMS39C7092) 플래시롬 알고리즘 Trial Count 0 T_pgm T_PGM addr start address (addr) 0xFFFF Program Phase FMPR 0x02 FMCR 0x01 wait for Tpup T_pgm T_pgm + T_PGMR FMCR 0x05 (addr) data wait for T_pgm addr addr + 2 addr =endaddress? (addr) 0xFFFF FMCR 0x00 wait for Tpdw Verify Phase addr start address FMCR 0x10 wait for Tpup (addr) 0xFFFF wait for T_VFY addr addr + 2 (addr) =data? and addr <endaddress? FMCR 0x00 FMPR 0x00 wait for Tpdw Trial Count++ >N_PGM? addr =endaddress? (verify is OK?) Fail OK 그림 1.1 프로그램 및 프로그램 베리파이 순서도 9
플래시롬 알고리즘 Flash MCU(HMS39C7092) 1.1.2 프리프로그램과 프리프로그램 베리파이 모드 프리프로그램과 일반 프로그램은 동일한 레지스터 설정을 갖고 있지만, 특정 어드 레스에 데이터를 쓰는 것은 프로그램으로, 소거를 위해 섹터 영역을 프로그램하는 것은 프리프로그램으로 정의하고 있습니다. 이 모드는 플래시 메모리를 소거하기 위한 첫번째 단계로 소거하기 전에 반드시 프리프로그램과 프리프로그램 베리파이를 실행하여 플래시 메모리의 내용을 모두 '0' 으로 만들어야 합니다. 프리프로그램은 소거할 섹터를 대상으로 섹터 내의 전 영역을 동일한 '0' 값으로 프로그램함으로 인해 모든 플래시 셀이 같은 전위 레벨(프로그램 상태)로 되므로 이미 소거되어 있는 플래시 셀('1' 값을 가진 셀)을 다시 소거하여 과소거(Over- Erase)가 되는 것을 방지합니다. 프리프로그램 모드에서 프리프로그램을 시작하는 어드레스는 소거할 섹터의 시작 어드레스로 설정하며 그 섹터의 마지막 어드레스까지 어드레스를 2 씩 증가시키 며 '0x0000'을 프로그램합니다. 표 2.3 에 섹터와 그에 대응하는 플래시 메모리의 어드레스가 표시되어 있습니다. 섹터 내부의 모든 셀이 성공적으로 프로그램 되었 는지 확인 하기 위해 프리프로그램 베리파이 동작이 필요합니다. 프리프로그램 베 리파이의 설정은 프로그램 베리파이의 설정과 동일합니다. 프리프로그램과 프리프로그램 베리파이 순서는 그림 1.2 과 같습니다. 10
Flash MCU(HMS39C7092) 플래시롬 알고리즘 Trial Count 0 T_prepgm T_PGM addr start of block (addr) 0xFFFF Pre-program Phase FMPR 0x02 FMCR 0x01 wait for Tpup T_prepgm T_prepgm + T_PGMR FMCR 0x05 (addr) 0x0000 wait for T_prepgm addr addr + 2 ptr=end of block? (addr) 0xFFFF FMCR 0x00 wait for Tpdw Verify Phase addr start of block FMCR 0x10 wait for Tpup (addr) 0xFFFF wait for T_VFY addr addr + 2 (addr)=0x0000? and addr <end of block? FMCR 0x00 FMPR 0x00 wait for Tpdw Trial Count++ >N_PGM? addr =end of block? (verify is OK?) Fail OK 그림 1.2 플래시 섹터 프리프로그램과 프리프로그램 베리파이 순서도 11
플래시롬 알고리즘 Flash MCU(HMS39C7092) 1.1.3 소거 및 소거 베리파이 모드 플래시 메모리의 소거 동작은 섹터 단위로 수행됩니다. 플래시 메모리를 소거하기 위해서는 소거 섹터 선택 레지스터인 FESR 에 소거할 영역을 설정해야 합니다. 만약 FESR 에 한번에 여러 비트를 1 로 두게 되면 여러 개의 섹터를 한번에 소 거할 수 있습니다. 한번에 소거 할 수 있는 섹터의 갯수는 최대 4 개입니다. 소거한 섹터 내부의 모든 셀이 성공적으로 소거되었는 지 확인하기 위해서 소거 후에 소거 베리파이를 실행합니다. 소거 베리파이 모드에서 베리파이를 시작하는 어드레스는 소거한 섹터의 시작 어드레스로 설정하며 그 섹터의 마지막 어드레스 까지 2 씩 어드레스를 증가시키며 비교합니다. 표 2.3 에 소거 섹터와 그에 대응 하는 플래시 메모리의 어드레스가 표시되어 있습니다. 만약 특정 어드레스의 소거 베리파이 결과가 소거된 상태, 죽 0xFFFF 가 아니면 소거될 때까지 반복해서 실 행합니다. 그러나 소거와 소거 베리파이가 N_ERASE 번까지 반복되어도 베리파 이 결과가 0xFFFF 가 아니면 소거가 실패한 것으로 처리합니다. 내부 플래시 메모리의 소거 순서는 그림 1.3 과 같습니다. 주의 주의: 지정한 시간 이상의 과도한 소거를 수행할 경우 내장 플래시 메 모리가 영구적으로 파손될 수 있습니다. start 프리프로그램 및 프리프로그램 베리파이 프리프로그램 성공? 소거 및 소거 베리파이 소거 성공? 블록 변경 다음 블록 소거? Fail end 그림 1.3 플래시 소거 알고리즘 표 3.3 프로그램 파라미터 참조 12
Flash MCU(HMS39C7092) 플래시롬 알고리즘 Trial Count 0 T_erase T_ERASE FMPR 0x12 Erase Phase FMCR 0x02 wait for Tpup If Trial Count >= 3 and Trial Count < 20 and Trial Count is Even then, T_erase T_erase + T_ERASER FESR sector-to-erase FMCR 0x0A wait for T_erase FMCR 0x00 FMPR 0x00 wait for Tpdw Verify Phase addr start of block FMCR 0x20 wait for Tpup (addr) 0xFFFF wait for T_VFY addr addr + 2 (addr)=0xffff? & addr< end of block? FMCR 0x00 wait for Tpdw Trial Count++ >N_ERASE? addr=endaddress? (verify is OK?) Fail OK 그림 1.4 플래시 섹터 소거 와 소거 베리파이 순서도 13
플래시롬 알고리즘 Flash MCU(HMS39C7092) 14
Flash MCU(HMS39C7092) PROM 모드 인터페이스 제2장 PROM 모드 인터페이스 15
PROM 모드 인터페이스 Flash MCU(HMS39C7092) 2.1 플래시 메모리 PROM 모드 HMS39C7092 는 플래시 메모리를 프로그램/소거하기 위해서 인-시스템-프로그램 (ISP) 모드 뿐만 아니라 PROM 모드도 지원합니다. PROM 모드에서는 PROM 과 유사하게 어드레스와 데이터 및 제어 신호가 입력 및 출력이 되므로, 외부에서 PROM 과 같이 억세스하면서 자체 PROM 알고리즘을 이용하여 프로그램 및 소거 가 가능합니다. 2.1.1 PROM 모드 설정 PROM 모드는 MD[2:0]의 핀을 모드 1 로 설정하므로써 동작 됩니다. 이때의 핀의 설정은 통상모드와는 별도로 정의된 핀 배치로 작동됩니다. 표 2.1 과 같이 FR_SEL 핀을 설정하여 내부 플래시 메모리의 내부 레지스터를 FD 를 통해 직접 쓰거나 읽을 수 있습니다. FR_SEL 이 설정되고 FWEB 의 상승 에지가 발생하면 FD 에 실린 데이터가 FR_SEL 에 의해 선택된 레지스터로 써 집니다. FR_SEL 이 설정되고 FOEB 가 L 이면 선택된 레지스터의 현재 값이 FD 를 통해서 출력됩니다. 표 2.2 은 레지스터를 읽거나 쓰기 위한 FR_SEL 이외의 외부 핀들의 설정을 보여줍니다. 표 2.1 내부 레지스터를 선택하기 위한 FR_SEL 값 FR_SEL[2:0] 레지스터 읽기 레지스터 쓰기 000 Sense Data 예약 001 FMAR FMAR & FMDR 010 FMDR 예약 011 FMCR FMCR 100 FESR FESR 101 FMPR FMPR 표 2.2 레지스터 억세스를 하기 위한 외부 핀의 설정 레지스터 핀 명칭 모드 FRSTB FCEB FWEB FOEB FD FA 읽기 H L H L 읽어낸 값 어드레스 쓰기 H L H 써넣을 값 어드레스 16
Flash MCU(HMS39C7092) PROM 모드 인터페이스 2.1.2 메모리 맵 PROM 모드에서 내부 플래시는 96K x 16 비트 메모리로 구성되어 있습니다. 이에 따라 내부 플래시 메모리를 직접 억세스할 경우에는 어드레스가 16 비트 단위로 구성되어 있으므로 실제 어드레스/2 의 값을 FA [17:1] 의 어드레스 입력으로 주어 야만 됩니다. 소거 동작은 섹터 단위로 수행되며 각 섹터에 대응되는 어드레스는 표 2.3 와 같습니다. 표 2.3 소거 섹터 레지스터 섹터 번호 섹터 크기 FA [17:1] 내부 시작 어드레스 0 8KB (4K-워드) 0x00000 ~ 0x00FFF 0x0800_0000 1 8KB (4K-워드) 0x01000 ~ 0x01FFF 0x0800_2000 2 24KB (12K-워드) 0x02000 ~ 0x04FFF 0x0800_4000 3 24KB (12K-워드) 0x05000 ~ 0x07FFF 0x0800_A000 4 32KB (16K-워드) 0x08000 ~ 0x0BFFF 0x0801_0000 5 32KB (16K-워드) 0x0C000 ~ 0x0FFFF 0x0801_8000 6 32KB (16K-워드) 0x10000 ~ 0x13FFF 0x0802_0000 7 32KB (16K-워드) 0x14000 ~ 0x17FFF 0x0802_8000 2.1.3 PROM 모드 동작 내부 플래시 메모리에 대해 통상의 읽기 동작은 어드레스를 인가한 후 데이터를 읽음으로써 수행되지만, 프로그램, 소거, 읽기 같은 동작은 플래시 메모리의 레지 스터를 쓰고 읽음으로써 수행됩니다. 표 2.4 은 플래시 메모리의 동작 모드들과 그 때 PROM 모드에서 레지스터를 읽고 쓰는 순서를 나타냅니다. 플래시 메모리 읽기와 소거를 제외한 모든 동작 모드는 첫 번째와 두 번째 사이클에서 어떤 모 드인지가 결정됩니다. 그리고 네 번째 사이클에서 프로그램이나 베리파이할 플래 시 메모리 어드레스를 설정합니다. 따라서 첫 번째 어드레스에 이어 다음 주소를 프로그램하거나 베리파이 하기 위해서는 네 번째 사이클만 반복하면 됩니다. 베리 파이 동작(프리프로그램/프로그램 베리파이와 소거 베리파이)에서는 베리파이한 결과를 FD [15:0] 핀으로 읽기 위해서 네 번째 사이클 뒤에 통상 읽기 동작을 수 행해야 됩니다. 17
PROM 모드 인터페이스 Flash MCU(HMS39C7092) 표 2.4 내장 플래시 PROM 모드 읽기 및 쓰기를 위한 설정 Operation FR_ SEL 1st Cycle 2nd Cycle 3rd Cycle 4th Cycle Dir rmal Read 000 R Program/ Pre-program 101 W Erase 101 W Pre-program Verify 101 W Addr FR_ Addr FR_ Addr FR_ Addr Dir 모드 모드 Data SEL Data SEL Data SEL Data RA Din X X - WA 011 W 011 W 001 W 02 01 05 Dout X X X X 011 W 100 W 011 W 12 02 SN 0A X X RA 011 W 001 R 02 10 Din Erase Verify X X RA 101 W 011 W 001 R Read 00 20 Din 범례 RA: 읽기 어드레스 WA: 쓰기 어드레스 Din: 읽기 데이터 Dout: 프로그램 데이터 X: don t care R: 읽기 W: 쓰기 SN: 소거 섹터 번호 (표 2.3 참조) 2.1.4 플래시 타이밍과 AC/DC 특성 (preliminary) 이 타이밍도는 표 2.4 에 설명된 동작 순서를 따릅니다. FRSTB TACC FA[17:1] RA TR_SEL FR_SEL[2:0] XXX 000 TCEB FCEB TOEB FOEB FWEB TOEBH FD[15:0] Dout 그림 2.1 읽기 타이밍도 18
Flash MCU(HMS39C7092) PROM 모드 인터페이스 Trs t Tpup Tpgm Tpdw FRS TB FA [1 6 :0 ] FCE B FW E B D on t C are Addr(XXXXXh W A) D o n t C a re A d dr(xx X X Xh ) Tc e s Tw e p FO E B FR_ S E L[2 :0 ] FD [1 5 :0 ] 0 0 1b 0 1 1b 0 1 1b 0 0 1b Td s Td h D in 0005h 0000h F FFF h 그림 2.2 프리프로그램 및 프로그램의 타이밍도 Trst Tpuo Tera Tpdw FRSTB FA[16:0] Don t Care FCEB FWEB Tces Twep FOEB FR_SEL[2:0] 001b 100b 011b Tds Tdh FD[15:0] 0002h SN 000Ah 1 st Cycle 2 nd 3 rd Cycle Cycle 그림 2.3 소거 타이밍도 19
PROM 모드 인터페이스 Flash MCU(HMS39C7092) FRSTB Trst Tvfy Tdout Tpdw FA[16:0] FCEB FWEB Tces Twep RA(Valid) FOEB FR_SEL[2:0] FD[15:0] 101b 011b 001b Tds Tdh 0001h 0010h X 000b Dout 1 st Cycle 2 nd Cycle 3 rd Cycle Read Cycle 그림 2.4 프리프로그램 및 프로그램 베리파이의 타이밍도 FRSTB Trst Tvfy Tdout Tpdw FA[16:0] FCEB FW EB Tces Tw eb RA(Valid) FOEB FR_SEL[2:0] FD[15:0] 101b 011b 001b TdsTdh 0000h 0020h X 000b Dout 1 st Cyc le 2 nd Cycle 3 rd Cycle Read Cycle 그림 2.5 소거 베리파이의 타이밍도 20
Flash MCU(HMS39C7092) PROM 모드 인터페이스 21
PROM 모드 인터페이스 Flash MCU(HMS39C7092) 22
Flash MCU(HMS39C7092) 전기적 특성 및 동작 파라미터 제3장 전기적 특성 및 동작 파라미터 23
전기적 특성 및 동작 파라미터 Flash MCU(HMS39C7092) 표 3.1 DC 특성 (V DD = 3.3V, Vss = 0V, FTVPPD = 5V, Ta = 25 C ) Vcc current 항 목 기호 Min Typ Max 단위 Input high voltage Vih 0.7x V DD - V DD +0.5 V Input low voltage Vil -0.5-0.3x V DD V 조 건 Output high voltage Voh 2.4 - - V Ioh=0.8mA Output low voltage Vol - - 0.4 V Iol=0.8mA Read Idd - 20 40 ma Program Idd - 40 80 ma Erase Idd - 25 50 ma FXTVPPD Current Program lppd - 10 20 ma 표 3.2 AC 특성 (V DD = 3.3V, Vss = 0V, FTVPPD = 5V, Ta = 25 C ) 항 목 기호 Min Typ Max 단위 CEB output delay time TCEB - 90 130 ns OEB output delay time TOEB - 5 10 ns Output disable delay time TOEBH 1 2 - ns R_SEL output delay time TR_SEL - 1 2 ns Access time TACC - 90 130 ns Reset Pulse Width Trst 300 500 - us Power up time Tpup 8 10 - us Discharge time(program,verify) Discharge time(erase) Tpdw Program time Tpgm 20 30 - us CEB Setup time Tces 100 200 - us WEB Pulse Width Twep 100 200 - ns WEB rise time Tr - 20 30 ns WEB fall time Tf - 20 30 ns Data Setup time Tds 50 150 - ns Data Hold time Tdh 50 80 - ns Erase time Tera 100 500 10000 us Verify Setup time Tvfy 5 10 - us Verify Data out time Tdout 90 - - us 1 10 10 20 - us us 24
Flash MCU(HMS39C7092) 전기적 특성 및 동작 파라미터 표 3.3 프로그램 파라미터 (V DD = 3.3V, Vss = 0V, FTVPPD = 5V, Ta = 25 C ) 항 목 기호 Min Typ Max 단위 program iteration N_PGM - - 50 count erase iteration N_ERASE - - 50 count program time T_PGM 10 - - us program retry time T_PGMR 0 - - us erase time T_ERASE 100-10000 us erase retry time T_ERASER 100-1000 us verify time T_VFY 5 10 - us 25
전기적 특성 및 동작 파라미터 Flash MCU(HMS39C7092) 26