안녕하세요. 엔지니어 공작실입니다.
저는 기존에 컴파일테크놀러지사의 큐블록과 Cypress사의 PSoC을 사용하여 실험장비들을 개발하고 있었습니다.
두 가지 모두 개발환경이 사용자가 쓰기 편하게 준비가 되어 있어 진입장벽이 낮은 편에 속합니다.
그래서 저 같은 기계를 전공한 사람도 실험에 필요한 간단한 장비들을 개발 제작까지 하는데 어려움이 없었습니다.
하지만 제가 주로 사용하던 PSoC을 더 이상 구할 수 없게 되어 이리저리 갈아탈 보드를 찾아보고 있었습니다.
그러던 와중에 라즈베리파이 피코를 접하게 되었고 피코를 처음으로 접하면서 초보자 입장에서 느꼈던 점들을 적어 볼까 합니다.
1. 피코를 처음 구입해서 개발환경 세팅 시 어려웠던 점은 포트생성 문제입니다.
아두이노 IDE를 사용하고자 할 때에도 그랬고 Thonny에서 micropython을 사용하고자 할 때도 마찬가지로 부트모드로 들어가 uf2파일을 옮겨 넣고 COM포트가 생성되지 않는 문제가 있었습니다.
무엇이 문제인지를 찾아보니 제 컴퓨터의 운영체제가 윈도우즈 7이라는 점이 문제였습니다.
getting-started-with-pico.pdf 문서의 9장에도 아래와 같이 나와있는 걸 확인할 수 있습니다.
made to work 부분을 클릭하면 관련 링크로 연결됩니다.
윈도우즈 상위버전들에서는 드라이버가 자동으로 설치되면서 문제없이 피코가 자동으로 인식된다고 하지만 윈7에서는 수동으로 피코 드라이버를 설치해 줘야 제대로 포트인식이 이루어집니다.
웹검색을 통해 적절한 피코 드라이버를 수동으로 설치를 해주고 난 후 윈7에서도 아두이노 IDE 및 Thonny에서 포트생성이 정상적으로 되었습니다.
피코 C/C++ SDK를 사용하는 개발환경을 구축 할 때도 포트인식 문제가 또다시 발생해서 한참을 헤매다가 Zadig이라는 프로그램으로 손쉽게 해결하였습니다. 혹시 저와 같은 문제를 겪는 분이 계시다면 Zadig 사용을 추천드립니다.
2. 피코에는 eeprom이 없다.
어떤 장비를 제작하면 장비의 전원을 끈 후에 전원을 끄기 전에 입력해놓은 데이터가 전원을 다시 켰을 때 그대로 남아 있어야 사용상 편리합니다. 그 데이터를 eeprom에 저장해 놓았다가 전원을 다시 켤 때 eeprom으로부터 데이터들을 불러와 주어야 합니다만 피코에는 eeprom이 없다는 게 문제입니다. 하지만 그것을 대신할 만한 방법으로 피코 내부의 플래시메모리를 활용하는 방법이 있습니다. 번거롭긴 하지만 eeprom 칩을 별도로 붙이는 방법도 있습니다. 이 부분은 차차 공부해 나가야 할 것 같습니다.
3. 속도
피코는 133MHz라는 빠른 MCU속도.. 제가 사용했던 큐블록이나 PSoC, 그리고 아두이노에 비해 엄청 빠른 속도라 할 수 있습니다. 피코를 아두이노 ide로 개발하면 그 빠른 속도를 잘 활용할 수 있겠습니다만 마이크로 파이썬으로 개발한다면 잘 아시는 바와 같이 파이썬이 인터프린터 언어라 실제로 작동시켜 보면 아두이노 보드들보다 느린 속도를 보여줍니다.
4. 3개의 ADC
피코는 3개의 ADC만 가지고 있다는 점이 아쉽습니다. 아두이노 보다는 적지만 그래도 PSoC보다는 하나 더 많다는 점은 좋습니다. 키패드 하나, 센서하나, 포텐쇼 하나 사용하면 끝이네요. 만일 더 필요하다면 별도의 ADC칩을 부착해서 사용해야한다는 번거로움이 있긴 합니다. 피코의 ADC 해상도는 12bit.. 이점은 좋습니다.
5. 동작 전압 3.3V
아두이노나 PSoC은 5V기반이라 별도의 레벨쉬프터가 필요 없었습니다만 피코는 핀아웃이 3.3V 이기 때문에 5V로 구동되는 주변 칩들이나 LCD 등이 있다면 레벨쉬프터를 추가해줘야 합니다.
이상으로 피코를 처음으로 접한 초보자 입장에서 느꼈던 점 몇 가지를 적어봤습니다만 공부를 하면 할수록 모르는 것만 계속 늘어나는 것 같아 답답하기만 하네요. 하지만 계속 공부하다 보면 언젠간 어셈블리로 mcu에 직접 코딩이 가능한 그날이 올 거란 희망을 가져봅니다.
현재는 빠른 속도를 활용하면서 피코의 많은 기능을 활용할 수 있는 피코 c/c++ sdk를 사용하는 환경을 만들어 테스트해보고 있습니다. 개발환경 세팅이 좀 난해하긴 하나 제 개인적으로 결국은 mcu를 제대로 활용하기 위해선 sdk를 사용하는 법을 공부하는 게 맞다고 판단됩니다. mcu에 대해 잘 모르면서 아두이노 ide를 사용해서 남들이 만들어 놓은 라이브러리들을 찾아다니느라 고생하고 또 그것을 사용하면서 왜 안되는지 몰라 이리저리 헤매느니 mcu의 기초부터 공부를 하는게 나중을 생각하면 오히려 빠를 것 같다는 생각이 듭니다.
- j.s.park -
'라즈베리파이 피코' 카테고리의 다른 글
라즈베리파이 피코 플래시메모리에 16비트 데이터 쓰고 읽기 (0) | 2023.02.16 |
---|---|
라즈베리파이 피코 카운터 사용 C코드 예제 - 인터럽트활용 (0) | 2023.02.15 |
만일 라즈베리파이 피코에 연결한 i2c lcd가 느리게 작동한다면.. (0) | 2023.02.13 |
라즈베리파이 피코 피에조 부저 소리 변환 (2) | 2023.02.13 |
댓글