아두이노프로세싱 프로그래밍

아두이노 32비트 STM32 보드 설치와 붙박이 LED ON OFF

coding art 2018. 3. 21. 21:08
728x90

16비트 칩인 STM32는 아두이노 호환 보드 중에서 그다지 많이 사용되지 않기에 아예 USB 인터페이스를 위한 FTDI 칩조차 설치가 되어 있지 않은 상태로 거의 아두이노 호환 보드를 새로이 하나 만들어 보는 과정이라 보면 된다. 아두이노 우노와 비교해 보면 막바로 코딩하여 컴파일 업로딩이 가능하지만 STM32 보드에서는 FTDI 찹을 선정 배선 연결 후 컴파일 업로딩이 가능하도록 제반 작업이 필요하다. 이와같은 STM32 보드의 인스톨 작업이 가능해진다면 사용자 스스로 ESP8266 ESP-12 칩을 사용하여 FTDI 칩을 선정하여 수정된 형태의 weMos 보드를 새로의 만들어낼 수도 있을 것이다.

아두이노에서 32비트 STM32 보드를 사용하여 붙밭이 LED를 점멸시켜 보자. 이 작업을 위한 배선은 아래와 같이 STM32F103C 보드와 FTDI 보드를 결합하여 이루어진다. on/OFF 하기 위한 LED는 별도로 설치하지 않고 STM32 보드 PC13에 장착되어 있는 붙박이 LED를 사용할 계획이다.



아두이노 편집기에서 STM32 보드를 사용하려면 기본적인 설치 작업이 필요하다. 첫째로 아래의 RogerClarkMelbourne 싸이트를 방문하여 Arduino_STM32-master.ZIP 파일을 다운 받도록 한다.

      https://github.com/rogerclarkmelbourne/Arduino_STM32


ZIP 파일 다운로드 후 사용자 디렉토리의 다운로드 디렉토리에 들어가서 압축을 풀면 아래와 같은 디렉토리 구조가 형성된다.

주의할 점은 다운로드 밑의 Arduino_STM32-master안에 다시 Arduino_STM32-master가 있음에 유의하고 이 하부의 A

rduino_STM32-master를 복사하여 아두이노 편집기(Arduino IDE)가 설치된 디렉토리 내부에 있는 hardware  디렉토리 내부에 넣도록 한다.



한편 아두이노 편집기의  툴탭의 메뉴 중 보드를 선택하고 다시 보드 매니저를 클릭하여 보드매니저 창이 뜨도록 한다. 32-bits ARM Cortex-M3 을 확인하고 설치 버튼을 누르도록 하자.




그 아래쪽에도 Cortex-M3 가 있는데 이것이 아님으로 주의하기 바란다.




보드 설치가 완료되었으면 툴 탭에서 Generic STM32103C series 가 있음을 확인하자.













아울러 파일 탭에서 예제 메뉴를 눌러 A_STM32 Examples를 확인하고 Digital의 Blink 예제를 불러내도록 한다. 바로 앞 단계까지 설치가 잘 끝났으면 예제 탭까지 반드시 설치가 되어 있어야 한다.









아두이노 우노의 BLINK 코드와 유사한 STM32의 BLINK 예제 코드에서 붙박이 LED 핀 번호 수정이 반드시 필요하다. 아두이노 우노가 13번 핀을 사용한다면 STM32 에서는 PC13에 해당한다. 따라서 PB1 로 코딩되어 있는 부분이 3번 나타나는데 이들을 모두  PC13으로 수정하도록 한다. 

수정된 BLINK 코드를 적절한 파일명을 부여해서 저장한 후 컴파일 업로딩을 위한 툴 탭에서의 준비 작업이 필요하다.
보드 지정에서는 Generic STM32F103C series 임을 확인하도록 한다. 이 모델이 가장 흔하며 저렴한 보급형 모델이다.

특히 업로딩 방식은 반드시 Serial을 선택하도록 한다. Derial 이라 함은 기존 아두이노에서 USB 케이블을 사용하여 컴파일 업로딩하고 시리얼 모니터를 사용하는 방식이다.

 이 방식을 사용하기 위한 보드 구성은 별도로 설명하기로 하자. 아두이노 사용자라면 당연히 Serial 방식을 택해야 할 것이다. Optimize는 default 로 선택하자.

STM32F103C 보드 구성을 알아보자. ST32 보드에 기존의 아두이노 컴파일 업로딩 및 시리얼 모니터 사용 패턴을 그대로 유지하기 위해서는 FTDI 보드를 사용하는 Serial 방식이 필수적이다. 이미 시중에 여러 종류의 FTDI 보드가 있을 수 있는데 일단 USB 케이블을 통해 5V를 공급할 수 있으면 된다.


여기서는 사용되었던 2가지 모델의 사용 예를 들어 보기로 한다. 다음의 모델은 FTDI232 보드로서 와이파이 보드 ESP-01 설치 시에 사용하였던 FTDI 로서 가장 흔하며 저렴하다.


스위치가 부착된 FTDI 5V/3.3V 겸용 보드이다. 수위치가 사진과 같이 왼쪽에 위치하면 TX 와 RX 에 5V 가 출력된다. 반면에 스위치 위치가 바뀌면 TX 와 RX 의 전압 이 3.3V로 전환된다. 가격이 다소 높을 수 있다.



어떤 FTDI 보드를 사용하느냐는 문제는 결국 FTDI 와 인터페이스 되는 보드에서 사용하는 전압 허용 값에 달려 있다.


물론 FTDI232 보드는 측정 결과 3,3V 만을 제공하지만 위의 BLINK 예제를 사용하여 STM32F103C 보드를 동작시키는데 아무런 문제가 없었다.




STM32F103C 보드와 5V/3.3V 겸용 FTDI 보드를 배선하여 컴파일 업로딩하여 보드를 작동 시켜 보도록 한다. 2개 보드 사이의 배선은 GND, Vcc, RX,TX 배선이며 STX32 보드에서는 G, 5V, A9, A10  핀이 각각 사용되었다. 참고로 STM32F103C 보드 대부분의 핀은 3.3V 허용 핀과 5V 전압을 허용하는 핀이 섞여 있음에 유의하자.



따라서 겸용 FRTDI 보드를 아래와 같이 배선하여 스위치를 3.3V 및 5V 인 경우에 BLINK 예제가 작동 되는지 간단한 실험을 수행해 보도록 한다. 이때에 사용하는 USB 케이블은 다른 한쪽이 과거에 외장 하드 디스크에 사용하던 마이크로 커넥터 형태임에 유의하자.




STM32 와 FRDI 보드에 컴파일 업로딩 작업을 위해서는 FTDI 전압 스위치를 3.3V에 설정하고, 노란 색 커넥터 위치를 사진과 같이 세팅해야 한다. 아울러 바로 옆에 위치한 똑딱 리세트 스위치를 1회 누른 다음 아두이노 편집기에서 컴파일 업로딩을 실시한다.





일단 성공적으로 컴파일 업로딩이 이루어지는 과정에서 다음과 같은 메시지가 콘솔 창에 나타남에 유의하자.

실험 결과 아무 문제없이 잘 작동하였으며 5V 전압에 설정하였을 때도 잘 작동한다. 노란색 커넥터 스위치는 코드 수정이 빈번하게 일어나는 컴파일 업로딩 단계에서는 위와 같이 세팅하여 사용하고 코딩이 완전히 끝난 상태에서 USB 케이블을 뽑은 다음에 노란색 커넥터 윗부분을 뽑아 1칸 좌측으로 이동 시키도록 한다.

붙박이 LED를 on OFF 하는 과정은 아두이노 우노 보드와 다르게 없지만 STM32 는 32비트 머신이므로 실제 수행 속도가 2배 이상 빠르다는 점에 유의하자.