|
오늘은 잠깐 곁가지로 새서,
EEPROM에 펌웨어를 구워보자. 이제까지 우리는 작성한 펌웨어를 EZ-USB Control Panel을 써서 CY7C68013으로 다운로드 해 왔다. 하지만 이러한 방법은 개발할 때에나 쓸 수 있는 것이고, USB장치를 사용할 때마다 사용자더러 이렇게 번거로운 절차를 행하라고 시킬 수는 없는 일 아닌가? 따라서 펌웨어를 EEPROM에 구워 넣고, 장치를 USB 포트에 끼워 넣으면 바로 우리가 코딩한 펌웨어에 따라 동작하는 USB 디바이스로 인식되게끔 만들어 보자. 먼저 EEPROM의 시작번지 첫 두 바이트에 0xFF 0xFF를 써 주어야 한다. 요 짓을 왜 하느냐 하면 아래에 설명하겠지만, EEPROM 이미지(xxx.iic 파일)를 EEEPROM(24LC64)에 써 넣는 일도 EZ-USB Control Panel을 사용해서 하는데, 만약 첫 두 바이트가 0xC0 0xXX 요렇게 이미 세팅되어 있다면 EZ-USB Control Panel이 아! EEPROM이 이미 프로그램 되어 있구나 하고 알아차리고는 덮어쓰기를 거부해 버린다. 따라서 EEPROM을 굽기 앞서 이 두 바이트를 지워주는 절차로서 “0xFF 0xFF”를 써주는 것이다. 자 어떻게 하는냐? EEPROM이 소켓에 잘 끼워져 있는지 확인부터 하시라. 끼워져 있는가? 그럼 빼시라. ㅋㅋㅋ (Tip. 처음 새 EEPROM을 끼울 때에는 접촉불량이 생길 수 있으므로, 그냥 세네번 끼웠다 뺐다를 반복해 주시라. 다리가 휘지 않도록 조심 하면서. 핀셋으로 하면 캡숑 좋다.) EEPROM을 “뺀” 상태에서 UniHigh 보드를 USB 포트에 꼽는다. 그리고 나서 EEPROM을 끼워라. 이제 EZ-USB Contrrol Panel을 연다. 먼저 EZ-USB Contrrol Panel의 “Download” 버튼을 누른다. ![]() C:CypressUSBExamplesFX2Vend_ax 폴더의 Vend_Ax.hex를 선택해서 다운로드한다. ![]() 아래와 같이 세팅하고 “Vend Req” 버튼을 누른다. ![]() 이제 24LC64의 첫 두 바이트가 지워졌다. 이제 리셋버튼을 누르거나 USB 포트에서 분리 후 다시 장착해서 장치관리자를 들여다 보자. ![]() 위와 같이 나오면 EEPROM이 잘 초기화 된 것이다. 이제 EEPROM을 프로그램 할 차례이다. EZ-USB Contrrol Panel의 “EEPROM” 버튼을 누른다. ![]() 굽고자 하는 펌웨어의 iic파일을 선택해 준다. ![]() 확인을 누르면 프로그램이 한 10초정도 응답이 없다가, 다 구워지면 커서가 깜빡거린다. ![]() 리셋버튼을 누르거나 USB 포트에서 분리 후 다시 장착해서 장치관리자를 들여다 보자. 우리가 짠 펌웨어대로 장치가 나타날 것이다. 이제는 우리가 만든 USB 디바이스를 아무 컴터에나 꼽기만 하면 인식이 될 것이다. (물론 드라이버가 깔려있거나, 깔아야 하고, 테스트 프로그램도 있어야 하지만…) 사족. 펌웨어 소스를 빌드한 결과물은 hex파일이고, EEPROM이미지는 iic파일이다. hex파일을 iic파일로 바꾸어주는 툴은 c:cypressusbin 폴더의 hex2bix.exe이다. 이 hex2bix.exe를 사용한 예는 Keil u-Vision으로 예제 프로젝트를 열고, ( 왼쪽 창에서 “Target 1”이 선택된 상태에서) 메뉴의 Project->Options for Target “Target 1”을 선택한 후에 “Output” 탭을 선택하면 아래와 같이 볼 수 있다. ![]() UniHigh 펌웨어와 BulkLoop 펌웨어의 세팅을 비교해 보시라. hex2bix를 실행시킬 때 파라메터가 어덯게 다른지. 디바이스 디스크립터의 VID와 PID를 바꾸면 이 파라메터도 같이 바꾸어 주어야 한다.
|
카테고리
메모장
UniHigh(FX2) Q&A WDM 드라이버(Driver) USB 개발 모듈(module) 장치(Device) High Speed 자작 강좌(강의) 전문가 CYPRESS CY7C68013 FTDI PHILIPS 최근 등록된 덧글
재미있게 쓰셨네요. 도움..
by 김찬 at 11/23 EP2CFG = 0xA2; S.. by 감사~ㅋ at 06/26 하드웨어 구매는 어떻게.. by 하니 at 06/22 강좌 감사합니다 by 하니 at 06/22 쉽게 설명해 주셔서 이해.. by 윤여준 at 05/13 전원부 회로에서 R4 100K.. by 푸른날개 at 02/26 머리가 한계를 느끼기 .. by 어리버리 관절염 at 02/19 검색하다 우연히 들렀습.. by bongpal2 at 02/01 감사합니다. 자료 정말 .. by 정태우 at 11/30 olo 강의 볼때마다 잡는.. by 까불이 at 10/11 skin by 이글루스 | |||