본문 바로가기

SAMD21

(14)
#SAMD21E-S EVM - Arduino Zero 성능 테스트 ASMD21에 Arduino 를 올렸으니 간단히 성능 테스트를 해 봐야지... GPIO 토글 속도로 수행 속도를 측정해 보았다. 다른 MCU의 Arduino 코드에서 성능 테스트와 비교해 보면 클럭대비 나쁘지는 않은것 같다. 아두이노에서 제공하는 GPIO제어 함수(digitalWrite)로 GPIO 토글 하면 2.3us 정도 측정이 된다. #define PIN_OUT 27 #define Led1Off() PORT->Group[0].OUTCLR.reg = (1
#SAMD21E-S EVM - ATSAMD21E Arduino Zero Board 만들기 Arduino Code로 테스트 하면 이미 작성되어 있는 라이브러리가 많아서 간단하게 테스트 하기에 좋은것 같다. 그래서 SAMD21E EVM 보드에 아두이노 부트로더를 올려 보았다. #SAMD21E-S EVM 보드에 ATSAMD21 Arduino Bootloader 를 넣었더니 USB인식은 하는데 실제 Arduino IDE에서 구동하면 프로그램이 동작을 하지 않는다. ATSAMD21A 기준으로 작성된 bootloader라서 그런가... variant.cpp 파일을 수정 해 주어야 하나? ATSAMD21A 와 ATSAMD21E 용량 차이 때문에 그런것 같다. https://github.com/mattairtech/ArduinoCore-samd 에 SAMD21E를 이용하여 작성한 bootloader가 있다..
[SAMD21E-S EVM] Atmel Start 에서 printf 사용하기 (float 변수 출력) [SAMD21E-S EVM] Atmel Start 에서 printf 사용하기 (float 변수 출력) Atmel START 개발환 경에서 시리얼 포트 출력에서 printf 를 사용하려면 _write(), _read() 함수를 원하는 포트로 재 정의 해 주면 된다. int _write( int32_t file , uint8_t *ptr , int32_t len ){ /* Implement your write code here, this is used by puts and printf for example */ for ( int16_t i = 0 ; i
[SAMD21E-S EVM] ATSAMD21 UART 테스트 [ATSAMD21E-S EVM] ATSAMD21 UART 테스트[SAMD21E-S EVM] ATSAMD21 UART 테스트 ATSAMD21 의 UART 실험을 Atmel Studio 에서 해보았다. [SAMD21E-S EVM] 보드는 S-Type EVM 형태의 핀맵으로 표준화 되어 있고 Serial 핀이 PA10(TXD), PA11(RXD) 에 할당 되어 있다. 먼저 Atmel START로 프로젝트 생성하고 UART Component를 추가 한다. UART 핀맵을 PA10, PA11에 할당하고 코드 생성 한다. 테스트는 S-Type - SSM-Type EVM 확장테스트 보드, USB C-type USB2UART 보드를 이용하여 진행 하였다. Atmel START에서 자동 생선된 기본 코드에서 examlp..
[SAMD21E-S EVM] ATSAMD21 MCU 성능 측정 - ATSAMD21 48Mhz 클럭 설정 문제 발생 및 해결 [SAMD21E-S EVM] ATSAMD21 MCU 성능 측정 - ATSAMD21 48Mhz 클럭 설정 문제 발생 및 해결 SAMD21은 저렴한 가격에 소형이고 적당한 성능(48Mhz Cortex-M0)에 USB까지 있어 사용할 곳이 많을것 같은 MCU이다.실제 성능을 한번 측정 해 보자. 우선 단순하게 GPIO 토글 속도를 측정해 봐야 할것 같다. // Set pin direction to output gpio_set_pin_direction(PA14, GPIO_DIRECTION_OUT); gpio_set_pin_function(PA14, GPIO_PIN_FUNCTION_OFF); /* Replace with your application code */ while (1) { delay_ms(1); PO..
[SAMD21E-S EVM] ATSAMD21 개발환경 설정 - Atmel Studio7 (ATMEL START) [SAMD21E-S EVM] ATSAMD21 개발환경 설정 - Atmel Studio7 (ATMEL START)ATSAMD21 의 개발환경으로 AtmelStudio7를 사용 하였다. 기존 AVR 컴파일에 사용 했던 Atmel START를 이용하면 쉽게 SAM 시리즈도 개발 할수 있어 장점인것 같다. 우선 새로운 프로젝트를 Atmel START로 생성한다. 디바이스(ATSAMD21)를 선택하고 다음. DASHBOARD 에서 필요한 Component를 추가 한다. PINMUX 에서 프로젝트에 사용될 핀들을 할당하고 설정한다. 팁AtmelStudio START의 장점으로 생성된 코드에서 Atmel START 프로젝트 환경을 생성해 낼 수 있다. 즉 개발 도중에 추가 컴포넌트가 있거나 핀맵 변경이 있을 경우 프..
[SAMD21E-S EVM] ATSAMD21 미니보드 제작 [SAMD21E-S EVM] ATSAMD21 미니보드 제작 간단한 프로젝트 진행을 위해 소형 이면서 저렴하고 어느정도 성능도 보장하는 MCU를 찾게 되는데 ATSAMD21E는 QFN32의 소형 저가격(1$대)을 만족하는 칩 인것 같다. 핀맵도 간단하고 쉽게 제작 할 수 있어서 S-Type 형태의 소형으로 제작 해 보았다. SM-Type 핀맵 회로도 간단히 테스트 해 볼수 있는 LED가 PA27에 할당 되어 있다. QNF32의 작은 칩 이지만 DA출력도 있어 오디오 출력도 가능해 보드 내부에 Serial Flash 메모리도 실장 할수 있도록 했다. S-Type 형태의표준 핀맵으로 제작해 다양한 확장 테스트 보드에서 테스트 가능하도록 했다
Arduino Zero - Serial 어디에 정의 되어 있을까? Arduino Zero - Serial 어디에 정의 되어 있을까? Arduino Zero는 SAMD21 MCU이므로 6채널의 SERCOM 있다. UART 채널을 추가 하거나 변경하려고 보니 어디에 Serial 설정이 되어 있는지 정리할 필요가 있을것 같다. Uart.h 에 Serial 관련 클래스가 할당되어 있다.extern Uart Serial;extern Uart Serial5; 기본은 PA10, PA11에 설정되어 있다.typedef enum{UART_TX_PAD_0 = 0x0ul, // Only for UARTUART_TX_PAD_2 = 0x1ul, // Only for UARTUART_TX_RTS_CTS_PAD_0_2_3 = 0x2ul, // Only for UART with TX on PAD0..