[MCU]/CANTUS2012. 1. 20. 23:00

[CANTUS-EX] 이더넷을 이용한 움직이는 이미지파일 전송 테스트

[CANTUS-EX] 이더넷을 이용한 움직이는 이미지파일 전송 테스트


[CANTUS-EX] 보드는 저렴한 고속 이더넷 솔루션으로 제작한 보드이다. AVR가격 보다 저렴하지만 고속의 메모리제어 방식을 적용하면 고속 이더넷이 가능하다.

초기 기능 테스트를 위해 이더넷으로 GIF이미지를 전송하여 LCD에 출력하는 테스트를 진행 해 보았다.
아직 외부 메모리 부분의 속도를 고속으로 하기는 무리가 있지만, 이더넷으로 이미지 전송하는 기본 테스트는 가능하기 때문에 간단한 테스트를 해 보았다.


CANTUS 이더넷을 이용항 이미지 전송 테스트 동영상
[CANTUS-EX] 보드가 TCP서버로 동작하며 Client에서 움직이는 GIF이미지를 설정하면 이미지를 받아와 TFT-LCD에 출력하는 테스트 이다.


Posted by nexp

댓글을 달아 주세요

[MCU]/CANTUS2011. 12. 25. 00:33

[CANTUS-EX EVM] TFT LCD테스트 - 메모리 모드 제어

[CANTUS-EX EVM] TFT LCD테스트 - 메모리 모드 제어


CANTUS 는 저렴한 국산 32bit MCU지만 성능이 나쁘지 않다.
메모리 제어  방식이 가능하므로 TFT LCD제어를 GPIO방식이 아니라 메모리 제어 방식으로 해 보았다.


[CANTUS-EX EVM] 보드에서 TFT LCD의 Enable 핀은 CS1( P2.5)에 할당 되어 있다.

속도 측정 결과 400x240 한프레임 출력 하는데 걸리는 시간은 16ms 정도  된다. 포트제어 방식에 비교하면 좀더 빨라진것 같다.


SRAM CS0의 메모리 설정을 위해 SxCTRL(0x80000404)  레지스터를 이용하여 설정할 수 있다.





CANTUS 512 TFT LCD 메모리 제어 방식 테스트 동영상
한프레임 출력시 4ms걸리는 TMS320028335 와 ([TMS32F28335 TFT LCD_속도측정 결과) 비교하면 좀 느린감이 있지만 SD Card를 제어에 있어 SDIO기능이 있기 때문에 더 빨라 보인다. 결론적으로 성능이나 가격 보다는 각 특정 기능에 적합한 MCU를 선정할 필요가 있는것 같다.







CANTUS TFT LCD 메모리 제어 방식 설정

void LcdMode(void)
{
 *(volatile U16*)0x80000404 = 0x0101;//BANK 1 16Bit
 
 *R_PAF0 = 0xAAAA; //SRAM interface address, data
 *R_PAF1 = 0xaaaa;
 *R_PAF2 = 0xAAAA; /* nCS, nWE, nRE, ALE */ 
 }



TFT LCD제어 코드
포트제어 방식과 비교하면 상당히 코드가 간단해 진다. 때문에 속도도 더 빨라진다.
void Lcd_Cmd(unsigned int Data)   //Write Command
{
//LCD_RS_OFF();
 *(volatile unsigned short*)(LCD_BASE_DATA_ADDR) = Data;
// LCD_RS_ON();
}

void Lcd_Data(unsigned int Data)  //Write Data
{
 
 *(volatile unsigned short*)(LCD_BASE_DATA_ADDR) = Data;
 }
Posted by nexp

댓글을 달아 주세요

[MCU]/CANTUS2011. 11. 20. 16:51

[CANTUS EX EVM] W5100 외부 메모리로 제어하기 - W5100 Direct Mode TCP전송 속도

[CANTUS EX EVM]  W5100 외부 메모리로 제어하기 - W5100 Direct Mode TCP전송 속도



[CANTUS-EX EVM] 보드의 W5200 CS는 nCS2(6008_0000h)에 할당되어 있다.




일단 간단히 W5100 제어 레지스터에 값을 읽고 쓰는 테스를 해 보자
 #define COMMON_BASE                              0x60080000
#define SHAR0                                                 (COMMON_BASE + 0x0009)


while(1)
{
        //W5100 MAC 레지스터에 값 쓰기
        *((vuint8*)(COMMON_BASE+SHAR0 )) = data;
        Delay(500);

        //MAC 레즈스터값 읽기
        temp =  *((vuint8*)(COMMON_BASE+SHAR0 ));
        DebugPrint("read=%x\r\n", tenp);
       Delay(500);
}



정상 동작한다.

W5100 TCP Server 루프백 테스트 예제를 포팅하여 테스트 해 보았다.

의외로 속도가 그리 빠르지 않다.
옵티마이즈나? 메모리 타이밍 설정이 필요 할것 같다.
[7] iInChip Send: 4.8839 Mbps(1193338 bytes, 1.8642 sec)
iInChip Recv: 4.0566 Mbps(1193338 bytes, 2.2443 sec)
------------------------------------------------------------
[8] iInChip Send: 4.3536 Mbps(1193338 bytes, 2.0913 sec)
iInChip Recv: 4.0821 Mbps(1193338 bytes, 2.2303 sec)
--------------------------------------------------------




한가지 문제가 발생했다.
데이터 전송을 잘 되는데... 수신이 문제가 있는것 같다.(송신이 이상한가?)
루프백 테스트시 read에서 invaild가 발생한다.

물론 한번에 100000Byte 이상 보내는것은 문제가 없이 송수신된다.

PC 소프트웨어 문제이가?
하드웨어적 이상인가?

패킷 캡쳐해본 결과 데이터 자체는 문제가 없는것 같다. 송수신 데이터는 같은데...
소프트웨어 문제 인가?

10kbye정도의 작은 데이터 전소 성공후 또 잘 된다.
메모리 엑세스 타이밍 조절으로 최대 6.2Mbps까지 출력은 되는데...
기대하던 속도는 아니다.(이정도면 SPI 방식보다 그리 빠르지 않은데... 뭔가 좀 이상하다.)




옵티마이즈와 메모리 엑세스 타이밍을 적절히 조절 후 최종 7MBps이상 나온다.
한가지 의심스러운것은 direct모드와 indirect 모드에서 속도차이가 별로 나지 않는다는 것인데... 그렇다면 어쩌면 속도는 더 나올지도 모르겠다.

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

Posted by nexp

댓글을 달아 주세요

[MCU]/CANTUS2011. 10. 25. 17:28

[CANTUS-EX EVM] 보드 제작

[CANTUS-EX EVM] 보드 제작


국산 32비트 MCU CANTUS 를 테스트 할 수 있는  보드를 제작했다. 기존의 M-Type [CANTUS EVM] 보드 는 범용으로 제작되었기 때문에 CANTUS의 기능을 모두 적용하려면 확장 보드가 필요한데... 고민하다 CANTUS의 특징을 활용할 수 있는 보드를 제작해 보기로 했다.

기본적인  CANTUS기능을 테스트 할 수 있도록 SDIO, ADC, DAC, Voice Codec을 테스트 할 수 있도록  했고, 기존에 제작 해 두었던 이더넷, TFT LCD모듈, WiFi 모듈 등을 연결 할 수 있다.





이더넷 모듈
CANTUS는 저렴하면서도 외부 메모리 확장이 가능하므로 하드웨어 TCP/IP모듈인 W5100을 적용하면 고속으로 이더넷 전송이 가능하다. 이를 위해 메모리 제어 방식으로 W5100을 연결할 수 있도록 했다.





TFT-LCD
역시 고속의 메모리제어 방식으로 TFT-LCD모듈을 연결하여 좀더 고속으로 LCD제어를 할 수 있도록 했다.




CANTUS-EX 보드를 이용하면 이더넷으로 이미지를 전송하여 LCD에 표시하거나 오디오 파일을 전송하여 출력하는 인터넷 라디오 기능을 저렴한 가격으로 구현할 수 있을것 같다.

테스트 동영상

네트웍을 이용한 영상 전송 테스트이다.

 

네트웍을 이용한 음성 전송 테스트

Posted by nexp

댓글을 달아 주세요