[DSP]/DSP283352012.04.15 11:45

[DSP28335 EVM] 이더넷 테스트 - W5300이용 ADC 데이터 수집

[DSP28335 EVM] 이더넷 테스트 - W5300이용 ADC 데이터 수집

 

[ EXP-ALL] 보드 VR(가변저항)의 ADC값을 이더넷을 통해 전송하는 테스트를 했다.

 

 

하드웨어

EXP 보드의 VR은 TMS320F28335  보드의 ADCB0에 연결되어 있다. 

 

 

펌웨어

펌웨어쪽 프로그램은 TCP서버로 동작하여 클라이언트 PC의 요청에 따라 가변저항의 전압값을 전송하도록 하는 아주 간단한 예제이다.

 

//-----------------------------------------------------------------------------
//W5300 수신데이터 처리
void EthernetTest(unsigned char *pRcvBuffer, unsigned int len)
{
 unsigned int i;
 unsigned char temp;
 unsigned int adc;
 unsigned char buf[32];


 

 temp = (0xFF)&pRcvBuffer[0];
 if(temp == CMD_LED)
 {
  temp = (0xFF)&pRcvBuffer[1];
  if(temp == 1)
  {
   Led1On();
  }
  else if(temp == 0)
  {
   Led1Off();
  }
   }
 else if(temp == CMD_ADC_READ)
 {
  adc = AdcRead(8);
  buf[0] = adc&0xFF;
  buf[1] = adc>>8;
  send(0, buf, 2);

 }
}

 

 

TCP 처리 함수

void ProcessTCPS(SOCKET s, uint16 port)
{
 unsigned long len;
 uint16 mode = 0;

 //ESTABLISH?
 switch(getSn_SSR(s))
 {                  
 case SOCK_ESTABLISHED:

  if(getSn_IR(s) & Sn_IR_CON)   // check Sn_IR_CON bit
  {
   setSn_IR(s,Sn_IR_CON);     // clear Sn_IR_CON
  }

  //수신된 데이터가 있으면
  if((len=getSn_RX_RSR(s)) > 0) // check the size of received data
  {

   //수신받은 데이터 만큼 수신하고
   len = recv(s, data_buf, len);

   //수신 데이터 처리
   EthernetTest(s, data_buf, len);
   //send(s,data_buf,len);
  }
  break;


 //초기화시
 case SOCK_INIT:
  //TCP CLIENT로 부터 접속대기
  listen(s);
  status = 1;
  break;

 // PASSIVE CLOSED
 case SOCK_CLOSE_WAIT:              
  // disconnect
  disconnect(s);               
  break;

 // Socket CLOSED일 경우
 case SOCK_CLOSED:
  //C2000에서 close() 함수는 예약되어 있어서 함수명 변경했다.
  _close(s);

  //새롭게 Socket Open
  socket(s,Sn_MR_TCP,port,mode);
  status = 0;
  break;

 default:
  break;
 }
}

 

 

 

PC프로그램

void CEtherHostDlg::OnTimer(UINT_PTR nIDEvent)
{
 switch(nIDEvent)
 {
 case 1:
  unsigned char buf[10];

  buf[0] = CMD_ADC_READ;
  buf[1] = 0;
  m_ClientSocket.Send(buf, 2);
  
  break;
 }
 CDialog::OnTimer(nIDEvent);
}

 

 

 

 

 

 

 

테스트 동영상

W5300 이더넷을 이용하여 TMS320F28335 ADC 데이터를 전송하는 테스트

 

 

Posted by nexp

댓글을 달아 주세요