[ATMEL]/SAMD212016. 2. 14. 15:22

[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\zero

Bootloader_D21_M0_150515.hex

Bootloader_D21_M0_Pro_150427.hex


Bootloader_D21_M0_150515.hex




J-Link Lite를 이용하여 부트로더를 먼저 다운로드 한다. 

https://www.segger.com/jlink-software.html

(기존 SAM 시리즈와 같이 SAM-BA 를 통해 다운로드 할수 있도록 했으면 완벽할것 같은데.... 아쉬운점이다.)




ARDUINO M0 부트로더가 정상적으로 다운로드 되었다면 USB연결하고 ARDUINO CC로 테스트 프로그램을 다운드 해 보자.




USB연결하면 Arduino M0 장치를 검색하고 드라이버를 찾는다.  

아래와 같이 aruino 설치한 폴더에 드라이버 파일을 찾을 수 있다.

D:\arduino-1.7.8\drivers








Arduino 환경 설정

보드는 Arduino M0 Pro (Native USB Port)를 선택한다.



시리얼 포트는 USB로 인식힌 시리얼 포트를 선택 한다.




Arduino 기본 예제 테스트

간단히 GPIO를 토글 하는 예제를 테스트 해 보았다.

컴파일 완료 되고 다운로드도 문제없이 진행 되는것을 확인 했다.

이제 간단히 Arduino 프로그램을 이용하여 간단히 [SAMD21 EVM] 보드를 제어할 수 있다.




Arduino 기본 예제 테스트 동영상

Arduino CC의 기본 제공 예제인 PIN12(PA17), PIN13(PA19)를 토글 하는 예제이다.




Arduino Zero 보드를 테스트 해보고...

기존 AVR을 이용한 Arduino 보드와 비교해 보면 성능면에서는 상당히 좋은것 같다.

다만 SAMD21의 고유 기능들을 모두 사용하려면 까다로운 설정을 해 주어야 하고 기존 기능과 호환성을 위해서 성능면에서 포기 해야 하는것들이 많이 있는것 같다.



소프트웨어 측면에서 간단히 사용하기는 좋을것 같은데 제한된 리소스(비용) 내애서 최대 성능을 끌어내야 하는 하드웨어 측면에서 보면 Arduino를 포팅해서 사용할 필요가 있을까 싶다.(순전히 하드웨어 엔지어어 입장에서 생각해 본 의견이다.)


컴파일도 IAR보다는 속도나 성능면에서 떨어지는것 같고프로그램 다운로드도 JTAG를 사용하는것 보다 불편한점이 많은것 같다.




Ardunio Zero 핀맵

 * + Pin number +  ZERO Board pin  |  PIN   | Label/Name      

 * +------------+------------------+--------+-----------------

 * |            | Digital Low      |        |                 

 * +------------+------------------+--------+-----------------

 * | 0          | 0 -> RX          |  PA11  |                 

 * | 1          | 1 <- TX          |  PA10  |                 

 * | 2          | ~2               |  PA08  |                 

 * | 3          | ~3               |  PA09  |                 

 * | 4          | ~4               |  PA14  |                 

 * | 5          | ~5               |  PA15  |                 

 * | 6          | ~6               |  PA20  |                 

 * | 7          | ~7               |  PA21  |                 

 * +------------+------------------+--------+-----------------

 * |            | Digital High     |        |                 

 * +------------+------------------+--------+-----------------

 * | 8          | ~8               |  PA06  |                 

 * | 9          | ~9               |  PA07  |                 

 * | 10         | ~10              |  PA18  |                 

 * | 11         | ~11              |  PA16  |                 

 * | 12         | ~12              |  PA19  |                 

 * | 13         | ~13              |  PA17  | LED             

 * | 14         | GND              |        |                 

 * | 15         | AREF             |  PA03  |                 

 * | 16         | SDA              |  PA22  |                 

 * | 17         | SCL              |  PA23  |                 

 * +------------+------------------+--------+-----------------

 * |            |SPI (Legacy ICSP) |        |                 

 * +------------+------------------+--------+-----------------

 * | 18         | 1                |  PA12  | MISO            

 * | 19         | 2                |        | 5V0             

 * | 20         | 3                |  PB11  | SCK             

 * | 21         | 4                |  PB10  | MOSI            

 * | 22         | 5                |        | RESET           

 * | 23         | 6                |        | GND             

 * +------------+------------------+--------+-----------------

 * |            | Analog Connector |        |                 

 * +------------+------------------+--------+-----------------

 * | 24         | A0               |  PA02  |                 

 * | 25         | A1               |  PB08  |                 

 * | 26         | A2               |  PB09  |                 

 * | 27         | A3               |  PA04  |                 

 * | 28         | A4               |  PA05  |                 

 * | 29         | A5               |  PB02  |                 

 * +------------+------------------+--------+-----------------

 * |            | LEDs             |        |                 

 * +------------+------------------+--------+-----------------

 * | 30         |                  |  PB03  | RX              

 * | 31         |                  |  PA27  | TX              

 * +------------+------------------+--------+-----------------

 * |            | USB              |        |                 

 * +------------+------------------+--------+-----------------

 * | 32         |                  |  PA28  | USB HOST ENABLE 

 * | 33         |                  |  PA24  | USB_NEGATIVE    

 * | 34         |                  |  PA25  | USB_POSITIVE    

 * +------------+------------------+--------+-----------------

 * |            | EDBG             |        |                 

 * +------------+------------------+--------+-----------------

 * | 35         |                  |  PB22  | EDBG_UART TX    

 * | 36         |                  |  PB23  | EDBG_UART RX    

 * +------------+------------------+--------+-----------------

 * | 37         |                  |  PA22  | EDBG_SDA        

 * | 38         |                  |  PA23  | EDBG_SCL        

 * +------------+------------------+--------+-----------------

 * | 39         |                  |  PA19  | EDBG_MISO       

 * | 40         |                  |  PA16  | EDBG_MOSI       

 * | 41         |                  |  PA18  | EDBG_SS         

 * | 42         |                  |  PA17  | EDBG_SCK        

 * +------------+------------------+--------+-----------------

 * | 43         |                  |  PA13  | EDBG_GPIO0      

 * | 44         |                  |  PA21  | EDBG_GPIO1      

 * | 45         |                  |  PA06  | EDBG_GPIO2      

 * | 46         |                  |  PA07  | EDBG_GPIO3      

 * +------------+------------------+--------+-----------------

 * |            |32.768KHz Crystal |        |                 

 * +------------+------------------+--------+-----------------

 * |            |                  |  PA00  | XIN32           

 * |            |                  |  PA01  | XOUT32          

 * +------------+------------------+--------+-----------------





Posted by nexp

댓글을 달아 주세요

[ATMEL]/SAMD212016. 2. 7. 01:34

[SAMD21 EVM] - ATSAMD21J18 테스트 보드 제작

[SAMD21 EVM] - ATSAMD21J18 테스트 보드 제작




SMART SAM D 시리즈는 Cortex®-M0+ 코어의 ATMEL사의 MCU로  저전력, 저가격의 목적으로 출시되 었다. 특히 아두이노 (Arduino ZERO) 보드에 적용되면서 핫 이슈가 되고 있어 테스트용 보드로 제작해 보았다.


최대 48Mhz로 동작하고 Mhz당 70μA전력이하 전력 소모로 저전력 이다.

AVR Studio를 이용하면 개발 환경이 무료 이다. 또는 Arduino Software (IDE)를 이용할 수도 있다.

그리고 Real Time Clock (RTC) 와 Calendar (leap year correction and 1ppm calibration)가 있어 편리한것 같다.




SM-Type EVM 형태로 핀맵을 통일화 해서 기존 확장 테스트 보드에서 쉽게 테스트 가능하도록 했다






참고로 SAMD 시리즈 부터는 기존 SAM시리즈에 있던 내장 부트로더가 빠졌다.

JTAG없이 시리얼 또는 USB로 펌웨어를 다운로드 할 수 있어서 좋았는데... 


가격 때문인지 몰라도 하드웨어 부트로드가 빠져서 불편한 점이 있는것 같다.

ST사나 NXP사에서 제공하고도 저렴하게 판매 하는데 왜 그럴까?


물론 SAM-BA 부트 펌웨어를 제공하므로 다운로드 해서 사용할 수 있지만 초기에는 JATG르로 펌웨어를 다운로드 해 주어야 한다.





SAMD21 회로도 핀맵






SM-Type EVM 형태로 기존에 제작해 둔 다양한 확장 보드에서 테스트 가능하다.





SAM D 시리즈 기능도














Posted by nexp

댓글을 달아 주세요