[Microchip]/PIC322011. 9. 10. 16:42

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

[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프로그램

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







드라이버 파일


 

Posted by nexp

댓글을 달아 주세요

  1. 비밀댓글입니다

    2011.09.16 17:46 [ ADDR : EDIT/ DEL : REPLY ]

[INTERFACE]/WIZNET_EVM2011. 9. 9. 23:30

[W5200 EVM] TCP 전송 속도 테스트

[W5200 EVM] TCP 전송 속도 테스트


W5200을 이용하여 MCU별로 TCP/IP Loopback 전송 속도를 테스트 해 보았다.
MCU별 SPI최대 속도도 참고 할 수 있는 자료가 될것 같다.
TCP/IP 전송 속도 테스트 결과 참고 

PIC32
마이크로 칩사의 PIC32는 SPI최대 속도가 20Mhz임에도 불구 하고 4MBps정도 까지 출력된다. SPI로 데이터 읽고 쓰는데 상당히 빠른것 같다. 저렴하면서 성능이 좋아 가장 마음에 든다.




dsPIC33
SPI클럭 13Mhz 에서 최대로 나오며 2.4Mbps 정도 출력 된다.

[3] iInChip Send: 2.3772 Mbps(6596649 bytes, 21.1710 sec)
iInChip Recv: 2.4131 Mbps(6596649 bytes, 20.8568 sec)
------------------------------------------------------------
[4] iInChip Send: 2.3933 Mbps(6596649 bytes, 21.0288 sec)
iInChip Recv: 2.4132 Mbps(6596649 bytes, 20.8557 sec)
------------------------------------------------------------


STM32
최대 SPI클럭 18Mhz 인 [STM32 EVM]에서 전송 속도는 2.5Mbps정도 출력된다.





CANTUS
국산 32bit MCU코어인 CANTUS는 SPI 최대 클럭이 23Mhz이고 이때 전송 속도는 2.38Mbps가 출력 된다.
 ar

인다이렉트/다이렉트 모드로 테스트시

[1] iInChip Send: 7.4276 Mbps(11983617 bytes, 12.3092 sec)
iInChip Recv: 7.4303 Mbps(11983617 bytes, 12.3048 sec)
------------------------------------------------------------


[adStar]

108Mhz로 동작하는 adStar에서는 W5200에서 TPC송수신 속도가 3Mbps정도로 측정된다. 





LPC1LK
Cortex-M0코어의 저렴한 LPC1113의 SPI최대 속도가 12Mhz이고 W5200 TCP전송 속도는 1.5Mbps정도 나온다.
[1] iInChip Send: 1.5744 Mbps(3966014 bytes, 19.2184 sec)
iInChip Recv: 1.5546 Mbps(3966014 bytes, 19.4632 sec)
------------------------------------------------------------
[2] iInChip Send: 1.5687 Mbps(3966014 bytes, 19.2887 sec)
iInChip Recv: 1.5694 Mbps(3966014 bytes, 19.2800 sec)
------------------------------------------------------------


LM3S5732
TI의 Cortex-M3 LM3S5732의 12Mhz일 때 TCP 전송 속도는 1.79Mbps정도 된다. 
[1] iInChip Send: 1.7998 Mbps(3966014 bytes, 16.8116 sec)
iInChip Recv: 1.7996 Mbps(3966014 bytes, 16.8136 sec)
------------------------------------------------------------


DSP (TMS320F2808)
TMS320F2808의 SPI 최대 속도는 6.2Mhz 정도 이고 이때 TCP 전송 속도는 1.5831 Mbps 정도 나온다.


DSP(TMS320F28335)
TMS32F28335에서 SPI방식의 W5200을 이용하여 TCP Server 전송 속도 테스트 결과 SPI Clock 10MHz에서 대략 2.3Mbps정도 출력된다.


LPC1756 (Cortex-M3)
SPI클럭 24Mhz에서 2.8Mbps 정도 출력된다.

[31] iInChip Send: 2.8086 Mbps(348160 bytes, 0.9457 sec)
iInChip Recv: 2.5316 Mbps(348160 bytes, 1.0492 sec)
------------------------------------------------------------
[32] iInChip Send: 2.8575 Mbps(348160 bytes, 0.9296 sec)
iInChip Recv: 2.4732 Mbps(348160 bytes, 1.0740 sec)
-------------------------------------------------------


MSP430 (MSP430F5529)
메인 클럭을 32Mhz로 설정하고 SPI클럭을 16Mhz로 설정하여 테스트한 결과 2.2Mbps 정도의 전송 속도가 나온다.

-----------------------------------------------------------
[8] iInChip Send: 2.2657 Mbps(3880723 bytes, 13.0676 sec)
iInChip Recv: 2.1496 Mbps(3880723 bytes, 13.7736 sec)
------------------------------------------------------------
[9] iInChip Send: 2.1323 Mbps(3880723 bytes, 13.8855 sec)
iInChip Recv: 2.2160 Mbps(3880723 bytes, 13.3608 sec)
-------------------------------------------------------



Cortex-M4 STM32F4
SPI 최대 클럭 21Mhz에서 3.5Mbps 정도 나온다
------------------------------------------------------------
[7] iInChip Send: 3.5567 Mbps(5278574 bytes, 11.3230 sec)
iInChip Recv: 3.5074 Mbps(5278574 bytes, 11.4822 sec)
------------------------------------------------------------
[8] iInChip Send: 3.5647 Mbps(5278574 bytes, 11.2975 sec)
iInChip Recv: 3.3565 Mbps(5278574 bytes, 11.9982 sec)
--------------------------------------------------------


EFM32G210 - 저전력 Cortex-M3

EFM32를 이용하여 TCP/IP 전송율 테스트 결과 1.4Mbps 정도

Posted by nexp

댓글을 달아 주세요

  1. 캐럴리

    관리자의 승인을 기다리고 있는 댓글입니다

    2011.09.14 17:55 [ ADDR : EDIT/ DEL : REPLY ]
  2. december

    관리자의 승인을 기다리고 있는 댓글입니다

    2012.07.18 12:52 [ ADDR : EDIT/ DEL : REPLY ]

[INTERFACE]/WIZNET_EVM2011. 9. 9. 08:30

[W5200 EVM] 보드 제작

[W5200 EVM] 보드 제작


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




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



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



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



[W5200 EVM] 핀맵 회로도



Posted by nexp

댓글을 달아 주세요

[Microchip]/PIC322011. 9. 2. 22:00

[PIC32] W5200(W5100) TCP/IP Boopback 전송 속도 Test

[PIC32] W5200(W5100) TCP/IP Boopback 전송 속도 Test





마이크로 칩사의 PIC32는 SPI최대 속도가 20Mhz임에도 불구 하고 4MBps정도 까지 출력된다. SPI로 데이터 읽고 쓰는데 다른 MCU보다 상당히 빠른것 같다. 저렴하면서 성능이 좋아 가장 마음에 든다. (SPI 효율은 가장 뛰어난것 같다.)
TCP/IP 전송 속도 테스트 결과 참고 





PIC32 W5200 제어 HAL 드라이버 코드
#define _SPI0_ENABLE    1

//-----------------------------------------------------------------------------
// W5100 HAL
#define W5100_CS_PORT     LATG
#define W5100_CS_BIT     BIT9


#define W5100_RST_PORT     LATD
#define W5100_RST_BIT     BIT1

#define IINCHIP_RSToff()    Cbi(W5100_RST_PORT, W5100_RST_BIT) 
#define IINCHIP_RSTon()     Sbi(W5100_RST_PORT, W5100_RST_BIT)


#define W5100_IO_INIT()     Cbi(TRISG,  W5100_CS_BIT );Cbi(TRISD,  W5100_RST_BIT);

#define IINCHIP_CSoff()     Cbi(W5100_CS_PORT, W5100_CS_BIT)
#define IINCHIP_CSon()     Sbi(W5100_CS_PORT, W5100_CS_BIT)

#define IINCHIP_SPI_INIT()    SPI0_Init();IINCHIP_SpiSpeed()
#define IINCHIP_SpiSendData    SPI0_WriteReadByte
#define IINCHIP_SpiRecvData    SPI0_WriteReadByte
#define IINCHIP_SpiSpeed()              SPI0_SetSpeed(SPI_SPEED_MAX)
//-----------------------------------------------------------------------------


Posted by nexp

댓글을 달아 주세요

[INTERFACE]/WIZNET_EVM2011. 5. 23. 16:06

[W5100] TCP/IP 코드 사이즈 실험

[W5100] TCP/IP 코드 사이즈
하드웨어 TCP/IP 스텍을 가진 W5100/W5200의 코드 사이즈를 최소한으로 줄여 보는 테스트를 해보았다.
기본적인 TCP루프백 테스트를 해 볼수 있는 코드로 작성하였다.


LPC1113 (Cortex-M0)
코드 효율이 좋은 Cortex-M0 코어의 LPC1113을 이용하여 W5200의  TCP/IP 스텍을 최소한 줄여보았다.
w5200s.c 로 드라이버 코드를 수정 했다.

일단 필요한것만 추려보니 8.25Kbyte 정도 나온다.

  8 252 bytes of readonly  code memory
    652 bytes of readonly  data memory
  6 662 bytes of readwrite data memory


[AVR]
동일한 코드를 AVR  에서 컴파일하니 6.9Kbyte정도 된다. (UART 디버깅 코드를 빼면 더 줄어들것 같다.)
Cortex-M3는 코어 설정해 줄 부분이 많긴하지만... AVR보다 못하다니

Program:    6896 bytes (42.1% Full)
(.text + .data + .bootloader)

Data:       2520 bytes (246.1% Full)
(.data + .bss + .noinit)


Serial 디버깅을 제거하니 4Kbye정도 이다. TCP처리 하는데 4Kbyte이하면 나쁘지 않은것 같다.
Program:    4442 bytes (27.1% Full)
(.text + .data + .bootloader)

Data:       2190 bytes (213.9% Full)
(.data + .bss + .noinit)


 

Posted by nexp
TAG W5100, W5200

댓글을 달아 주세요