ARM9/STR92009. 9. 29. 20:36

[STR911-SM] EVM 제작

[STR911-SM] EVM 제작


ARM9코어 STR911을 [SM-Type EVM]의 소형 모듈로 제작 했다. 지난번 제작해선 PCB가 남아 있지 않고  STR911은 핀수가 적기 때문에 소형으로 만들어 두면 좋을 것같아 SM타입으로 만들었다.



MPU는 STR911FAM42X6 을 이용하여 보드 제작 했다. 256k falsh, 96k ram, 96Mhz ARM966E Core.



[SM-Type EVM] 이라 동일한 핀맵과 USB2UART, Bluetooth 모듈을 호환 가능하다.



ARM-EVM 테스트 보드



Posted by nexp

댓글을 달아 주세요

ARM9/STR92008. 4. 27. 01:56

STR911 GPIO 토글링 속도 측정

STR911 GPIO 토글링 속도 측정

while(1)
{
   GPIO2->DR[0x3FC] ^= 0xFF;
}


기본 예제로 클럭 설정시 25Mhz에서
  SCU_MCLKSourceConfig(SCU_MCLK_OSC);         /*Use OSC as the default clock source*/
  SCU_PCLKDivisorConfig(SCU_PCLK_Div1);      /* ARM Peripheral bus clokdivisor = 1*/
대략 600kHz 정도 출력된다.

PLL 클럭으로 설정시
  SCU_MCLKSourceConfig(SCU_MCLK_PLL);    /*Use OSC as the default clock source*/
  SCU_PCLKDivisorConfig(SCU_PCLK_Div1); /* ARM Peripheral bus clokdivisor = 1*/
  SCU_PLLCmd  (ENABLE);
1.85Mhz, 280ns 정도 나온다.

이건... AVR수준인데... [다른 MCU속도 측정 결과]
클럭 설정에 대한 매뉴얼을 더 읽어봐야 할것 같지만 아무래도 PLL설정에 문제가 있는것 같고 GPIO를 위해 포인터 접근하는 부분도 문제가 있을것 같다...

추후 테스트 하는대로 정리 하도록->
코드를 살펴보니 어셈블 되었을때 4개의 명령어로 처리된다. 그래도 이정도 속도는 아닌데... PLL설정 부분을 확인하는것이 필요하다.

     67            while(1)
     68            {
     69            GPIO2->DR[0x3FC] ^= 0xFF;
   \                     ??main_1:
   \   0000006C   FC03D4E5           LDRB     R0,[R4, #+1020]
   \   00000070   FF0020E2           EOR      R0,R0,#0xFF
   \   00000074   FC03C4E5           STRB     R0,[R4, #+1020]
   \   00000078   FBFFFFEA           B        ??main_1
   \                     ??main_0:
   \   0000007C   ........           DC32     GPIO_InitStructure
     70            }


Posted by nexp

댓글을 달아 주세요

ARM9/STR92008. 4. 24. 21:10

STR911 GPIO 테스트

STR911 GPIO 테스트
STR911의  GPIO의 대략적 특성을 보면 아래와 같다.
  • All GPIO pins are 5V tolerant.
  • I/O port drivers may be configured as Push-Pull or as Open Collector.
  • The GPIO ports have no internal or programmable pull-up resistors.
여기서 주의 사항은 풀업 레지스터가 없다. 하드웨어 설계시 주의를 요한다는 뜻...

아래 STR911의 GPIO 블럭도를 보면 상당히 심플한데 레지스터 3개면 된다. 다른 ARM프로세서와 차이점이므로 주의 해야 한다.



STR911에서 GPIO는 아래와 같이 설정하면 된다

#define Led1Init()
SCU_APBPeriphClockConfig(__GPIO2 , ENABLE);
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput;
GPIO_InitStructure.GPIO_Pin = LED1_BIT;
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull;
GPIO_InitStructure.GPIO_Alternate=GPIO_OutputAlt1;
GPIO_Init(GPIO2, &GPIO_InitStructure)

DR 레지스터의 어드레스 옵셋은 0x3FC 이므로 아래와 같이 설정해서 사용할 수 있다.
#define PORT2      GPIO2->DR[0x3FC]


단 기본 제공 예제에서 주의 할 사항은 GPIO_DeInit() 함수로 초기화 할때 기존 설정도 지워지기 때문에 문제가 될 수 있다.
void GPIO_DeInit(GPIO_TypeDef* GPIOx)
{
       :
   if(GPIOx == GPIO2)
  {
    SCU_APBPeriphReset(__GPIO2,ENABLE);
    SCU_APBPeriphReset(__GPIO2,DISABLE);
    SCU->GPIOTYPE[0x02] = 0x0000 ;
    SCU->GPIOOUT[0x02]  = 0x0000;
    SCU->GPIOIN[0x02]   = 0x0000;
  }
}

그래서 System초기화때 GPIO_DeInit() 함수 호출 할 수 있도록 수정했다.
void SystemInit(void)
{
#ifdef DEBUG
  debug();
#endif
 
 /*Configure PLL as clock source @96MHZ*/
 MCLK_Config(STR911_PLL_CLK);
 GPIO_DeInit(GPIO2);
}


Posted by nexp

댓글을 달아 주세요

ARM9/STR92008. 4. 24. 17:38

STR911 클럭 시스템

STR911 클럭 스템




Posted by nexp

댓글을 달아 주세요

ARM9/STR92008. 4. 14. 22:53

[ IAR v5.11 ] 새로 나왔다, KickStart edition of IAR - 무료 32k 제한 버젼

[ IAR v5.11 ] 새로 나왔다, KickStart edition of IAR - 무료 32k 제한 버젼

비록 32k byte의 코드 제한은 있지만 스터디용으로 간단하게 테스트 해 볼때는 문제없을것 같다.

다운로드 


KickStart edition of IAR Embedded Workbench for ARM

The kickstart edition of IAR Embedded Workbench is completely free of charge and you may use it for as long as you want. The kickstart tools are ideal for creating small applications or for getting started fast on a new project. The only requirement is that you register to get a license key.

Code size

The code size limit is 32KB for all supported ARM-based devices.

Contents

The kickstart version is a code size limited but fully functional integrated development environment including project manager, editor, compiler, assembler, linker, librarian and debugger tools. A complete set of user guides is included in PDF format.

Limitations

The kickstart version corresponds to the latest release of the full version of IAR Embedded Workbench, with the following exceptions:

It has a code size limitation.
It does (normally) not include source code for runtime libraries.
It does not include support for MISRA C.
Very limited Technical Support.
Upgrade path

A complete upgrade path is available from IAR Systems; please contact your sales office or software distributor for information.

 
Posted by nexp
TAG IAR-AMR

댓글을 달아 주세요