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

답글 남기기

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

WordPress.com 로고

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

Twitter 사진

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

Facebook 사진

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

Google+ photo

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

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: