Commonlife's Blog

My daily life

Posts Tagged ‘OSCOKIRQ

android : ADK 기본 설정

leave a comment »

간만에 안드로이드로 ADK를 붙여보았는데 작동되지 않는다.

* 필요한 것은
1. 안드로이드폰 : Android Accessory가 가능한 것.
2. ADK Board : 아두이노 Mega 2560
* 기본 설정
2. 안드로이드 앱은 Google APIs로 할 것. (Android 2.3/ 4.0/ 4.1 … 말고)
위의 준비들이 모두 끝나면 안드로이드에는 앱을 설치하고, ADK 보드에는 프로그램을 올리자.
(그리고 꼭 ADK 보드에는 Serial을 이용한 로그를 찍도록 하자.)
* 문제
여기서 터진 문제는 케이블을 연결해도 안드로이드가 ADK 보드를 인식 못하는 것이다.
ADK 보드의 로그를 보니 “OSCOKIRQ failed to assert” 라고 뜬다.
* 문제해결
Arduino/libraries/USB_Host_Shield/Max3421e.cpp 를 수정한다.
boolean MAX3421E::reset()
{
  byte tmp = 0;
  regWr( rUSBCTL, bmCHIPRES );     //Chip reset. This stops the oscillator
  regWr( rUSBCTL, 0x00 );          //Remove the reset
  while(!(regRd( rUSBIRQ ) & bmOSCOKIRQ )) {  //wait until the PLL is stable
    tmp++;                         //timeout after 256 attempts
    if( tmp == 0 ) {
      return( false );
    }
  }
  return( true );
}
위의 부분을 아래와 같이 수정한다.
boolean MAX3421E::reset()
{
  regWr( rUSBCTL, bmCHIPRES );    //Chip reset. This stops the   oscillator
  regWr( rUSBCTL, 0x00 );         //Remove the reset
  while(!(regRd(rUSBIRQ) & bmOSCOKIRQ)) ;
}
그리고 나서 다시 ADK 보드에 프로그램을 올리면 해결~!!
Advertisements

Written by tocommonlife

2013/08/24 at 01:38