[ST_MICRO]/STM32F103-SM2012. 1. 28. 20:45

[STM32-SM2 EVM] W5200 이더넷 테스트 - NET-EVM 보드

[STM32-SM2 EVM] W5200 이더넷 테스트 -  NET-EVM 보드



STM32를 이용하여 [NET-EVM] 보드에서 W5200 모듈을 테스트 했다.





[NET-EVM] W5100/W5200용 커넥터




STM32-SM2는 핀맵이 약간 수정되었는데.. W5200의 /RST(INT0) 핀이 3.3V로 연결되기 때문에 3.3V끊고 PA15와 0옴으로 연결해 주어야 한다.




W5200 드라이버 코드
//-----------------------------------------------------------------------------
// W5100 HAL
#define _SPI1_ENABLE     1

#define W5100_CS_PORT     GPIOB
#define W5100_CS_BIT     BIT12
#define IINCHIP_RSToff()    cbi(W5100_RST_PORT, W5100_RST_BIT) 
#define IINCHIP_RSTon()     sbi(W5100_RST_PORT, W5100_RST_BIT)

#define W5100_IO_INIT()     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);\
          GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;\
          GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;\
          GPIO_InitStructure.GPIO_Pin=BIT12;\
          GPIO_Init(GPIOB, &GPIO_InitStructure);\
          GPIO_InitStructure.GPIO_Pin=BIT15;\
          GPIO_Init(GPIOA, &GPIO_InitStructure);


#define W5100_RST_PORT     GPIOA
#define W5100_RST_BIT     BIT15

#define IINCHIP_CSoff()     cbi(W5100_CS_PORT, W5100_CS_BIT) 
#define IINCHIP_CSon()     sbi(W5100_CS_PORT, W5100_CS_BIT)

#define IINCHIP_SPI_INIT()    SPI1_Init()
#define IINCHIP_SpiSendData    SPI1_WriteReadByte
#define IINCHIP_SpiRecvData     SPI1_WriteReadByte




STM32 TCP/IP 전송 속도 테스트
최대 SPI클럭 18Mhz 인 STM32에서 전송 속도는 2Mbps정도 출력된다.

코드 옵티마이즈 후 2.5Mbps 까지 가능하다.





Posted by nexp

댓글을 달아 주세요

[Microchip]/dsPIC2011. 12. 4. 22:45

[dsPIC EVM] MP3 Module (VS1033) 테스트

[dsPIC EVM] MP3 Module (VS1033) 테스트



[NET EVM] 보드를 이용하면 W5100과 같은 이더넷 모듈이나 TFT LCD 모듈을 연결하여 테스트 할수 있고 VS1033과 같은 MP3 모듈을 연결하여 네트웍 라디오를 테스트 해 볼 수 있다.





ADC0 -> RB0



dsPIC33 MP3모듈 HAL Driver 코드
//-----------------------------------------------------------------------------
// VS1033 모듈 HAL
#define VS_DREQ_BIT      BIT6
#define VS_DREQ_PORT     PORTB

#define VS_CS_BIT      BIT4
#define VS_CS_PORT      PORTB

#define VS_XDCS_BIT      BIT5
#define VS_XDCS_PORT     PORTB

#define VS_RST_BIT      BIT3
#define VS_RST_PORT      PORTB

#define VS1003_CS_H()      Sbi(VS_CS_PORT, VS_CS_BIT)
#define VS1003_CS_L()      Cbi(VS_CS_PORT, VS_CS_BIT)

#define vs1003_enable()      VS1003_CS_L()
#define vs1003_disable()     VS1003_CS_H()

#define VS1003_XDCS_H()      Sbi(VS_XDCS_PORT, VS_XDCS_BIT)
#define VS1003_XDCS_L()      Cbi(VS_XDCS_PORT, VS_XDCS_BIT)


#define VS1003_RESET_H()     //Sbi(VS_RST_PORT, VS_RST_BIT)
#define VS1003_RESET_L()     //Cbi(VS_RST_PORT, VS_RST_BIT)

#define IsVs1003DataReady()     (GPIOA->IDR&VS_DREQ_BIT)

#define VS_SendByte       SPI1_WriteReadByte
#define VS_InitSpi()      SPI1_Init()
#define VS_SpiSpeed_Low()        SPI1_SetSpeed(SPI_SPEED_1MHZ)
#define VS_SpiSpeed_High()     SPI1_SetSpeed(SPI_SPEED_4MHZ)


#define MP3_PORT_INIT()      Cbi(TRISB, BIT3|BIT4|BIT5);Sbi(TRISB, BIT6);\
                                         VS1003_CS_H();VS1003_XDCS_H();VS1003_RESET_H()
//-----------------------------------------------------------------------------



dsPIC33 SD Card HAL Driver 코드
#define _SPI1_ENABLE    1

//-----------------------------------------------------------------------------
// SD Card HAL
#define _DEBUG_FAT_FILE                 1

#define MMC_CS_PORT      LATB
#define MMC_CS_BIT      BIT7

#define MMC_CS_INIT()     TRISB=0;MMC_CS_HIGH();

#define MMC_CS_HIGH()     Sbi(MMC_CS_PORT, MMC_CS_BIT)
#define MMC_CS_LOW()     Cbi(MMC_CS_PORT, MMC_CS_BIT)
#define MMC_ASSERT_INIT()    MMC_CS_INIT();MMC_CS_HIGH()
#define MMC_ASSERT()     MMC_CS_LOW()
#define MMC_DEASSERT()     MMC_CS_HIGH()


#define MMC_SpiInit()     SPI1_Init()
#define MMC_SendByte     SPI1_WriteReadByte
#define MMC_Send(Data)      SPI1_WriteByte(Data)
#define MMC_Recv()      SPI1_WriteReadByte(0xFF)
#define MMC_RecvP(Data)     MMC_Send(0xFF); (*(Data)=SPI1_ReadByte())
#define MMC_SPISpeed     SPI1_SetSpeed

#define SPI_Mode3()

#define FAT_MAX_NUM_FILE          50

#define FCLK_SLOW()             MMC_SPISpeed(SPI_SPEED_1MHZ) 
#define FCLK_FAST()             MMC_SPISpeed(SPI_SPEED_MAX)
//-----------------------------------------------------------------------------
Posted by nexp

댓글을 달아 주세요

[DSP]/DSP280x-M2011. 10. 29. 12:05

[TMS320F2808 EVM] W5200 이용한 TCP Server 전송 속도 테스트

[TMS320F2808 EVM] W5200 이용한 TCP Server 전송 속도 테스트


TMS320F2808의 SPI 최대 속도는 6.2Mhz 정도 이고 이때 TCP 전송 속도는 1.5831 Mbps 정도 나온다.
결론 적으로 CPU속도는 나쁘지 않는데.. SPI클럭 속도가 너무 느리다. SPI속도를 요하는 어플리케이션은 고려할 필요가 있는것 같다.
그래도 1.5Mbps면 간단한 웹서버 정도 돌리는데는 문제가 없을것 같다.


[NET_EXP] W5100 / W5200 모듈 보드 핀맵



Posted by nexp

댓글을 달아 주세요

[NXP]/LPC1k2011. 10. 19. 10:46

[LPC1111 EVM] W5200 TCP/IP 테스트

[LPC1111 EVM] W5200 TCP/IP 테스트


하드웨어 TCP/IP W5200모듈을 NET-EXP보드에서 테스트 했다.

LPC1100
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)
------------------------------------------------------------



LCP1100 핀맵


[NET-EVM] W5100 핀맵 회로도



LPC1113 W5200 테스트 드라이버 코드
#define _SPI0_ENABLE    1

//-----------------------------------------------------------------------------
// W5100 HAL
#define W5100_CS_PORT     PORT0
#define W5100_CS_BIT     BIT2

#define W5100_RST_PORT     PORT0
#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()     GPIOSetDir( 0, 1, 1 );GPIOSetDir( 0, 2, 1 );

#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()
//#define IINCHIP_SpiSendData   SPI0_WriteByte
#define IINCHIP_SpiSendData    SPI0_WriteReadByte
#define IINCHIP_SpiRecvData    SPI0_WriteReadByte
//-----------------------------------------------------------------------------




Posted by nexp

댓글을 달아 주세요

[MCU]/CANTUS2011. 10. 1. 23:24

[CANTUS EVM] W5200을 이용한 TCP/IP 전송 속도 테스트

[CANTUS EVM] W5200을 이용한 TCP/IP 전송 속도 테스트


CANTUS는 데이터 버스가 있기 때문에 궂이 SPI을 통해 제어할 필요는 없지만 SPI속도가 23Mhz라 테스트 해 볼만하다.
[NET-EVM] 보드를 이용하녀  SPI만 지원하는 W5200 모듈의 TCP 전송속도를  테스트 해 보았다.

SPI 최대 클럭이 23Mhz 일때 전송 속도는 2.38Mbps가 출력 된다.





W5200 드라이버 코드
//-----------------------------------------------------------------------------
// W5100 HAL
#define W5100_CS_PORT     
#define W5100_CS_BIT     BIT5
#define W5100_RST_BIT     BIT4

#define W5100_IO_INIT()     Sbi(*R_PAF4, (3<<(2*5)));Sbi(*R_P4oDIR, W5100_CS_BIT);\
          Sbi(*R_PAF2, (3<<(2*4)));Sbi(*R_P2oDIR, W5100_RST_BIT)

#define IINCHIP_CSoff()     Sbi(*R_P4oLOW, W5100_CS_BIT)
#define IINCHIP_CSon()     Sbi(*R_P4oHIGH, W5100_CS_BIT)

#define IINCHIP_SPI_INIT()    SPI0_Init()
#define IINCHIP_SpiSendData    SPI0_WriteReadByte
#define IINCHIP_SpiRecvData    SPI0_WriteReadByte

#define IINCHIP_RSToff()    Sbi(*R_P2oLOW, W5100_RST_BIT)
#define IINCHIP_RSTon()     Sbi(*R_P2oHIGH, W5100_RST_BIT)
//-----------------------------------------------------------------------------

Posted by nexp

댓글을 달아 주세요