개인공간 :: '아두이노' 카테고리의 글 목록

2019. 5. 17. 23:04

[ATtiny85] 02. 프로그램을 올려보자

ATtiny85에 프로그램을 올리기 위해서는 Arduino를 브릿지 형식으로 사용하여 PC -> Arduino(ISP) -> ATtiny85의 구성으로 업로드를 해야한다.

우선 Arduino를 ISP로 동작할 수 있도록 ArduinoISP 예제를 불러와서 Arduino에 업로드 한다.

여기서는 Arduino Nano를 ISP로 만들었다.

 

ArduinoISP 예제를 Load한다.

 

Arduino Nano ISP를 만들자

 

업로드를 하자

 

정상적으로 업로드 완료

 

이제 ATtiny85 보드를 Arduino에서 인식시킬 수 있도록 관련 library를 인스톨한다.

이를 위하여 환경설정 창의 '추가적인 보드 매니저 URLs'에 아래 URL을 입력한다.

http://drazzy.com/package_drazzy.com_index.json

 

URL을 입력한다.

 

이제 보드 매니저를 통해 ATtinyCore library를 설치한다.

 

Spence Konde를 선택하여 설치한다.
설치가 정상적으로 완료되었다.

 

설치가 완료되면 툴>보드 에서 ATtiny85를 선택할 수 있다.

 

ATTinyCore 관련 보드가 추가되었다.

 

ATtiny85 프로그램을 위하여 ISP(Nano) 와 ATtiny85를 아래와 같이 결선한다.

이때 ISP(Nano)의 GND 와 RESET에 10uF의 캐패시터를 연결해야 한다. (ISP의 Reset 방지용도)

 

10uF 캐패시터도 연결해 준다.

 

빵판에 결선해서 사용할까 하다가, 자주 사용하게 될 것 같아 땜질을 해버렸다.

 

ATtiny85를 소켓에 넣을 때 1번핀 위치가 헛갈릴것 같아서 1번핀 위치를 표시한 메모를 붙여놨다.

보드 장착시엔 요런 모양이 된다.

 

ATtiny85 PDIP type, SOIC type 모두 사용이 가능하다.

소켓에 ATtiny85를 장착 후 Arduino Nano(ISP)와 PC를 연결한다.

 

ATtiny85를 소켓에 넣을 때 방향을 주의하여 삽입해야 한다.

이제 툴 설정 후 ATtiny85에 부트로더를 굽고, 적당한 예제 하나를 불러와 업로드 해보도록 하자.

부트로더는 최초 1회만 구우면 된다. 

 

툴 설정 후 부트로더를 굽는다.
부트로더가 정상적으로 굽혔다.

 

이제 예제를 ATtiny85에 업로드 해보자

예제는 Pin1에 연결된 LED를 500ms On 500ms Off 반복하는 예제이다.

 

정상적으로 프로그램 업로드가 완료되었다.

 

동작 확인을 위해 이전에 구매해둔 ATtiny85 Dev. Programmer board에 ATtiny85를 옮긴 뒤 USB 전원을 넣어보자

 

잘 동작한다.

정상적으로 잘 동작한다.

'아두이노 > ATtiny85' 카테고리의 다른 글

[ATtiny85] 01. ATtiny85를 알아보자  (0) 2019.05.09

2019. 5. 14. 02:25

[Arduino Nano] 01. Nano를 알아보자. (ch340 드라이버 설정, 부트로더 굽기)

Arduino Nano pinout

 

아두이노 Nano v3.0 회로도
Arduino Nano v3.0.pdf
0.03MB

 

해외배송으로 Arduino Nano를 구매했다.

 

https://ko.aliexpress.com/item/Freeshipping-Nano-3-0-controller-compatible-for-arduino-nano-CH340-USB-driver-NO-CABLE/32341832857.html?spm=a2g0s.9042311.0.0.27424c4d0qpkpn

2개 구매하고 구매한걸 깜박하고.. 2개 또 구매해서 총 4개 구매해 버렸다..

 

 

해당 제품의 usb 드라이버는 ch340을 사용한다.

PC에 연결 후 장치 관리자에서 확인하면 아래와 같이 인식된다.

 

USB2.0-Serial로 인식한다.

ch340에 해당하는 드라이버를 설치해야 한다.

http://www.wch.cn/download/CH341SER_ZIP.html 에서 다운로드 할 수 있다.

CH341SER.ZIP
0.18MB

 

압축을 풀고 SETUP.EXE를 실행해서 드라이버를 설치하면 드라이버가 아래와 같이 인식되는 것을 확인할 수 있다.

 

USB-SERIAL CH340으로 인식했다.

 

이제 Arduino Nano에 부트로더를 설치하자.

Arduino Nano에 부트로더를 설치하기 위해서 UNO(UNO도 해외배송을 통해 구매했다..)를 ISP로 만들어야 한다.

 

ArduinoISP 예제를 선택 후 툴 설정을 한다.

 

ArduinoISP 예제 Load

 

보드와 포트를 설정한다.

툴 설정이 끝나면 업로드한다.

Nano와 UNO를 아래와 같이 결선한다.

결선한다.

이제 ISP(UNO)를 통해서 NANO에 부트로더를 구워보자

툴 설정을 아래와 같이 설정 후 '부트로더 굽기'를 누르면 아래 메시지창에 '부트로더 굽기 완료'라는 메시지가 출력된다.

 

툴 설정 후 부트로더 굽기

이제 NANO에 부트로더가 올라갔으니, 적당한 예제를 하나 선택 후, NANO에 업로드를 해 보자

 

업로드가 정상적으로 완료된다.

 

2019. 5. 9. 23:58

[ATtiny85] 01. ATtiny85를 알아보자

Atmel 의 8 bit 저전력 Micro controller이다. 간단한 센서 구동 및 제어에 적합한 매력적인 MCU 이다.

VCC, GND Pin을 제외하면 6pin이 고작이지만 있을껀 다 있어서, 아껴쓰고 쪼개쓰면 왠만한건 다 구동이 가능하다.

 

출처 : http://github.com/SpenceKonde/ATTinyCore 

 

ATtiny85 datasheet Pinout

 

자세한 내용은 데이터 시트를 참고바란다.

ATtiny25,+ATtiny45,+ATtiny85.pdf
3.67MB

 

PDIP type 과 SOIC type을 각각 구매했다.

https://ko.aliexpress.com/item/5-piece-100-ATTINY85-20SU-attiny85-20su-ATTINY85-20-sop-8-ic-bga/32842362195.html?spm=a2g0s.9042311.0.0.27424c4dAKncAv

SOIC type 5EA를 $4.59에 구매했다.

https://www.ebay.com/itm/5PCS-ATTINY85-20PU-IC-MCU-8BIT-8KB-FLASH-8DIP-Top-ATTINY85-AL/253016017128?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

PDIP type 5EA를 GBP 6.48에 구매했다.

 

ATtiny85 MCU 개발용도로 Dev. Programmer board도 구매했다.

배송까지의 시간이 오래걸리니까.. 없으면 아쉬울꺼 같아보이는건 다 구매하고 보게된다. 가격에 대한 부담도 없으니 일단 사고본다.

https://www.ebay.com/itm/Development-Programmer-Board-for-ATtiny13A-ATtiny25-ATtiny85-ATtiny45/142667561991?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

ATtiny85 Development Programmer Board를 $0.99에 구매했다.

 

SOIC type Program Writing을 위해 SOIC8 Programmer Adapter Socket Converter Module도 구매했다.

https://www.ebay.com/itm/SOIC8-SOP8-to-DIP8-EZ-Programmer-Adapter-Socket-Converter-Module-150mil-200mil/202090979044?ssPageName=STRK%3AMEBIDX%3AIT&var=502086730608&_trksid=p2057872.m2749.l2649

200mil로 선택해서 구매한다. 

ATtiny85 SOIC dimension 'E1'의 값을 고려하여 구매해야 한다. Min 5.18mm/Max 5.4mm 이므로, 200mil을 구매해야 한다. (1mil = 0.00254 cm = 0.0254 mm)

 

 

'아두이노 > ATtiny85' 카테고리의 다른 글

[ATtiny85] 02. 프로그램을 올려보자  (0) 2019.05.17

2019. 5. 2. 00:33

[STM32duino] 02. Arduino IDE 설치 및 부트로더 올리기

Arduino IDE를 정식 홈페이지에서 다운로드한다. 최신버전을 다운받아 설치했는데 문제는 없는 것 같다.

https://www.arduino.cc/en/Main/Software

 

Arduino - Software

By downloading the software from this page, you agree to the specified terms. THE ARDUINO SOFTWARE IS PROVIDED TO YOU "AS IS" AND WE MAKE NO EXPRESS OR IMPLIED WARRANTIES WHATSOEVER WITH RESPECT TO ITS FUNCTIONALITY, OPERABILITY, OR USE, INCLUDING, WITHOUT

www.arduino.cc

Arduino IDE 1.8.9(19년5월2일 기준. 최신버전) Download 한다.
JUST Download 클릭. (여유가 된다면 기부를 하고 Download를 해도 된다.)

 

다운받은 Arduino IDE를 설치 후, Cortex M3용 컴파일러 툴체인을 설치한다.

 

툴 > 보드 > 보드 매니저를 선택한다.
Arduino SAM 보드를 선택 후 설치한다.

 

정상적으로 설치가 완료되면 아래 내용을 확인할 수 있다.

 

Arduino SAM Boards INSTALLED
추가된 Arduino ARM (32bit) 보드

 

STM32duino 라이브러리를 다운로드 한다.

 

https://github.com/rogerclarkmelbourne/Arduino_STM32

Arduino STM32 gitbub zip 파일을 다운로드한다.

 

Arduino_STM32-master.zip 파일의 압축을 푼 후, 폴더 명을 Arduino_STM32로 변경하여, Arduino 설치 폴더의 hardware 폴더에 복사한다.

 

압축 푼 폴더명을 Arduino_STM32로 변경한다.
해당 폴더에 복사한다.

 

Arduino IDE를 재 실행하게 되면 STM32duino 관련 보드들이 표시 된다.

 

STM32duino 관련 보드들이 표시된다.

 

STM32duino의 부트로더는 LeafLabs 가 개발한 Maple 부트로더를 기반으로 한다. GPIO 중 PA12(USB D+)를 제어하여 USB 버스를 재 설정 할 수 있도록 수정한 것이다. Blue Pill 보드의 경우 LED가 PC13에 있으며, 'generic_boot20_pc13.bin' 파일을 사용해야 한다.(LED 위치에 따라 버전이 상이하다.)

일단 부트로더를 올리기 위해서는 USB to TTL 모듈이 필요하며, 아래와 같이 결선해야 한다.

보드의 Boot0 점퍼는 High로 변경해야 한다.

 

USB to TTL 모듈은 기호에 맞게 구매하면된다. 보유한 모듈에 대한 정보는 아래와 같다.

http://www.devicemart.co.kr/goods/view?no=1324910

1,980원이다.

 

USB to TTL 과 Blue Pill 연결도

 

부트로더를 라이팅할 때 사용할 USB to TTL 모듈의 COM 포트 번호를 확인한다.

 

COM5 포트로 할당되어 있다.

'generic_boot20_pc13.bin' 부트로더 파일과 'Bluepill_boot.bat' 파일을 다운로드한 후, stm32flash.exe가 있는 Arduino/hardware/Arduino_STM32/tools/win 디렉토리에 복사한다.

 

generic_boot20_pc13.bin
0.01MB
Bluepill_boot.bat
0.00MB

 

'Bluepill_boot.bat을 열어서 COM Port를 장치 관리자에서 확인한 Port로 변경하여 저장한다.

 

메모장으로 Bluepill_boot.bat 파일을 열어 COM Port를 설정한다.

 

 Bluepill_boot.bat을 실행하면 명령어 창이 열리면서 라이팅을 시작한다.

 

부트로더를 라이팅한다.

부트로더 라이팅이 완료되면 명령어 창을 닫고 USB to TTL 모듈을 제거하고 Boot0의 점퍼를 Low로 다시 변경한 다음 USB 케이블을 PC와 연결하게 되면 Board에 전원이 인가되면서 PC13 Port에 연결된 LED가 빠르게 몇 회 깜박인 후, 느린 속도로 깜박이는 것을 확인 할 수 있다.

 

 

윈도우에서 제공하는 직렬 USB 드라이버와 DFU(업로드) 드라이버를 maple serial 및 DFU 장치의 USB ID와 연결해 주기 위해 Arduino_STM32/driver/win 디렉토리로 이동 후 'install_drivers.bat' 파일을 클릭한다.

 

install_drivers.bat 파일을 클릭한다.

명령어 창이 열리면서 드라이버 인스톨 확인을 허용할 것인지 묻게 되는데 '예'를 클릭하면 먼저 maple DFU Driver를 설치한 후 또 다른 명령어 창이 열리면서 'maple serial driver'를 설치하게 된다.

 

maple DFU Driver를 설치한다.

설치가 모두 끝나면 아무키나 눌러 설치를 완료 시킨다.

 

두 개의 Driver가 정상적으로 설치되었다.

두 개의 드라이버 설치가 완료되었으면 Board에 USB 케이블을 연결하여 장치 관리자에 설치된 시리얼 포트를 확인해 보면 처음에는 libusb Maple DFU 장치로만 인식하게 되는데, 아두이노 IDE를 실행 후 메뉴의 툴에서 Generic STM32F103C를 선택한 다음 업로드 메뉴에서 'stm32duino bootloader'를 선택하고 예제 메뉴에서 examples/Digital/Blink를 불러와서 LED 출력 포트를 PC13으로 변경하여 업로드를 완료하면, 그 이후부터는 메뉴에서 Maple 시리얼 장치를 사용할 수 있게 된다. 시리얼 포트 번호는 장치관리자에서 변경할 수가 있다.

 

libusb Maple DFU 장치로 인식하고 있다.

 

Generic STM32F103C series를 선택한다.
Blink 예제를 선택한다.
LED 출력 Port를 PC13으로 변경 후 업로드를 선택한다.

 

COM Port를 설정한다.

 

Maple Serial 포트가 인식되었다. 

 

프로그램 업로드 후 Board의 LED가 1초 간격으로 점멸된다면 정상적으로 동작하는 것이다.

'아두이노 > Blue Pill' 카테고리의 다른 글

[STM32duino] 01. Blue Pill 그리고 Blue Pill Clone  (0) 2019.05.01

2019. 5. 1. 00:08

[STM32duino] 01. Blue Pill 그리고 Blue Pill Clone

아두이노 IDE로 다룰 수 있는 ARM 보드 중 하나이며, STM32F103C8을 사용한다.

Pin out 및 회로도는 아래와 같다.

 

Blue Pill (STM32F103) Pinout Diagram
The-Generic-STM32F103-Pinout-Diagram.pdf
4.59MB
Blue Pill schematic
Vcc-gnd.com-STM32F103C8-schematic.pdf
0.14MB

 

ebay 혹은 aliexpress 등에서 저렴한 가격으로 구매가 가능하나, 배송에 시간이 필요하다.

 

ebay Blue Pill 제품

링크 : https://www.ebay.com/itm/STM32F103C8T6-Minimum-System-Developmen-Board-Module-Core-Learning-For-Arduino/323633385054?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

 

 

실제 구매하여 수령까지는 약 한달 정도가 소요되었으며, 동작에는 문제가 없다.. 다만 STM32F103C8이 아닌 Clone MCU가 실장되어 있어서 당황스러웠다. 다시 한번 언급하지만 동작에는 문제가 없다.

아래는 실제 수령한 Clone Blue Pill 제품의 사진이다.

 

Clone Blue Pill 제품
Clone Blue Pill MCU (CKS32F103C8T6)

Blue Pill과 MCU를 제외한 모든 부분이 동일하다고 보면 된다. Clone MCU지만 해당 MCU만의 데이터시트도 존재한다.

하지만 데이터 시트는 중문만을 지원하고 있다. 

CKS32F103x8_datasheet.pdf
2.95MB

Clone MCU이니깐 정품 Blue Pill의 MCU인 STM32F103x8의 데이터시트를 참고하더라도 무리가 없을 것이다.

STM32F103x8_datasheet.pdf
1.19MB

기능구현에 있어서 Clone 제품으로도 충분히 성능을 만족할 것이라는 판단이 들어, 일단 정품 Blue Pill을 구매하는 것은 보류한다.