USB-JTAG 자작

요즘 PC 인터페이스에서는 병렬 포트가 사라져 가고 있다.
때문에 병렬 포트에 연결해서 잘 쓰던 바이트블라스터나 JTAG툴, AVR용 ISP
그리고 이와 유사하면서 값싸고 쓰기 편한 툴들을 더이상 사용하기가 힘들어 졌다.

그래서 만들었다.

<> TUSB3210 USB클라이언트 컨트롤러를 이용해 JTAG기능을 기본으로 함: ARM보드 플래시 프로그래밍과 같은 기능
<> SPI 인터페이스 기능을 펌웨어로 구현하여 타겟보드의 SPI 부팅/프로그래밍 가능: AVR-ISP와 같은 기능
<> TUSB3210이 가지고 있는 UART를 이용해 타겟보드의 UART 부팅/프로그래밍 가능: AD-DSP/TI-DSP 계열

언제나 그렇듯 회로도먼저 그린다.

그리고 아트웍

다음 작업은 애칭 및 부품 삽입 테스트...

PCMCIA카드용 아크릴 케이스가 눈에 띠길레 보호용 케이스로 사용했더니 나름 나쁘진 않다.

그리고 마지막 작업은 펌웨어 코딩 -> 디바이스드라이버 코딩 -> 어플리케이션 코딩 으로 이어지는
아주 간단한(?) 삽질들만 남았다.

SPI나 UART를 이용해 부팅/프로그래밍 하는 타겟보드를 아직 구하지 못해서
SPI 및 UART 기능은 나중에 타겟 보드들이 구해지면 구현 하기로 하고
우선 JTAG관련 기능들만 구현하였다.

TMS320F2812 보드가 한개 잡히는게 있어서 IDCODE를 읽어 보는것으로
기본 구현을 하였다. EXTEST기능을 이용해 CPU외부 EEPROM등을 구워 보면 좋을텐데
이런 타겟 보드 역시 수중에 갖고 있는게 없어 외부 EEPROM I/O 테스트는 해보지 못했다
이역시 타겟 보드가 구해지고 시간이 나면 구현해봐야 겠다.

----------------------------------------------------------------------------------
아래 ALL03 USB 어댑터처럼 문서화된 파일과 함께 배포하려 했으나 아직 문서화 작업을
진행 하지 못해 문서는 제외하고 배포합니다.
내용 업데이트 및 문서화가 진행되면 아래 링크도 같이 업데이트 됩니다.

USB-JTAG 회로도 (Rev:1.1): 다운로드
테스트용 어플리케이션 소스 (Ver:0.5): 다운로드
32bit Windows XP용 디바이스 드라이버 및 펌웨어 팩: 다운로드 페이지

배포하는 회로도 및 소스/바이너리 파일들은 아직 버그가 많이 있을 수 있습니다.
배포된 회로도 및 소스/바이너리 파일들의 저작권은 저에게 있으며 제작자 동의없는
상업적 이용을 금지합니다.
----------------------------------------------------------------------------------

배포되는 소스나 바이너리들의 버전 관리를 해야하는데,
블로그에 몇줄 글쓰기도 빠듯해서리...

다운로드 페이지를 따로 만들어야 겠군...

ALL03 USB adapter D.I.Y.

[본 게시물은 영문으로도 제공 합니다]

[I will attach English description for this page, because I'v got lots of information for ALL03 univeral programmer from non-Korean web pages especially http://matthieu.benoit.free.fr'(thank you Matthieu Benoit) and I want to share my result with them. I ask for understanding for my lack of English.]




대학다닐때 아르바이트 비용을 모아 로봇을 만들기 위해 청계천 상가에서 거금을 들여
ALL03이라는 프로그래머를 샀었다. 근데 요게 인터페이스가 ISA 방식이라 요즘 PC에서는
사용 할 수가 없어 한쪽 구석에 쳐박혀 있었다.
웹 서핑중 우연히 이 ALL03에 대한 내부 회로도와 간단한 테스트가 가능한 소스를 구할 수가 있어서 여기에 TUSB3210 USB 슬레이브 컨트롤러를 달아 USB인터페이스가 가능하도록 해봤다.

I have an ALL03 universal programmer that has only legacy ISA interface.
So it can not be used with recent PC environment. But, I'v found schematics, diagrams and test program sources from Matthieu Benoit's home page, and I started to develop USB interface adapter for ALL03 universal programmer with this helpful information.
I'll use the name of 'ALL03 USB adapter' for my project.

You may can get useful information from below link (Matthieu Benoit's blog).
http://matthieu.benoit.free.fr

The TI's USB client controller TUSB3210 is used for this project. It has on-die 8051 controller with USB engine so you can program your own USB client. Your 8051 firmware can be downloaded through USB connection or can be stored at external serial-EEPROM.

우선 TUSB3210과 3.3V-5V인터페이스가 가능한 버퍼를 이용해 회로를 꾸민다.
The first of all is designing schematics.

다음으로 아트웍 작업 진행
And then, doing artwork.

동판 애칭 및 부품 삽입
Etching, soldering, testing...

최종 완성
This is my result.

ALL03 프로그래머는 +-12V와 5V전원이 필요해 외부에 +-15V, 5V 출력이 가능한 DC전원을 달아 줬다.

하드웨어가 준비 되었으니 이제 다음 삽질, 코딩 작업이 남았다.
우선 TUSB3210용 펌웨어를 코딩하고 다음으로 윈도우즈용 디바이스 드라이버작성
마지막으로 어플리케이션을 만들면 된다. 참 쉽죠?..

프로그래머블 디바이스마다 프로그래밍 하는 방법이 모두 다르므로
각각의 디바이스에 맞게 어플리케이션을 새로 코딩해 줘야 하는데
우선 32KB짜리 SRAM을 read/write 테스트 할 수 있는 간단한 코드 부터 시작 했다.

EEPROM, UV-EPROM, SEEPROM, PAL, GAL, PIC, AVR등등 많은 디바이스들을
프로그래밍 할 수 있으나 일일히 프로그래밍 알고리즘을 만들어야 하는
아주 간단한(?) 일만 남았다....

I attached +-15VDC, +5VDC output power supply because the All03 universal programmer needs +-12VDC and 5VDC power (My ALL03 USB adapter has +-12VDC regulator).

Next job is coding. The coding step is like this,
firmware coding for TUSB3210 -> USB Device driver coding -> application coding
It's extremely(?) simple things....

I coded a simple test applicaiton for checking ALL03 functionality and testing 32KB SRAM write/read I/O. And it works well...

The ALL03 assessing is composed of one to four or five bytes read/write, so the access speed is slower then ISA interface because the USB transaction has lots of overhead for handshaking (USB communication is good for bulk data transfers).

----------------------------------------------------------------------------------
사용상 편의를 위해 문서화된 파일과 함께 배포하려 했으나 아직 문서화 작업을
진행 하지 못해 문서는 제외하고 배포합니다.
내용 업데이트 및 문서화가 진행되면 아래 링크도 같이 업데이트 됩니다.

I published schematics, device driver and test application source for Windows XP OS. But my ALL03 USB adapter card is under-development, so my program has no device programming capability and it might has software bugs.
I'll update my software continuously.

ALL03 USB adapter schematics (Rev:1.1): Download
Test application sources (Ver:0.10): Download
USB device driver and firmware pack for 32bit Windows XP: Download page

배포하는 회로도 및 소스/바이너리 파일들은 아직 버그가 많이 있을 수 있습니다.
배포된 회로도 및 소스/바이너리 파일들의 저작권은 저에게 있으며 제작자 동의없는
상업적 이용을 금지합니다.
----------------------------------------------------------------------------------