GPIF를 사용한 Bulk In

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

 

회로도

clip_image002

전체적인 모습

clip_image003

세부모습1

clip_image004

세부모습2

clip_image005

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이 한번만 수행됨)
본좌를 똥통에서 건져줄 행자의 구원의 손길을 기다린다.
이상.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중