'mbed'에 해당되는 글 5건

  1. 2018.01.21 NUCLEO-F446RE 보드 설정(4) 1
  2. 2018.01.21 NUCLEO-F446RE 보드 설정(2)
  3. 2018.01.13 NUCLEO-F446RE 보드 스펙
  4. 2018.01.12 STM32 MCU 누클레오 보드
  5. 2018.01.12 Arduino vs. mbed 1


USART communication


STM32 마이크로컨트롤러의 PA2와 PA3 상에 가능한 USART2 인터페이스는 ST-LINK MCU, ST morpho 커넥터 혹은 Arduino 커넥터로 연결될 수 있습니다. 이 선택은 관련된 solder bridge를 설정하는 것에 의해서 변경될 수 있습니다. 티폴트로 Mbed(SB13과 SB14 ON, SB62와 SB63 OFF)를 위한 가상 COM 포트를 지원하기 위해서 타겟 STM32와 ST-LINK MCU 사이에 USART2 통신이 가능합니다. 만일 타겟 STM32 PA2 (D1) 혹은 PA3 (D0) 그리고 쉴드 혹은 확장 보드 사이에 통신이 요구되면, SB62과 SB63는 ON 되어야 하고 SB13과 SB14는 OFF 되어야 합니다. 그러한 경우에 또다른 USART를 ST-LINK MCU로 ST morpho 커넥터와 CN3 사이에 연결선을 사용하여 연결이 가능합니다. NUCLEO-F103RB의 예를 들어, PC10 (TX) and PC11 (RX) 상에 가능한 USART3를 사용하는 것이 가능합니다. 두 연결선(flying wire)은 다음과 같이 연결되어야 합니다:

• PC10 (USART3_TX) available on CN7 pin 1 to CN3 pin RX

• PC11 (USART3_RX) available on CN7 pin 2 to CN3 pin TX


Push-buttons

B1 USER: 유저 버튼은 STM32 마이크로컨트롤러의 I/O PC13 (핀 2)에 연결됩니다.

B2 RESET: 이 푸쉬 버튼은 NRST에 연결되고 STM32 마이크로컨트롤러의 RESET에 사용됩니다.

Note: 푸쉬 버튼에 위치한 파란색 그리고 검은색 플라스틱 덥개는 만일 필요하다면 제거될 수 있습니다. 예를 들어 쉴드 혹은 애플리케이션 보드가 누클레오 보드의 위에 꼽힐 때 등입니다. 이는 버튼에 압력 그러므로 가능한 영구적인 타겟 STM32 RESET을 피할 수 있습니다.


JP6 (IDD)


IDD라 라벨된 점퍼 JP6은 점퍼를 제거하고 전류계를 연결하는 것에 의해서 STM32 마이크로컨트롤러 전류 소비를 측정하는데 사용됩니다:

• Jumper ON: STM32 microcontroller is powered (default).STM32 마이크로컨트롤러가 전력이 공급됩니다(디폴트).

• Jumper OFF: 전류계는 STM32 마이크로컨트롤러 전류를 측정하기 위해서 연결되어야만 합니다. 만일 전류계가 없다면 STM32 마이크로컨트롤러는 전력이 공급되지 않습니다.



'Embedded Programming > STM32 Cortex-M4' 카테고리의 다른 글

NUCLEO-F446RE 보드 설정(6)  (1) 2018.01.21
NUCLEO-F446RE 보드 설정(5)  (0) 2018.01.21
NUCLEO-F446RE 보드 설정(3)  (0) 2018.01.21
NUCLEO-F446RE 보드 설정(2)  (0) 2018.01.21
NUCLEO-F446RE 보드 레이아웃  (0) 2018.01.14
Posted by Nature & Life


STM32 누클레오 보드는 2 파트로 나누어집니다: ST-LINK 파트와 STM32 파트. PCB의 ST-LINK 파트는 보드의 사이즈를 줄이기 위해서 자를 수 있습니다. 이 경우에 남겨진 타겟 STM32 파트는 오직 VIN, E5V 그리고 ST morpho 커넥터 상에 3.3V 그리고 Arduino 커넥터 CN6 상에 3.3V에 의해서 전력이 공급될 수 있습니다. 메인 STM32는 CN4와 ST morpho 커넥터(SWCLK CN7 pin 15 그리고 SWDIO CN7 pin 13) 상에 가능한 SWD 사이에 연결선을 이용해서 프로그램하는데 ST-LINK를 사용하는 것은 여전히 가능합니다.


Embedded ST-LINK/V2-1


ST-LINK/V2-1 프로그래밍과 디버깅 툴은 STM32 누클레오 보드에 집적되었습니다. ST-LINK/V2-1는 STM32 누클레오 보드가 Mbed가 가능하도록 합니다. 임베디드(embeddedST-LINK/V2-1는 STM32 디바이스에서 오직 SWD만을 지원합니다. 디버깅 그리고 프로그래밍에 대한 정보에 대해서 그 기능은 STM8 그리고 STM32 User manual(UM1075)에 대한 ST-LINK/V2 in-circuit debugger/programmer를 참조하세요. 이 메뉴얼에서는 모든 ST-LINK/V2 기능에 대하여 자세하게 설명합니다.


ST-LINK/V2에서의 변화는 다음과 같습니다.

• New features supported on ST-LINK/V2-1:

– USB software re-enumeration

– Virtual COM port interface on USB

– Mass storage interface on USB

– USB power management request for more than 100 mA power on USB

• Features not supported on ST-LINK/V2-1:

– SWIM interface

– Minimum supported application voltage limited to 3V

• Known limitation:

ST-LINK/V2-1 target 상에 readout protection을 활성화하는 것은 타켓 애플리케이션을 앞으로 동작할 수 없습니다. 타겟 readout protection은 ST-LINK/V2-1 보드에서 유지되어져아 합니다.


점퍼 상태에 따라 임베디드 ST-LINK/V2-1를 사용하는 2가지 다른 방법이 있습니다:



• 온보드(on-board) STM32을 프로그램/디버그

SWD 커넥터 CN4에 연결된 케이블을 사용하여 외부 애플리케이션 보드에서 MCU를 프로그램/디버그


드라이버


누클레오-64 보드를 USB를 이용하여 Windows 7, Windows 8 혹은 Windows XP PC로 연결하기 전에 ST-LINK/V2-1 드라이버는 설치되어야 합니다. 이는 www.st.com 웹사이트로부터 다운로드 할 수 있습니다. 경우에 따라서 STM32 누클레오-64 보드는 드라이버가 설치되기 전에 PC에 연결될 수 있고, PC 디바이스 메니저는 일부 누클레오 인터페이스를 "Unknown"으로 보고할 수도 있습니다. 이런 상황을 해결하기 위해 해당 드라이버를 설치한 후에 STM32 누클레오-64 보드에서 발견된 "Unknown" USB 장치를 이 해당 드라이버로 디바이스 메니저에서 직접 변경해 주어야만 합니다.

Note: 다음 그림에서 보여지는 것과 같이 USB Composite Device를 사용해서 진행하는 것을 추천합니다.



ST-LINK/V2-1를 사용하여 보드 상에 STM32의 프로그래밍과 디버깅


보드에 STM32를 프로그래밍하기 위해서 다음 그림에서 같이 CN2에 두 점퍼를 꼽습니다. 이는 STM32 누클레오 보드의 STM32 마이크로컨트롤러와 통신을 방해할 수 있기 때문에 CN4 커넥터를 사용하지 마세요.



ST-LINK/V2-1를 사용해서 외부 STM32 애플리케이션을 프로그래밍과 디버깅


외부 애플리케이션에서 STM32를 프로그래밍하기 위해서 ST-LINK/V2-1를 사용하는 것은 매우 쉽습니다. 다음 그림에서 나타내듯이 CN2에서 두 점퍼를 간단히 제거하고 그리고 아래 테이블과 같이 CN4 디버그 커넥터로 애플리케이션을 연결합니다.

Note: SB12 NRST (타겟 STM32 RESET)은 만일 CN4 핀 5가 외부 애플리케이션에서 사용된다면 OFF 되어져야만 합니다.




'Embedded Programming > STM32 Cortex-M4' 카테고리의 다른 글

NUCLEO-F446RE 보드 설정(4)  (1) 2018.01.21
NUCLEO-F446RE 보드 설정(3)  (0) 2018.01.21
NUCLEO-F446RE 보드 레이아웃  (0) 2018.01.14
NUCLEO-F446RE 보드 설정(1)  (0) 2018.01.13
NUCLEO-F446RE 보드 스펙  (0) 2018.01.13
Posted by Nature & Life


STM32 Nucleo-64 개발보드는 STM32F446RE MCU를 실장하며 Arduino와 ST morpho 연결이 가능합니다. 다음은 ST사의 보드 설명과 간단한 스펙 그리고 사용자 메뉴얼입니다.


NUCLEO-F446RE

Brief specification

사용자 메뉴얼


요약하면 STM32 누클레오 보드는 사용자에게 STM32 MCU를 이용하여 새로운 아이디어와 프로토타입을 만드는데 저렴하고 유연한 방법을 제공합니다. 성능과 전력 소모 그리고 스펙의 다양한 조합의 선택해서 말입니다. 호환되는 보드로서 SMPS는 Run 모드에서 전력 소모를 크게 줄여줍니다.


Arduino Uno V3 연결이 가능하고 ST morpho 헤더는 광범위한 특성화된 쉴드 보드의 선택과 함께 STM32 누클레오 오픈 개발 플랫폼의 기능의 손쉬운 확장을 가능하게 합니다.


STM32 누클레오 보드는 별도의 프로브를 필요로 하지 않는데 이는 ST-LINK/V2-1 디버거/프로그래머를 탑재하기 때문입니다.


STM32 누클레오 보드는 다양한 패키지 형태의 소프트웨어 예제와 함께 STM32의 이해가 쉬운 소프트웨어 HAL 라이브러리와 제공되며 게다가 http://mbed.org의 Arm Mbed 온라인 리소스에 곧바로 접근할 수 있습니다.


Key Features

    • STM32 microcontroller in LQFP64 package

    • External SMPS to generate Vcore logic supply (only available on '-P' suffixed boards)

    • 1 user LED shared with Arduino™

    • 1 user and 1 reset push-buttons

    • 32.768 kHz LSE crystal oscillator

    • Board expansion connectors:

      • Arduino™ Uno V3

      • ST morpho extension pin headers for full access to all STM32 I/Os

      • External SMPS experimentation dedicated connector (only available on '-P' suffixed boards)

    • Flexible power-supply options: ST-LINK USB VBUS or external sources

    • On-board ST-LINK/V2-1 debugger/programmer with USB re-enumeration capability. Three different interfaces supported on USB: mass storage, virtual COM port and debug port

    • Comprehensive free software libraries and examples available with the STM32Cube MCU Package

    • Support of a wide choice of Integrated Development Environments (IDEs) including IAR™ , Keil® , GCC-based IDEs, Arm® Mbed™

    • Arm® Mbed Enabled™ compliant (only for some Nucleo part numbers)


NUCLEO-F446RE


위 보드는 상단과 하단의 PCB로 구분되며 상단의 MCU는 ST-LINK/V2-1 디버거/프로그래머가 구현된 부분으로, 온보드(on-board 혹은 embedded) 디버거/프로그래머라 합니다. 이 PCB 상의 USB 포트에 사용자 개발환경(IDE)이 설치된 PC와 연결되고 각 사용자 개발환경에 따라서 USB 드라이버를 설치(www.st.com)해야 합니다.


P-NUCLEO-IHM001



'Embedded Programming > STM32 Cortex-M4' 카테고리의 다른 글

NUCLEO-F446RE 보드 레이아웃  (0) 2018.01.14
NUCLEO-F446RE 보드 설정(1)  (0) 2018.01.13
STM32F4 시리즈  (1) 2018.01.13
STM32 MCU 누클레오 보드  (0) 2018.01.12
Discovery vs. Nucleo board  (1) 2018.01.11
Posted by Nature & Life


매우 저렴한 STM32 누클레오(Nucleo) 보드는 STM32 MCU를 사용하여 사용자의 새로운 아이디어를 시도하고 빠르게 프로토타입을 생성하게 합니다. 동일한 커넥터를 사용하여 STM32 누클레오 보드 시리즈는 다양한 특화된 애플리케이션 하드웨어 애드온(add-on)(Nucleo-64는 Arduino Uno rev3와 ST morpho 커넥터를 포함하고, Nucleo-32는 Arduino Nano 커넥터를 포함합니다) 방식으로 쉽게 확장할 수 있습니다.


Arduino UNO R3 and ST morpho connector


STM32 누클레오 보드는 ST-Link 디버거/프로그래머를 동일 보드에 구현하였기 때문에 별도이 프로브가 필요하지 않습니다.


다양한 소프트웨어 예제와 함께 이해가 쉬운 STM32 소프트웨어 HAL 라이브러리가 STM32 누클레오 보드와 함께 제공되며, IAR EWAEM, Keil MDK-ARM, mbed 그리고 GCC/LLVM-based IDE를 포함한 넓은 범위의 개발 환경에서 완벽하게 동작합니다.


모든 STM32 누클레오 사용자는 www.mbed.org에서 mbed 온라인 리소스(compiler, C/C++ SDK, and 개발자 커뮤니티)에 자유롭게 접근할 수 있으며 불과 수분 내에 완성된 애플리케이션의 제작이 가능합니다.


다음의 ST사에서 STM32 누클레오 보드의 구분입니다.



다음은 누클레오 보드의 주문 코드와 탑재된 STM32 MCU의 목록입니다.



다음은 누클레오 보드의 주문코드에 대한 의미를 나타낸 예제입니다.



'Embedded Programming > STM32 Cortex-M4' 카테고리의 다른 글

NUCLEO-F446RE 보드 스펙  (0) 2018.01.13
STM32F4 시리즈  (1) 2018.01.13
Discovery vs. Nucleo board  (1) 2018.01.11
STM32F4 시리즈의 소자 구별 방법  (0) 2018.01.03
STM32F405xx 스펙 요약  (0) 2017.11.17
Posted by Nature & Life


영국의 ARM사가 주도하는 mbed는 ARM-cortex기반의 MCU를 사용하여 IoT제품이나 여러 전자제품의 프로토타이핑(prototyping)을 쉽게 제작하고 Cloud 서비스 테스트까지 할수 있는 플랫폼으로, Arduino와 같은 해에 시작하고 2009년에 베타서비스를 시작했지만 2013년에야 mbed를 오픈하기로 결정하고 주변 디바이스, API, 기판 설계 데이터, 펌웨어 등을 공개하면서 주목받기 시작하였습니다.



사실 기존에는 Arduino라는 가볍고 쉬운 AVR이 존재했지만 ARM 계열에서는 Arduino Due 제외하고는 가볍고 쉬운 AVR은 없었고 대부분 전문 컴파일러를 사용하여 제작하였기 때문에 전문가가 아니면 사용하기가 어려웠었습니다. 그렇기 때문에 ARM에서도 Arduino와 같이 접근성이 좋고 빠르게 개발이 가능하도록 만든 소프트웨어가 바로 "mbed"라는 것입니다. 아직까지 국내에서는 Arduino보다 인지도가 적은 편이지만 Ardunio보다 더 좋은 성능으로 IoT개발 보드 시장 영역을 넓혀가고 있다는 것입니다.


참고로 ARM사의 cortex-M4를 MCU의 경우에는 IoT에서 가장 중요한 화두인 전력문제에 있어서 저전력기술을 활용함으로써, 100~180MHz로 동작하는 동안 매우 낮은 동적 전력 사용량을 제공하며, 경쟁사 유사제품에 비해 7배 낮은 정적 소비 전력을 보여줍니다. 


웹브라우저를 통한 온라인 컴파일 및 소스 버전 관리 기능(Web-IDE)을 제공하여 어떤 OS에서든 웹브라우저에서 온라인으로 컴파일이 가능하고, 프로그램 업로드는 별도 장비없이 USB에 연결만 하면 가능하도록 되어 있다는 것입니다. 게다가 커뮤니티를 통한 라이브러리 공개 및 방대한 개인 위키 페이지 제공으로 협업에 유익하고 무엇보다, 모든 사용자가 기본적으로 같은 하드웨어를 이용하고 있기에 확장 보드가 아닌 이상 바로 적용 가능하다는 것입니다.



mbed의 장점으로는 기본적으로 MCU의 성능이 Arduino보다 좋기 때문에 고성능으로 더 높은 사양대를 커버할 수 있지만, Ardunio에 비해 상대적으로 사용자가 적다는 단점이 있습니다. 온라인 컴파일러에서 브레이크 포인터를 사용하여 스텝별 실행 및 내부 레지스터, 변수 등의 디버깅은 불가능하고 프로그램 업로드 방식에 있어서도 파일을 추출하고 이 파일을 다시 보드에 업로드 시켜야하는 상대적으로 Arduino에 비해 귀찮은 과정도 단점으로 여겨질 수 있습니다.


Arduino와 mbed 차이점으로, 모든 Arduino는 Atmel MCU 사용하여 작은 메모리와 제한된 기능을 가지고 있으며 느리다는 것입니다. 대부분의 Arduino 보드들은 ATmega328이고, Mega보드는 ATmega2560이며, 새로운 Due보드는 ARM Cortex-M3를 사용한다. 반면에 mbed 플랫폼은 더 빠르고, 메모리도 크고, 더 많은 기능을 가진 ARM Cortex MCU를 사용합니다. 사실 공식적인 mbed 플랫폼들은 Cortex-M0, M3와 M4를 기반으로 만들어진다는 것입니다.


프로토타입을 만드는데는 둘 다 우수하지만 프로토타입을 만든 후에 생산을 하고자 할 때는 mbed가 더 scalable한 플랫폼이기 때문에 더 낮고, 아주 간단한 응용제품을 제외하고는 ARM MCU들이 같거나 더 싼 가격에 더 낮은 전력 소모를 하며, 더 많은 기능을 가지고 있기 때문에 그 입지가 점점 좁아지고 있다는 것입니다.



Posted by Nature & Life