본문 바로가기

[AnalogDevice]/ADuc7K

[ADuc7061 EVM] UART 테스트

[ADuc7061 EVM] UART 테스트

 

ADuc7061 은 정밀 24bit ADC를 내장한 아날로그 마이크로 컨트롤러이다. 24bit ADC값을 테스트 하기위해 가장 쉬운 방법으로 UART로 ADC값을 정송하는것이기 때문에 UART를 포팅하면 쉽게 가능하다.

 

보데이트는 아래와같이 설정하면 오차율 적게 설정할 수 있다.

 

 

COMSTA0 레지스터를 이용하여 송수신 상태를 체크할 수 있다.

 

ADuc7061 UART 송수신 함수

unsigned char U0_GetByte(void)
{
    while ((COMSTA0 & 0x01) != 0x01)
    {
    }
   
    return COMRX;
}

 

void U0_PutByte(unsigned char Data)
{
    COMTX = Data;
    while ((COMSTA0 & 0x40) == 0x00)   // Wait for Tx buffer empty bit to be set
    {
    }
}

 

 

 

 

ADuc7061 UART테스트 코드

초기화, 송수신 함수만 포팅하면 기존 다른 MCU에서 테스트 했던 코드를 그대로 이용할 수 있다. 큰 문제 없이 잘 동작하는것을 확인 할 수 있다.

int main(void)
{
    unsigned int cnt = 0;
    SystemInit();
 
    Led1Init();

    //Serial Init
    DebugInit(BAUD_115200);
    DebugPrint("Aduc7061 EVM Serial Program.\r\n");

   
 while(1)
 {
  //UART Debug
  if(U0_IsGetByte())
  {
   switch(DebugGetByte())
   {
    case '0':
                    DebugPrint("LED OFF = %d\r\n", cnt--);
                    Led1Off();
     break;

                case '1':
                    DebugPrint("LED ON = %d\r\n", cnt++);
                    Led1On();
                 break;      
            }
        }
 }
}

반응형