티스토리 뷰

Hardware

GPIF를 사용한 Bulk In

알 수 없는 사용자 2008. 4. 1. 01:36

출처 : http://muosys.egloos.com/221117

 

회로도

Array

전체적인 모습

Array

세부모습1

Array

세부모습2

Array

UniHigh Firmware v2.7
UniHigh App v2.7

v2.7 Application은 기본적으로 v2.6과 동일하다.
Overlapped I/O에 관련된 코드오류를 바로잡은 것이 다른 점이다.

실험방법은 이전 v2.6의 실험방법과 동일하다.

Firmware v2.7은
v2.6의 8051 코어가 Bulk IN을 수행하던 부분을 GPIF가 대신하도록 바꾼 것이다.

구체적으로는 TD_Poll()의 마지막에 기존의 같은 기능을 하던 부분을 들어내고, 다음의 코드를 추가한 것이다.

if( bConfigured )
{
    if( GPIFTRIG & 0x80 ) // GPIF is Idle
    {
        if( !bGPIFStart )
        {
            GPIFTRIG = GPIFTRIGRD | GPIF_EP6;
            bGPIFStart = TRUE;
        }
        else
       {
            INPKTEND = 0x06;
            bGPIFStart = FALSE;
        }
    }
}

v1.7의 코드를 약간 수정하여 작성한 부분이다.
Firmwarw v2.7에 오류가 있어서 디버깅 중이다.
(Bulk IN이 한번만 수행됨)
본좌를 똥통에서 건져줄 행자의 구원의 손길을 기다린다.
이상.