본문 바로가기

[ATMEL]/SAMD21

(25)
ATSAMD21 Arduino M0 보드 테스트 - 부트로더 다운로드하기 ATSAMD21 Arduino M0 보드 테스트 - 부트로더 다운로드하기 ATSAMD21 Arduino M0보드를 새로 제작해서 M0보드 부트로드 다운로드 했는데.. 에러가 발생한다. Severity: ERRORComponentId: 20100StatusCode: 131106ModuleName: TCF command: Modules:add failed. Unable to parse objectfile D:\WORK\project\2020\ELAB\TEST\samd21j\Bootloader_D21_M0_150515.hex: Unsupported format. 찾아보니 hex파일 끝에 케리지 리턴이 입력되어 있어 그렇다고 하고 열어서 지워 주니 잘 동작 한다. 기존 SAMD21 보드로 Atmel Studio..
ATSAMD21 Arduino M0 보드 제작 ATSAMD21 Arduino M0 보드 제작AT91SAMD21J18을 이용하여 Adruino 형태의 보드를 제작 했다.Arduino M0 핀맵과 동일하게 제작해서 M0 보드로 활용 가능하도록 했다. 기본은 Arduino M0 보드를 기준으로 하고 몇가지 부가 기능들을 좀 추가 하여 여러가지 용도로 테스트 할수 있도록 제작 하였다. 아두이노 에서 ATSAMD21 M0보드 설정하기기본 부트로드를 다운로드 한 후 아두이노 보드메니저에서 Arduino M0 Pro(Native USB Port)를 설정해 주면된다. 기본 세팅은 테스트 되었고 이제 아두이노용으로 제작한 다양한 확장 실드 보드로 테스트 하면 좋을것 같다.
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..
[SAMD21 EVM] 아두이노 제로(Arduino Zero) 보드 만들기 [SAMD21 EVM] 아두이노 제로(Arduino Zero) 보드 만들기 Arduino Zero 보드는 ATSAMD21G18을 이용한 보드 이다. [SAMD21 EVM] 보드에 부트로더만 다운로드 하면 쉽게 Arduino Zero 보드를 제작 할 수 있다. 테스트는 [SAMD21 EVM] 보드와 모든 포트가 출려되는 STM32-48 EXP 확장 테스트 보드를 이용 하여 진행 하였다. 먼저 ARDUINO 최신 프로그램부터 다운로드 한다. Arduino Zero 부트로더 설치부트로더는 아래 폴더에 있고 JTAG를 이용하여 다운로드 하면 된다.arduino-1.7.8\hardware\arduino\samd\bootloaders\zeroBootloader_D21_M0_150515.hexBootloader_D2..
[SAMD21 EVM] - UART 테스트 [SAMD21 EVM] - UART 테스트 SAM D 시리즈의 특징으로 멀티 SERCOM모듈을 들수 있다. SERCOM 은 I2C, SPI or USART를 쉽게 할당해서 유연하게 사용 할 수 있는 장점이 있다. 특히 IO핀을 다양한 형태로 할당 할 수 있으므로 PCB설계에 있어 자유롭게 제작 가능하다. SAMD21 UART 초기화 설정 코드SAMD21 EVM의 UART는 SERCOM2의 PA13(PAD1)->RXD, PA14(PAD2)->TXD 에 할당이 되어 있으므로 아래와 같이 핀맵 설정할 수 있다.struct usart_config usart_conf; usart_get_config_defaults(&usart_conf);usart_conf.mux_setting = USART_RX_1_TX_2_X..
[SAMD21 EVM] - 타이머 인터럽트 테스트 [SAMD21 EVM] - 타이머 인터럽트 테스트 Cortex-M0 코어를 사용하는 CPU와 거의 유사하게 사용할 수 있는것 같다. SAMD21 타이머 인터럽트 핸들러void SysTick_Handler(void){ Led2Toggle();} ATSAMD21 타이머 인터럽트 테스트 예제코드int main(void){system_init(); //1ms setting SysTick_Config(48000); Led1Init();Led2Init(); while (true) { }}
[SAMD21 EVM] CPU 클럭 설정 및 성능 측정 실험 [SAMD21 EVM] CPU 클럭 설정 및 성능 측정 실험 SAMD 시리즈는 Cortex-M0 코어의 48Mhz 로 동작하고 여러 다양한 기술로 페리의 병목현상을 줄여 성능 향상을 했다고 한다. 일단 GPIO 제어로 간단히 속도 테스트를 해보도록 하자. 우선 아래 코드와 같이 ATMEL에서 제공하는 코드를 이용하여 GPIO 토글 속도 테스를 해 보았다. int main(void){system_init(); Led1Init(); Led2Init(); while (true) { port_pin_toggle_output_level(PIN_PB30);}} GPIO토글 속도600khz로 출력된다.느리다. 아무래도 클럭 설정에 문제가 있는것 같다. conf_clocks.h 파일에 클럭 설정하는 부분이 있다.디폴트..
[SAMD21 EVM] 개발환경 설정 - IAR 을 이용한 환견 설정 [SAMD21 EVM] 개발환경 설정 - IAR 을 이용한 환견 설정 SAMD21 시리즈를 위한 개발환경은 여러가지가 있지만 익숙하고 간단히 사용할 수 있는 IAR 컴파일러를 이용하면 편리하다. 무엇보다 JLINK를 지원하기 때문에 좋은것 같다.IAR 7.2 이상 필요하다. ATMEL에서 제공하는 소프트웨어로 AVRSOFTWAREFRAMEWORK를 이용하면 쉽게 개발 환경을 구축 할 수 있다. http://www.atmel.com/tools/AVRSOFTWAREFRAMEWORK.aspx 다만 ATMEL에서 제공하는 다양한 MCU를 지원하다보니 복잡하고 불필요 한 것들이 너무 많은것 같다. IAR 7.2버전을 이용하여 프로젝트를 생성하고 칩셋을 선택 한다. ATSAMD21J18A 를 잉용하여 보드를 제작했..

반응형