[Microchip]/PIC322010. 11. 25. 23:30

PIC32 속도 측정

PIC32 속도 측정


최대 PIC32는 80Mhz에 0 Waite Flash이다. 물론 코어 속어클럭과 페리 클럭은 분리되어 있고 페리 클럭은 훨신더 느리지만 다른 MCU에 비하면 상당히 빠른 결과가 나왔다. 다른 MCU속도 측정 결과 참고.

우선 기본적인 IO속도 측정을위해 IO토글하는 코드로 테스트 해보자.
8Mhz 클럭을 PLL로 80Mhz로 설정하고 테스트 하였다.
#pragma config FNOSC    = PRIPLL        // Oscillator Selection
#pragma config FPLLIDIV = DIV_2         // PLL Input Divider (PIC32 Starter Kit: use divide by 2 only)
#pragma config FPLLMUL  = MUL_20        // PLL Multiplier
#pragma config FPLLODIV = DIV_1         // PLL Output Divider
#pragma config FPBDIV   = DIV_1         // Peripheral Clock divisor
:

main()
{
  SystemInit();

   TRISB = 0;

    while( 1)
    {
       LATB ^= 0xFF;
    } // main loop
}



코드 효율을 보기위해 Disasembly Listing를  Open한다.






옵티마이즈 옵션을 설정한다.



Os 일때  6.6Mhz 출력된다. 40Mhz dsPIC보다 조금 빠르다.

옵티마이즈를 O3으로 바꿔보자.  8Mhz 나온다. 상당히 빠르다.
18:                    LATB ^= 0xFF;
9D000058  8C6B6060   lw          t3,24672(v1)
9D00005C  396A00FF   xori        t2,t3,0xff
9D000060  AC6A6060   sw          t2,24672(v1)
9D000064  8C6B6060   lw          t3,24672(v1)
9D000068  396A00FF   xori        t2,t3,0xff
9D00006C  AC6A6060   sw          t2,24672(v1


코드를 수정해 Port On/Off 만 해보자
Os 일때 20Mhz 가 나온다.
19:                    LATB=0;
9D00005C  AC406060   sw          zero,24672(v0)
20:                    LATB=1;
9D000060  AC436060   sw          v1,24672(v0)


O3일 때 40Mhz 나온다. 멋지다! 이정도 속도면 딜레이를 주어야 할 상황이다.
19:                    LATB=0;
9D00005C  AC406060   sw          zero,24672(v0)
9D000064  AC406060   sw          zero,24672(v0)
20:                    LATB=1;
9D000060  AC436060   sw          v1,24672(v0)
9D000068  AC436060   sw          v1,24672(v0)


저렴한 MCU급에서 이정도 속도는 지금것 못본것같다. 저렴한 가격에 이정도면 쓰일곳이 많을것 같다.

Posted by nexp

댓글을 달아 주세요

[Microchip]/PIC322010. 11. 25. 09:00

[PIC32-SM EVM] 관련 자료

[PIC32-SM EVM] 관련 자료




PIC32 회로도








PIC32MX44 핀맵



USB Host 테스트용 PIC32-SM EVM Board
Posted by nexp
TAG PIC32

댓글을 달아 주세요

[Microchip]/PIC322010. 4. 26. 00:29

PIC32 USB Host 예제 컴파일 하기

PIC32 USB Host 예제 코드를 컴파일 하면 에러가 뜨는데
#include <plib.h>
와 같이 라이브러리를 이용하면 에러가 발생한다.

PIC32 컴파일러를 새로 깔거나
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2615&dDocName=en532454

업데이트 해주면 에러없이 컴파일 된다.
MPLAB C Compiler for PIC32 v1.10B upgrade  

새로운 칩이라 까다로운 점이 많다.

Posted by nexp
TAG PIC32

댓글을 달아 주세요

  1. 비밀댓글입니다

    2011.09.14 14:09 [ ADDR : EDIT/ DEL : REPLY ]

[Microchip]/PIC322010. 4. 25. 19:30

[PIC32-SM EVM] 보드 제작 - Mini USB Host Board

[PIC32-SM EVM] 보드 제작 - Mini USB Host Board


USB Host기능이 있는 작은 모듈을 제작 하기 위해 저렴하고 고성능의 PIC32를 선택해서 소형의 USB Host모듈을 제작 해 보았다. 기존 [SM-Type EVM] 형태로 제작하여 핀맵을 통일 했고 여러 용도로 사용하기 편리하게 제작 했다.

USB Host기능을 우선으로 해서 USB Host커넥터를 보드 앞쪽에 장착했다.


MPU는 PIC32중에서 가장 소형이고 기능이 좋은 PIC32MX440F512로 제작 해 보았다. Microchip의 장점으로 소형이지만 상당한 기능을 가지고 있는데 32bit core, USB Host에 512Flah로 웬만한건 쉽게 구현할 수 있을것 같다.



확장 테스트 보드






TFT LCD테스트 확장 모듈


PIC32 MP3 테스트 보드



PIC32MX440 보드 테스트 동영상

Posted by nexp

댓글을 달아 주세요

[Microchip]/PIC322009. 8. 29. 08:05

[PIC32 - 100 EVM] 관련자료

[PIC32-100 EVM] 관련자료


Posted by nexp

댓글을 달아 주세요