[PIC32-SM EVM] 이더넷을 이용한 전자 액자 테스트


PIC32와 W5200을 이용하여 이더넷으로 전자 액자의 이미지 출력 하는 테스트를 해 보았다.
이더넷을 이용하면 원격지에서 TFT-LCD의 이미지를 고속으로 전송해 출력 할 수 있기 때문에 여러가지 장점이 많다.

PIC32는 저렴하고, Flash/RAM 이 풍부하며 고속이기 때문에 임베디드 이더넷 예제로 사용하기에 좋다. 이더넷 처리는 SPI방식의 하드웨어 TCP/IP스택을 지원하는 W5200을 이용였고 PIC32의 20Mhz SPI로 구동시 양방향 8Mbps정도 이므로 충분히 처리 가능하다.


테스트는 이더넷 모듈, TFT LCD모듈, MP3 모듈을 연결할 수 있는 [EXP-NET] EVM보드를 이용하면 쉽게 테스트 가능하다.






PIC32 이더넷 전자 액자 테스트 동영상
PC의 이미지 파일을 열어 16Bit BMP파일로 변환하고 이를 이더넷 UDP로 전송하면 TFT LCD에 출력하는 예제이다. 보드측에서는 이더넷으로 이미지 파일을 전송 받아 출력하므로 별도의 메모리 없이 고속으로 이미지를 업데이트 할 수 있다.



기존 W5100을 이용하여 LCD_EXP EVM]보드와 CANTUS를 이용한 이더넷 전자액자 에서 테스트 했던 것과 비교하면 속도차이을 확인 할 수 있다.

")




이더넷 전송 PC프로그램

이더넷 전송 속도가  더 빨라졌기 때문에 이미지를 버퍼에 저장 했다 전송할 수 있도록 프로그램을 약간 수정하였다.







드라이버 파일

더보기


 

[W5200 EVM] 보드 제작

[INTERFACE]/WIZNET_EVM | 2011.09.09 08:30
Posted by nexp
[W5200 EVM] 보드 제작


하드웨어 TCP/IP 스택을 지원하는 W5100의 신버전 W5200 테스트 보드를 제작했다. SPI방식만 지원해서 더 소형 으로 제작 가능하다. SPI 클럭속도가 훨씩 더 빨라지고 8개의 스택을 지원하므로 웹서와 같은 어플리케이션에 저렴하고 간단하게 적용할 수 있다. 




기존 W5100 EVM과 비교해서 크기가 더 작아지고



기존 보드와 핀맵을 동일하게 제작하여 확장보드에 연결 가능하다.



W5200, W5100 확장 테스트 보드 [NET-EVM]



[W5200 EVM] 핀맵 회로도



[CANTUS EVM] WiFi 모듈 테스트 - 무선랜을 이용한 DAQ (24bit ADC) 테스트


Serial to WiFi Module (WIZ6100wi)을 이용하여 무선 데이터 수집 장치를 만들어 보았다.
무선랜을 간편하게 사용할 수 있는 WiFi모듈을 이용하면 고속의 데이터를 인터넷으로 손쉽게 수집할 수 있다.

MCU는 저렴하고 RAM이 풍부한 ADChip사의 CANTUS를 이용하고 USB2Serial 커넥터에 WiFi모듈을 연결 하였다.


데이터 수집은 SPI인터페이스의 24비트 ADC모듈을 이용하고 펑션으로 사인파를 입력 하여 테스트 했다.



무선랜 접속
WIZ610은 AP기능이 있어 PC에서 클라이언트 형태로 접속 가능하다. 자세한 환경 설정은 . [WiFi to Serial 모듈 설정]  부분을 참고 한다.

WiFi모듈의 기본 IP는 192.168.1.254 로 접속해서 TCP/IP통신을 하면 MCU쪽에서는 시리얼 형태로 데이터를 수신 할 수 있다. 최대 전소 속도는 1Mbps까지 가능하다.


PC프로그램 작성
무선랜 모듈에 접속하기 위해 TCP/IP프로그램을 작성하면 되는데... 여러 형태로 작성 가능하지만 우선 간단하고 UI 를 쉽게 작성할 수 있는 C#을 이용하였다.


테스트를 위해 간단히 CANTUS EVM의 LED를 On/Off하고 수집한 24bit ADC값을 그래프로 표시하도록 했다.



펌웨어 작성
MCU(CANTUS EVM)쪽 펌웨어는 WiFi모듈을 시리얼로 인식하기 때문에 간단하게 작성할 수 있다.
시리얼 포트로 특정 커멘드를 받으면 동작하도록  처리한다.

  if(U0_IsGetByte())
  {
   switch(U0_GetByte())
   {
    case '2':
     DebugPrint("Led1 Off\r\n");
     Led1Off();
     break;

    case '3':
     DebugPrint("Led1 On\r\n");     
     Led1On();
    break;
    
    case '4':
     DebugPrint("Led2 Off\r\n");
     Led2Off();
     break;

    case '5':
     DebugPrint("Led2 On\r\n");
     Led2On();
    break;
        
    case '6':
     //ADC값 전송 시작
     adc_send_flag ^= 1;
    break; 


ADC값은 타이머 인터럽트를 이용하여 시리얼 포트로 보내면 WiFi로 전송이 된다. 아주 간단하게 WiFi 통신이 가능하다.
  if(adc_send_flag)
  {
   //ADC값 전송
   if(gTimeTick1_1ms>10)
   {
    DebugPrint("ADC=%d\r\n", GetAdc24(0));
    gTimeTick1_1ms = 0;
   }
  }


CANTUS WiFi 테스트 동영상
WiFi를 이용하여 네트웍으로 LED제어하고 24bit ADC데이터 수집 테스트

WIZ6100 to Serial 변환 보드 제작

[INTERFACE]/WiFi | 2011.07.25 18:06
Posted by nexp
WIZ6100 to Serial 변환 보드 제작



WIZ6100wi 는 Serial to WiFi  모듈로 간단히 WiFi를 구성할 수 있다. 하지만 커넥터가 1.27mm 피치라 기존 MCU에 연결하기가 불편하다. 기존 MCU모듈의 USB to Sreial 모듈 커넥터에 쉽게 연결할 수 있는 변환 보드를 제작 해 보았다.





기존 제작 했던 EVM모듈에 쉽게 연결 가능하다.






2.54mm 간격이라 쉽게 빵빤에 연결 가능하다.



회로도




[W5100-s EVM] rev2 보드 관련 자료


이더넷(W5100) 테스트를 위한 [NET-EVM] 보드 만들면서 [W5100-S EVM] rev2 보드를 만들었다. 기존 보드에서 전원핀맵을 통일해 USB 및 기타 모듈 보드와 동일한 핀맵으로 수정 제작 하였다.




W5100 EVM 회로도




rev1과 같이 SPI_EN핀을 따로 설정하지 않아도 자동으로 설정될 수 있도록 인버터가 있어 SPI EN핀을 따로 설정하지 않아도 된다.






[NET-EVM] 보드에 연결
확장 테스트 보드로 기존 MCU(AVR, ARM, PIC등등)를 이용하여 이더넷 테스트를 할 수 있는 보드 이다.




W5100을이용한 이더넷  테스트 동영상
UDP로 접속하여 이미지 데이터를 고속으로 전송하고 TFT LCD에 출력하도록 했다. [CANTUS EVM] 이더넷 전자엑자 테스트 참고.

[W7100 EVM] iMCU 테스트 보드 제작 (8051+MAC+Phy+HW TCP/IP 원칩)


iMCU W7100은 hardwired TCP/IP Core 를 내장하고 8051코어가 내장되어 있는 one-chip 인터넷 솔루션 이다. 256KByte Data Flash, 64K Code Flash, 64Kbyte RAM으로 구성된 메모리는 별도의 확장 필요없이 간단한 웹서버를 구현하기에 아주 적합한 솔루션을 제공할것 같다.

내부에 부트로더가 있어 별도의 장비 없이 UART나 이더넷으로 프로그램을 다운로드 할 수 있다. 가격도 저렴(IC Bank에서 6500원에 판매하고 있다.)하니 간단히 임베디드 웹서버 공부하는데 사용하면 좋을것 같다.

데이트시트


회로도

예제소스




[M-Type EVM]  으로 표준핀맵에 맞추어 모든 핀을 빼두었고 서포트로 고정 가능하다.



소형으로 제작하다 보니 스위치 및 LED는 윗면에 배치하고 뒷면으로 W7100을 실장하도록 했다.



확장 테스트 보드





W7100 테스트 동영상
LED테스트



웹서버 테스트








[LM3S8962 EVM] 웹서버 테스트

[TI]/LM3S8962 | 2010.05.23 19:54
Posted by nexp
[LM3S8962 EVM] 웹서버 테스트



LM3S8962는 Cortex-M3코어에 Ehternet MAC + Phy가 포함되어 있는 MCU로 상당히 간단하게 임베디드 이더넷을 구현할 수 있다.
무료 TCP/IP protocol stack 인 lwIP를 이용해서 임베디드 웹서버 테스트를 진행 했다.
간단한 스텍임에도 속도 빠르고 여러가 다양한 프로토콜을 지원하고 있다.

먼저 luminary micro에서 포팅해서 third party로 제공하는  lwip-1.3.0폴더를 복사하고 패스를 잡아 준다.

$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.0\src\include\
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.0\src\include\ipv4\
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.0\apps\httpserver_raw
$PROJ_DIR$\..\01_drv\third_party\lwip-1.3.0\ports\stellaris\include




웹페이지를 제작하고 롬파일 시스템을 제작하면 된다. 롬파일 시스템은 여러 툴이 있지만 makefsfile를 이용하면 쉽게 제작 할 수 있다.



LM3S8962 WebServer 테스트 동영상




예제 소스코드
LM3S8962 이더넷 관련 초기화

    // LM3S8962 이더넷 Controller 초기화 및 리셋
    SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);
    SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);

    // Ethernet LED 초기화
    //  LED0        Bit 3   Output
    //  LED1        Bit 2   Output

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3, GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3,  GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);


    // Enable processor interrupts.
    IntMasterEnable();


MAC어드레스는 임의로 할당했다. lwIPInit() 함수로 설정 가능하다. IP는 IP공유기를 이용하므로 DHCP에서 자동으로 할당받도록 했다. 예전의 DHCP프로토콜은 공유기에 따라 고려해야 할 사항이 많았었는데... 요즘에는 상다히 간단히 처리 가능하다.

    pMACArray[0] = 1;
    pMACArray[1] = 2;
    pMACArray[2] = 3;
    pMACArray[3] = 4;
    pMACArray[4] = 5;
    pMACArray[5] = 6;
 
   
    // MAC초기화 및 DHCP 사용 설정
    lwIPInit(pucMACArray, 0, 0, 0, IPADDR_USE_DHCP); 


LM3S8962 웹서버 초기화

    // Initialize a sample httpd server.
    httpd_init();

    // Pass our tag information to the HTTP server.
    http_set_ssi_handler(SSIHandler, g_pcConfigSSITags,  NUM_CONFIG_SSI_TAGS);

    // Pass our CGI handlers to the HTTP server.
    http_set_cgi_handlers(g_psConfigCGIURIs, NUM_CONFIG_CGI_URIS);

    // Initialize IO controls
    io_init();


main 소스코드

/*
 - LM3S8962 Webserver Test
*/

#include "system.h"
#include "serial.h"
#include "ether_io.h"

int main()
{
 SystemInit(); 

 Led1Init();
 Led1Off();
 
 Led2Init();
 Led2Off(); 

 //Serial Init
 DebugInit(BAUD_115200);
 DebugPrint("LM3S8962 Ethernet Test Program.\r\n");

 EtherNetInit();
 
 DebugPrint("Ethernet I/O Init\r\n");
 
 while(1)
 {
  
  ProcessWebServer();
 }
}

ENC424J600 10/100 Base-T Ethernet Controller


Microchip ENC28J60의 후속 모델로 Microchip ENC424J600 10/100BaseT Ethernet controller가 출시 되었다. SPI방식의 소형 이더넷 컨트롤러라는 장점을 가진 ENC28J60을 사용하사용자 삽입 이미지면서 느꼈던 속도문제(10 Base-T에서 100 Base-T로 업그레이드 되어)가 해결된것 같다. 한번 사용해 볼만 헌데,,, 그리고 Microchip FREE TCP/IP Stack 도 V5.0 으로 업데이트 되었군.

이제 Hardware TCP/IP W5100과 비교해 테스트 해볼만 하지 않을까...



ENC424J60 데이터 시트

ENC424J60 핀맵



[PIC18F67J EVM] 보드관련자료



PIC18F67J60 보드제작



회로도

pic18f67_sch.pdf


PIC18F67J60


LED


사용자 삽입 이미지
 

 AVR128, 64k SRAM Memory, 512k Flash Memory, W5300을 이용하여 초소형 웹서버 모듈을 만들었다.




블로그 이미지

nexp

카테고리

분류 전체보기 (1560)
[MyProject] (48)
[TI] (75)
[NXP] (51)
[ST_MICRO] (129)
[FreeScale] (31)
[MSP430] (140)
[Microchip] (131)
Cortex-M (36)
[ATMEL] (29)
[AnalogDevice] (22)
[Embedded] (2)
ARM9 (24)
[AVR] (80)
[DSP] (111)
[8051] (21)
[MCU] (50)
[INTERFACE] (213)
[AppBoard] (23)
[ROBOT] (25)
[MODULE] (129)
[SENSOR] (41)
[DATA] (21)
[FPGA] (32)
[EVB] (1)
[Proramming] (38)
[MyLog] (6)
[IDEA] (0)
[Utility] (19)
[Book] (24)
취미생활 (4)
[Link] (2)