USB-IK01 User s Manual AN2131, EZ-USB and Cypress are trademarks of Cypress Semiconductor, Keil and uvision2 are trademarks of Keil software. Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. XILINX, XC9536XL, are trademarks of XILINX. We acknowledge that the trademarks or service names of all other organizations mentioned in this document as their own property. The information in this document is subject to change without notice and no part of this document may be copied or reproduced without the prior written consent. Copyrights 2005 DAQ system, All rights reserved. - 1 -
-- 목차 -- 1. 개요 2. USB-IK01 사양및기능 3. USB-IK01 사용설명 3.1 USB-IK01 개념 3.2 내용물확인 3.3 메모리맵 4. EPLD(XC9536XL) 프로그램 5. 시험 4.1 VHDL 소스설명 4.2 ISE를이용한 VHDL 컴파일 4.3 ISE를이용한칩프로그램 5.1 시험준비 5.2 PCF8754 시험 5.3 EPLD시험 5.4 RAM Test 부록 (Appendix) References A 보드커넥터 PIN Map - 2 -
1. 개요 USB-EK01은최소한의메모리및 I/O를이용하여다양한시험을할수있는평가용보드로설계가되었다 (USB-EK01 Users Manual 참조 ). 대부분의시험및응용에는내부 8K Byte 메모리는충분하였지만, 프로그램용량이크거나많은데이터메모리를요구하는응용에는한계가있었다. 따라서, 외부메모리사용이필요하게되었고, 또한추가 I/O 확장그리고사용자가하드웨어구성을바꿀수있는개념으로 USB-EK01의외부확장커넥터에연결하여사용할수있는 USB-IK01 보드를설계하게되었다. [ 그림 1-1. USB-EK01 외형 ] 0xFFFF AN2131QC Internal 0x7FFF 0x7B40 0x27FF 0x2000 0x1FFF 0x1B40 0x1B3F REGs/Buffers DATA REGs/Buffers USB control registers 192 Bytes 16x64 Bulk End points (1024 Bytes) SFR IDATA XDATA/ CODE 6,976 Bytes 0x0000 DATA BDATA REGs EA = 0 [ 그림 1-2. USB-EK01(AN2131) 메모리맵 ] - 3 -
2. USB-IK01 기능및사양 < 기능 > - USB-EK01 기능확장 ( 메모리, I/O 등 ) - XLINX FPGA/EPLD 프로그램인터페이스 ( 별도의인터페이스장치필요없음 ) - EPLD Programming에의한하드웨어변경 ( 메모리위치 ) - EPLD를통한 I/O 확장 - I2C 통한 I/O 확장 < 사양 > - 외부 RAM 32K - 외부 ROM(Flash) 64K - 추가 8개의범용 I/O (I2C 시리얼인터페이스 ) - 36개의프로그램가능한매크로셀 - 4 -
Extention Connectors 3. USB-IK01 사용설명 3.1 USB-IK01 개념 USB-IK01 EPLD 36 Macro- Cell CON CON USB-EK01 ROM (Flash) 64K Switchs & LEDs EPLD Program Interface Dsub 25p Host(PC) RAM 32K 8 I/O (I2C) [ 그림 3-1. USB-IK01 기능블록도 ] USB-IK01은점선박스로표시된것과같이크게두부분으로분리된다 ( 전기적으로도완전분리됨 ). 먼저, EPLD(XC9536XL) 를이용한메모리및 I/O 확장부분과, EPLD 프로그램을자체적으로할수있게하는인터페이스부분이다. 따라서, 별도의 EPLD 프로그래머가필요없이하드웨어구성을바꿀수있도록하였다. [ 그림 3-2. USB-IK01 를프로그래머로사용하는모습 ] - 5 -
[ 그림 3-3. USB-IK01 의 EPLD 를자체프로그램연결모습 ] [ 그림 3-2] 와 [ 그림 3-3] 에서보듯이자체적으로 EPLD 를프로그램할수있고또한, 다른보드의프로그래머로사용할수도있다. 3.2 내용물확인 [ 그림 3-4. USB-IK01 주요내용물 ] (1) USB-IK01 Evaluation board (2) 25Pin Parallel 케이블 (3) 10Pin Flat 케이블 (EPLD 프로그램 ) - 6 -
3.3. 메모리맵 [ 그림 1-2] 에서보듯이 USB-EK01 자체의메모리는데이터및프로그램용으로동시에사용할수있는내부 8K RAM이전부이다. 하지만, [ 그림 3-5] 와같이두개의보드를연결할경우 USB-IK01에장착되어있는 RAM 32K, ROM(Flash) 64K를사용할수가있다. [ 그림 3-5. USB-IK01 와 USB-EK01 이결합된모습 ] 0xFFFF USB-IK01 Board (Note) Can be programed the location by EPLD programming and DIP sw. 0x7FFF AN2131QC Internal RAM32K CODE or XDATA FLASH 64K CODE 0x2000 0x1B40 0x0000 [ 그림 3-6. USB-IK01 와 USB-EK01 의결합시메모리맵 (EA = 0)] - 7 -
그리고, 칩의 EA pin 의상태에따라서 [ 그림 3-6] 과 [ 그림 3-7] 에서처럼프로그램 메모리의사용방법이틀려지는데, 여기서 EA pin 의상태는 EPLD 에서외부 DIP 스위 치입력을받아서처리할수있도록하였다. 0xFFFF USB-IK01 Board (Note) Can be programed the location by EPLD programming and DIP sw. 0x7FFF AN2131QC Internal RAM32K CODE or XDATA FLASH 64K CODE 0x2000 0x0000 [ 그림 3-7. USB-IK01 와 USB-EK01 의결합시메모리맵 (EA = 1)] EA pin 이 High Level 1 일경우외부데이터메모리영역은영향을받지않으며, AN2131 칩내부 RAM 은일반데이터메모리로사용할수있다. - 8 -
4. EPLD(XC9536XL) 프로그램 EPLD를프로그램하기위하여는아래그림과같이두개의보드를결합하고, 프린터케이블을 PC와 USB-IK01간에연결하고, 그림에서보이는파란색원안의두개의커넥터를 [ 그림 4-1] 과같이 Flat 케이블로연결한다. [ 그림 4-1. USB-IK01 의 EPLD 프로그램모습 ] 4.1 VHLD 소스설명사용한 VHDL 소스는 USB-EK01과함께제공되는 CDROM의 Hardware\ USB-IK01 폴더에서찾을수있다. 아래는 VHDL 소스의일부를발췌한것이다. 여기에서 MM은 in std_logic_vector(1 downto 0) 으로정의가되어있고, DIP switch의 3번과 4번에연결이되어있고, ON 시 0 OFF 시 1 로동작을한다. DIP switch 3번이 Bit0이다. 도면과소스를함께분석해가면서자신이원하는동작을할수있도록프로그램소스를고쳐서사용하기바란다. - 9 -
<VHDL 소스발췌 > decode_prog:process(nreset,mm) begin if ( nreset = '0') then nce <= "11"; noe <= "11"; EA <= '0'; else case MM is when "00" => -- No external memory nce <= "11"; noe <= "11"; EA <= '0'; when "01" => -- RAM is located at address 0x8000 nce(2) <= not A(15); nce(1) <= '1'; noe(2) <= npsen and PC(7); noe(1) <= '1'; EA <= '0'; when "10" => -- RAM(0x0) ROM(0x8000) nce(2) <= A(15); nce(1) <= not A(15); noe(2) <= npsen and PC(7); noe(1) <= npsen and PC(7); EA <= '0'; when "11" => -- ROM(0x0), RAM(0x8000) nce(2) <= not A(15); nce(1) <= A(15); noe(2) <= npsen and PC(7); noe(1) <= npsen and PC(7); EA <= '1'; when others => NULL; end case; end if; end process; nwe <= PC(6); USER <= (others => '0'); SM1 <= BOOT; ncon <= BOOT; -- Write enable nprog <= PA(0) when PA(1) = '0' else CLK1MHz; SPARE(1) <= CLK1MHz; nwakeup <= nint and nsw_st; PA2 <= nsw_st; PA3 <= nint; SPARE(2) <= A(14) and BKPT; - 10 -
4.2 ISE를이용한 VHDL 컴파일 USB-IK01에사용된 EPLD는 XILINX사에서판매하는 XC9536XL을이용하였고사용한컴파일프로그램도 XILINX사의 ISE(Integrated Software Environment) 를이용하였다. ISE는 XILINX에서구입하거나평가판을 www.xilinx.com에서내려받아서사용할수가있다. 아래의그림은 ISE를실행한화면모습이다. [ 그림 4-2. ISE 실행화면 ] 자세한프로그램사용법은매뉴얼을참조하기바란다. 매뉴얼은 XILINX 웹사 이트나프로그램인스톨시에함께설치된다. - 11 -
4.3 ISE를이용한칩프로그램 ISE를이용하여 VHDL 컴파일및 Implementation이끝나게되면최종적으로생성이되는것이 JEDEC 파일이다. 이파일을 EPLD 칩에기록하여원하는기능을하도록하는데, 아래의그림은 JTAG 인터페이스 (Boundary Scan) 를이용하여프로그램하는것을보이고있다 (impact는 ISE를설치할때함께설치된다 ). [ 그림 4-3. impact 실행화면 ] 자세한프로그램사용법은매뉴얼을참조하기바란다. 매뉴얼은 XILINX 웹사이 트나프로그램인스톨시에함께설치된다. - 12 -
5. 시험 [ 그림 4-1] 과같이케이블 (RS232, USB) 을연결한다. 이때 EPLD 프로그램을하지않을경우에는프린터케이블을연결할필요는없다. 5.1 시험준비 시험에는통신프로그램 comm.exe가사용되면, 설정값은 38400bps, 8bit, No parity, 1 stop bit 이다. 먼저, 시험에필요한 DIP 스위치설정을한다. DIP 스위치의 설정내용은 [ 표 1.] 과같다. ( 자세한내용은 VHDL 소스를참조하기바람.) EPLD의내용은사용자가임의대로수정할수있기에아래의 DIP 스위치내용은 사용자프로그램에따라서변할수있음. [ 표 1.] 스위치번호 내 용 비고 1 PCF 8574의입력포트 (bit7) 에연결되어있으며 ON 시 8574의입력을읽으면 0 으로읽힘. 2 ON 시 16bit 어드레스시리얼 EEPROM을선택하도록 하여 EEPROM에서 VID, PID를읽어올수있게함. 24LC64의경우 16bit 어드레스 EEPROM임. OFF 일 경우 EZ-USB 코어에서시리얼 EEPROM이없는것으 로인식함 (24LC00 예외 ) 3 Memory Mode Bit0으로 ON 시 0 임 4 Memory Mode Bit1으로 ON 시 0 임 MM 이 00 일경우외부메모리를사용하지않음. 즉, 내부 8Kbyte RAM만을사용함. MM 이 01 일경우외부 RAM 만을사용함. MM 이 10 일경우외부 RAM과 ROM을사용함. RAM 어드레스 0x0000, ROM 어드레스 0x8000 MM 이 11 일경우외부 RAM 과 ROM을사용함. EA(External Access) 핀은 1 임, 즉프로그램을외부 ROM에서읽어옴 ROM 어드레스 0x0000, RAM 어드레스 0x8000-13 -
[ 그림 5-1. USB-IK01 외부입 / 출력 ] [ 그림 5-1] 을보게되면, 시험에사용될보드의입 / 출력을확인할수있다. 그리고, 시험방법및사용프로그램에대하여는 USB-EK01 사용자매뉴얼 의 5 장 을참조하기바람. - 14 -
5.2 PCF8574 시험시험에사용되는파일은 CDROM의 Software\Example\USB-IK01\ PCF8574 폴더에서찾을수있으며, pcf8574.hex 를내려받아시험한다. 실행을하게되면, 시리얼포트를통하여주기적으로 8574의입력값을전송한다. 전송되는내용은 COMM.exe 를이용하여확인할수있다. 여기에서 스위치 #2 를누르게되면, 값이바뀌게되는데 [ 그림 5-2] 에서보면값이 0xFB 에서 0xF9로바뀐것을알수있다. [ 그림 5-2. PCF8574 시험모습 ] - 15 -
5.3 EPLD 시험시험에사용되는파일은 CDROM의 Software\Example\USB-IK01\EPLD 폴더에서찾을수있으며, epld.hex 를다운로드하여시험한다. 실행을하게되면, 시리얼포트를통하여주기적으로 PCF8574 및 8051 포트 A의값을읽어서전송한다. 전송되는내용은 COMM.exe 를이용하여확인할수있으며, 또한, LED 1/2가주기적으로점등한다. 여기에서 스위치 #1 이나 스위치 #2 를누르게되면, 입력되는값이바뀌게된다. [ 그림 5-3] 을보게되면확인할수있다. [ 그림 5-3. EPLD 시험모습 ] - 16 -
5.4 RAM Test 시험에사용되는파일은 CDROM의 Software\Example\USB-IK01\ RAMTEST 폴더에서찾을수있으며, ramtest.hex 를내려받아시험한다. 실행을하게되면, 시리얼포트를통하여 스위치 #1 을누를것을요구한다. 스위치 #1 을누를경우 RAM번지 0x6000에서부터 0x7000까지 0x55값을기록하고확인한다. 다음번에다시 스위치 #1 을누를경우 RAM번지 0x6000에서부터 0x7000까지 0xAA값을기록하고확인한다. 전송되는내용은 COMM.exe 를이용하여 [ 그림 5-4] 와같이확인할수있다. [ 그림 5-4. RAM Test 시험모습 ] - 17 -
부록 (Appendix) A. 보드커넥터 (JP1 and JP5) PIN Map USB-IK01 보드양쪽에자리잡고있는커넥터로 USB-EK01과연결할수있다. ( 참조 3.3절 ) JP1 JP5-18 -
<JP1 커넥터 Pin Map> PIN 번호 명칭 설 명 1 SPARE1 EPLD Spare 1 2 SPARE2 EPLD Spare 2 3 GND Signal Ground 4 GND Signal Ground 5 N.C No Connection 6 SM1 Serial ROM select 1 (short to ground for 24LC64) 7 N.C No Connection 8 N.C No Connection 9 N.C No Connection 10 N.C No Connection 11 PA3 8051 General Purpose PortA 3 12 PA2 8051 General Purpose PortA 2 13 PA1 8051 General Purpose PortA 1 14 PA0 8051 General Purpose PortA 0 15 GND Signal Ground 16 WAKEUP# Wakeup input from CPU suspend 17 SCL I2C signal clock 18 SDA I2C signal data 19 BKPT Break Point 출력 20 3.3V 3.3V 전원공급 21 D6 Data bus 6 22 D7 Data bus 7 23 D4 Data bus 4 24 D5 Data bus 5 25 N.C No Connection 26 N.C No Connection 27 N.C No Connection 28 N.C No Connection 29 D2 Data bus 2 30 D3 Data bus 3 31 D0 Data bus 0 32 D1 Data bus 1 33 GND Signal Ground 34 GND Signal Ground - 19 -
35 N.C No Connection 36 N.C No Connection 37 N.C No Connection 38 N.C No Connection 39 3.3V 3.3V 전원공급 40 3.3V 3.3V 전원공급 <JP5 커넥터 Pin Map> PIN 번호 명 칭 설 명 1 N.C No Connection 2 N.C No Connection 3 N.C No Connection 4 RESET# Reset 출력 (Low Active) 5 N.C No Connection 6 PSEN# Program strobe Enable 7 3.3V 3.3V 전원공급 8 GND Signal Ground 9 3.3V 3.3V 전원공급 10 CLK24 CPU clock 24Mhz 11 A0 Address Bus 0 12 GND Signal Ground 13 A2 Address Bus 2 14 A1 Address Bus 1 15 A4 Address Bus 4 16 A3 Address Bus 3 17 A6 Address Bus 6 18 A5 Address Bus 5 19 EA External Access 입력 20 A7 Address Bus 7 21 A8 Address Bus 8 22 N.C No Connection 23 A10 Address Bus 10 24 A9 Address Bus 9 25 GND Signal Ground 26 A11 Address Bus 11-20 -
27 N.C No Connection 28 GND Signal Ground 29 N.C No Connection 30 N.C No Connection 31 A12 Address Bus 12 32 PC3 8051 General Purpose PortC 3 33 A14 Address Bus 14 34 A13 Address Bus 13 35 N.C No Connection 36 A15 Address Bus 15 37 PC6 8051 General Purpose PortC 6 38 N.C No Connection 39 N.C No Connection 40 PC7 8051 General Purpose PortC 7-21 -
References 1. EZ-USB Manual Technical Reference Manual V1.10 2. XC9500XL High-Performance CPLD Family Data Sheet 3. ISE Quick Start Tutorial 4. VHDL for PROGRAMMABLE LOGIC -- Cypress Semiconductor Corporation -- Xilinx Inc. -- Xilinx Inc. -- KEVIN SKAHILL, (Addison Wesley) - 22 -