본문 바로가기

임베디드/하드웨어

USB Blaster 인식 안될 때...해결방법

Terasic Blaster는 altera사의 fpga를 사용하는데 많이 사용되는 blaster이다.

 

내 노트북은 windows 7-64bit OS가 설치되어 있는 상태에서 Quartus II V11.1 Web edition을 설치하였다. 그리고 usb blaster를 연결하였다. blaster를 연결하자 새로운 장치를 인식하였고 Quartus 설치 디렉토리에 있는 드라이버를 설치하였다. 장치관리자를 확인하여 보니 usb blaster가 정상적으로 설치 하였다. 그러나 RTA코드를 합성해서 다운로드 할려고 보니 USB Blaster가 목록에 나타나지 않았다.  상황은 아래의 그림과 같았다. auto detect단추를 눌러도 어떠한 blaster도 찼을 수가 없었다. 단지 연결도 되어있지 않는 Ethernet blaster만 나타난다. 

 
그래서 좀 더 옜날 버전인  Quartus II V11.0을 설치해 보았으나 증상은 동일했다. 하다 하다 않되어서 데스크탑에 똑같은 Quartus를 설치해 보니 바로 USB Blaster가 잡히더라.....짜증이 쓰나미처럼 몰려오더라....
인터넷을 헤매이다가 결국 해결책을 찼았다.

우선 원인은..Blaster의 드라이버는 잘 잡혔으나, USB의 장치들은 모두 고유의 Vendor ID, Product ID를 가지고 있는데, 이 ID가 다른 장비와 같은 것을 사용하면 충돌이 일어난다. USB Blaster가 인식이 않되는 이유는 이 것 때문이다.  

해결 방법은 VID와 PID를 바꿔주면 된다는 것이다.
그럼 이걸 어떻게 바꾸냐.... FTDI사는 자기네 USB제품의 팜웨어를 바꿀 수 있도록 MProg라는 프로그램을 제공한다. 이 프로그램을 이용하면 해당 USB의 팜웨어를 수정할 수 있다. 해당 프로그램은 인터넷에서 검색으로 쉽게 찼을 수 있다. 
 


위의 그림이 MProg 프로그램을 실행시킨 화면이다. 
1번 버튼을 누르면 연결되어있는 USB장치를 스캔한 후에 2번 창에 장치가 몇개 연결되어 있는지 찼는다. 나는 1개만 연결되어 있다. 그 후에 Read and Parse 버튼(아래 그림 참조)을 누르면 3번에 VID, 3번에 PID가 표기된다. 여기에 나타난 VID와 PID를 바꾸어 주어야 한다.  
*****지금 부터는 조심히 따라오기 바란다. 잘못하면 USB를 영원히 인식 못하는 사고가 터질 수도 있다. ***** 

1. 
 아래의 그림과 같이 연결된 USB의 팜웨어 정보를 읽어온다.
 


Read and Parse튼을 누르면 아래와 가튼 정보가 뜬다.


위의 사진에는 VID와 PID를 편집할 수  있도록 Edit창이 활성화 되어 있지만, 여러분들은 이 창이 비활성화 되어 있을 것이다.

2. 일단 해당 롬파일 정보를 저장해 둔다.(혹시 모르니까...) 저장 방법은 위의 아이콘 메뉴에서 디스켓 모양의 아이콘을 클릭하면 되며, 저장되는 파일의 확장자는 ept파일이다.

 
3.  아래 그림의 빨간색 버튼을 누르면 비활성화 되어있는 VID와 PID를 편집할 수 있다. 

 ***VID와 PID를 변결할 때, 내가 어떤 값으로 변경하는지 꼭 기억해 두어야 한다. 그렇지 못할 경우 다시는 해당 장비를 인식할 수 없는 상황까지 갈 수 있다.

4. VID와 PID를 변경하였으면, 아래의 버튼을 눌러서 EEPROM에 굽는다.

 
5. 그리고 나서 USB를 뽑고 다시 꼿는다. 그러면 새로운 장치를 다시 인식하는데, 드라이버를 찼지 못한다. 기존에 사용하였던 드라이버를 설치하려고 하여도 이미 VID와 PID가 바뀌었기 때문에 드라이버 설치가 불가능 하다. 그리고 MProg를 실행하여도 드라이버가 없기 때문에 USB를 인식하지 못한다. 아주 X같은 상황이 되는 것이다.

6. 나도 모른다....걍 USB Blaster를 집어 던진다.....가 아니고...ㅋㅋ
해당 디바이스 드라이버를 약간 수정해 주어야 한다. 기존에 사용하였던 드라이버 파일인 
usbblstr.inf을 에디트 창으로 열어본다. 그리고 VID와 PID의 값들을 모조리 내가 바꾼 값으로 바꾸어 준다. 그리고 저장한다. 

7. USB Blaster의 드라이버를 업데이트 한다.

8. Quartus를 다시 실행시켜보면 USB Blaster가 잡혀있는 것을 볼 수 있을 것이다.

이렇게 하면, 기존에 문제없이 쓰고있던 컴퓨터에서는 해당 USB Blaster를 인식할 수 없다. 이건 어쩔 수 없을 것 같다. 암튼 지랄맞다. ㅡ.ㅜ;;

이렇게 해도 인식이 안되는 경우는 아직 못봤는데...만약 인식이 않된다면...그냥 FPGA 개발을 포기하시라....ㅠ.ㅠ 왜냐....엄청 짱나니까..... 

참고로 원래 VID는
09FB, PID는 6001이고 내가 변경한 VID는 09FC이고 PID는 7008이었다.

아래는 이 방법을 알아낸 참고 사이트이다.

http://alteraforums.net/forum/showthread.php?t=22079