E4ds 뉴스는 MCU(Micro Controller Unit) 관련 정보를 공유하는 커뮤니티 운영자들을 만난다. ‘MCU 커뮤니티를 찾아’의 첫 번째 커뮤니티는 바로 ‘임베디드 공작소’이다.
E4ds 뉴스는 MCU(Micro Controller Unit) 관련 정보를 공유하는 커뮤니티 운영자들을 만난다. ‘MCU 커뮤니티를 찾아’의 첫 번째 커뮤니티는 바로 ‘임베디드 공작소’이다. 현재 콘티넨탈 오토모티브 시스템 차장으로 근무하는
최무석(사진)씨가 운영하고 있으며 카페 개설은 만 3년이 되어간다. 이 커뮤니티는 활발한 질문과 빠른 운영자의 피드백을 통해 하루하루 성장하고 있다. 최 운영자는 소프트엔지니어로 입사했지만 대학생 때부터 MCU를 만졌다고 한다. 그는 소프트웨어와 하드웨어 둘 다 이해하지 못하고선 제품을 개발할 수 없다고 말하는 미소를 띈 그의 표정에 MCU의 대한 깊고 부드러운 열정을 엿볼 수 있었다.
• '
임베디드 공작소’라는 까페를 시작하게 된 이유는 무엇인가요?
임베디드 MCU 베이스로 프로그램 소프트웨어가 많이 개발되고 있다. 컴퓨터로 작동하는 경우 MCU를 기반으로 소프트웨어를 개발할 때 하드웨어를 이해하고 있어야 함으로 처음 접하는 사람들은 매우 힘들다. 그래서 정보교류를 목적으로 만들었다.
습득한 정보들 교류하기 위해 시작
또 한가지는 MCU 프로그래밍하는 것이 취미이다. 까페를 하기 전에 많이 만들었는데 어느 순간 자료들을 찾으려고 하면 다시 찾기가 어려웠다. 까페를 만들면 자료들을 넣어놓고 검색할 수 있어서 자료 정리에 도움이 될 것 같아 시작했다.
• 까페 회원들의 직업군이나 성별 등의 분포는 어떠한가?
성비를 보면 9할이 남자 1할이 여자이고 나이 순으로 보면 20대가 40%, 30-40대가 50% 정도이다. 즉, 20~40 대가 90%를 차지한다. 20대 학생 경우 졸업작품을 MCU로 주로 하는데 준비하다가 막히는 경우 질문을 하는 것 같다. 직장인들이 많은 30~40대는 실무적으로 MCU를 가지고 어플리케이션 하다가 안되면 질문을 올려주신다. 간단하게 무엇을 만들고 싶을 때 아이디어는 좋으나 구체적인 기능을 구현하기 위해서 MCU 프로그래밍 하는 것은 힘들기 때문이다.
• 주된 질문들은 어떤 것들이 있나?
우선 까페에 올려놓은 MCU는 아트멜의 AVR이나 요즘 많이 쓰는 마이크로칩 그리고 TI의 MSP430 이렇게 3개 이다. 먼저 하드웨어적으로 MCU의 어떤 기능들을 다루려고 한다면 레지스터를 다뤄야 한다. 레지스터를 다루는 것을 어렵기 때문에 데이터시트 잘 읽고 지시대로 하면 동작을 하게되어있다. 그러나 동작이 안되는 경우 질문들을 올리는 것이다. 소프트웨어적으로는 MCU를 프로그래밍 하기 위한 개발 툴들이 있는데 이것을 통해 컴퓨터에서 코딩하고 컴파인해서 다운로드 받아야 한다. 각 회사마다 툴들이 별도로 존재하기 때문에 사용하는 방법들을 주로 물어본다.
요즘 주로 올라오는 것들은 보면 MCU 프로그램의 단순한 기능만 테스트하다가 여러 기능들을 한꺼번에 구현해야 하는 경우도 있다. 디지털 IO와 AD 컨버전을 사용하고 타이머나 여러가지 시리얼 통신들도 가능케 해야하는데 이 모든 것들을 동시에 사용하는 것이 힘든 것 같더라. 두 개의 기능을 합치다 보면 생각대로 잘 되지 않아서 질문들을 많이 하신다.
'임베디드 공작소' 운영자 최무석씨
쉬운 답변이라도 꼼꼼하게 체크하면 자신의 성장에도 덩달아 도움돼
• 운영하면서 본인에게 도움이 되는 점이 있을 것 같은데.
질문을 보면 일차적으로 ‘왜 이런 질문을 올렸을까?’ 하고 생각한다. 그렇지 않으면 그 사람이 원하는 답을 해주기가 쉽지 않기 때문이다. 그런 과정 속에서 나는 당연하다고 생각했지만 문득 ‘이게 당연한 것이 아닐 수도 있겠구나’ 라고 하면서 기존의 지식이나 정보를 점검할 수 있게 된다.
구체적인 예를 들면, 나 같은 경우 MCU 임베디드 할 때 기존의 툴들을 많이 사용해봤기 때문에 데이터시트가 어디에 있는지 딱 찾아보고 ‘아 이건 이거구나!’ 하면서 문제를 쉽게 해결할 수 있는데 초보자 분들을 내가 쉽게 넘어갔던 부분들을 어렵게 생각하시는 것을 종종 본다.
예전에는 쓱 보고 그냥 넘겼던 것을 답변을 달게 되면서 꼼꼼하게 점검한다. 또 온라인 상에서 잘못된 정보를 주면 창피할 것 같아 하드웨어 보드가 있으면 테스트해보기까지 한다. 이를 통해 내 자신도 리플레쉬 되는 것 같다.
또 한가지 점은 새로운 제품을 알게 되는 점이다. 내가 접해보지 않았던 하드웨어들을 질문하는 사람들 있다. 그 중 하나가 TI 제품이었는데 TI의 MCU는 사용해본 적이 전혀 없었다. 그런데 까페 초기에 들어오셨던 한 분이 MCU를 사용하는데 툴을 어떻게 사용해야 될지 모르겠다고 도움이 청해서 다운로드 툴 같이 다운받아서 도움 드린 적이 있다.
그분께 도움을 주어서 뿌듯함과 동시에 그 MCU가 저전력에 최적화 되어있다는 것을 알았다. 그 이후 추가적으로 알아본 결과 TI의 MCU패밀리 중에 RF 트랜시버가 통합된 RF MCU 모듈이 있다는 것을 알았다. RF 모델은 대부분 내부가 복잡하여 MCU를 조합하려면 RF신호를 디코딩하고 SPI를 손봐야하는 여간 복잡한 작업이 아닐 수 없는데 TI에는 칩 패키지 안에 두기능이 통합되어있어 잘 이용하면 'RF로 센서 네트워크로 쉽게 구현할 수 있겠다.' 라고 좋아한적이 있다.
• MCU를 이용해 만드는 것을 좋아하신다고 했는데 구체적으로 어떤 것들을 만드나.
대학생 때는 원보드 만들어서 그 당시 인기였던 마이크로마우스로 만들려고 했다. 결국 못 만들고 졸업하고 말았지만… 그 시절은 개발하는 것 자체가 참 어려웠다. 지금은 그래픽 코드가 나와서 기본적인 코드가 제네레이션 되고 MCU 내부적으로 디버깅 하는 기능 있어 바로 다운로드 하면 되지만 그 때는 핸드 코딩 뿐만 아니라 투명한 이피롬 창을 통해 와이터로 꼽고, 몇 개 컴파인했다. 거기다가 마이크로 긋고, 꼽고, 테스트 하고 ‘안되네?’ 하면서 만들었다.
• 업무자체는 소프트웨어 쪽이신데 하드웨어를 구성하게 된 이유는?
나는 2013년도까지 엔진제어 어플리케이션을 담당 했었는데, 엔진제어기가 임베디드 펌에어다. 펌에어를 하려면 하드웨어도 알아야 하기 때문이다. 지금은 자동차 제어기도 많이 구조화가 되어있다. 사실 MCU의 어떤 내장 수준을 재현하는 것은 자동차에서는 ‘오토사’라고 해서 베이직 소프트웨어가 이미 구현이 되어있다. 요즘에 소프트웨어 엔지니어들은 프로그램 할 때 컴퓨터에서 하이 수준에서 프로그램하는 것과 비슷하다.
하이 수준에서 자동차가 요구하는 로직이 똑같기 때문이다. 내가 시작할 때는 제어기가 8비트였고 어셈블러로 했다. 기본적으로 MCU에 CPU 있고 페리페럴 하려는 레지스터들을 숙지를 하고 있어야 했다.
그 다음 포트에다가 보내려면 실제적으로 제어기에 출력이 어떻게 나가는지 찍어봐야 한다. 왜냐하면 자동차의 여러 아날로그 인풋 센서신호들을 자동차 테스트할 때 갖다 놓을 수 없기 때문이다. 그 다음에 제어기 물려놓고 이제 작성한 코드가 제어기에 잘 돌아가는지 알기 위해선 하드웨어에 대한 이해가 필요했다.
• 회사 자체 내에서도 기술 세미나 등을 많이 하는데 엔지니어들에게 커뮤니티의 장점은 무엇이 있을까?
내 생각에 회사 같은 곳에서는 물어보기가 쉽지 않다. 나도 전자공학을 전공으로하고 취미로 MCU 프로그램을 하다 갔지만 처음 입사했을 때 고충이 많았다. 가장 힘들었던 부분은 코드는 있는데 사실 그런 코드가 노하우가 들어가 있어서 이해하기 쉽지 않았다.
자동차 같은 경우에는 운송수단이기 때문에 안전부분이 민감하다. 달리다가 갑자기 엔진이 서버리면 위험해질 수 있기 때문이다. 미국 같은 경우 땅이 커, 만약에 차가 도움을 구할 수 없는 곳에 멈춰버리게 되면 그 자리에서 죽을 수도 있어 그 무엇보다 기술의 신뢰성이 높아야 하는 시스템이다. 그렇기 때문에 문서가 있지만 보고도 이해하기 힘들다. 내가 이걸 물어보면 어떻게 생각할까? 라는 생각에 선뜻 선배들한테 물어보기도 힘들다. 그러나 온라인상 같은 곳에선 편하게 질문할 수 있지 않을까? 라는 생각이 든다.
우리나라의 체계적인 MCU 교육과정이 없어 안타까워
독일, 프랑스 같은 경우 대학 졸업하자마자 프로젝트일 통해 협력해 나가
• 그런 경험으로 인해서 만드신 것도 있지 않나.
그렇다. 임베디드 펌웨어 하는 분 들은 자수성가하신 분들이 많다. 그것은 무엇을 뜻하냐면 우리나라에서 펌웨어를 전문적으로 하는 교육을 받고 하기보다 처음부터 스스로 노하우를 체득하신 분들이 많다는 뜻이다. 나도 처음 회사에 들어가서 그런 노하우를 얻기 힘들어서 진입하는데 노력이 많이 필요했다. 그래서 '이 분야는 진입 장벽이 높으니까 내가 갖고 있는 노하우를 공개해서 접근하시는 분들이 시간을 단축시킬 수 있었으면 좋겠다' 하는 바램이 있었다
참고로 제가 독일하고 프랑스에 갔다 온 적이 있다. 우리나라는 대학교를 졸업해도 못하는 것들을 유럽사람들은 잘하고 있었다. 소프트웨어는 설계가 중요한데 그것은 소프트웨어엔지니어가 혼자 할 수 있는 게 아니라 여러 사람들이 같이 협업 해야한다. 협업하기 위해선 문서화가 되어야 하는데 기능이 A,B,C,D 있으면 기본적으로 큰 개념을 알고 있는 사람이 A,B,C,D를 알고 각 개발자나 팀에게 나눠줘야 하기 때문이다.
이런 일을 유럽사람들은 회사를 들어올 때부터 잘하더라. 학교에서 가르쳐주는 과정이 따로 있어서 요구사항들과 디자인 문서를 잘 작성한다. 우리나라는 그런 제도가 없어서 맨땅에 헤딩식으로 배우니까 어떤 분야에 대해서 지식은 많이 알지만 팀을 짜 체계적으로 일을 하는것이 부족하다.
• 시간 지날수록 책임감도 커질 것 같다. 어떠한가.
아까도 말했듯이, 올리는 답변에 대해서 다시 한번 생각하게 된다. 하드웨어를 제어하기 때문에 하드웨어가 망가질 수도 있다. 지금까지는 없었지만 다급해서 질문을 받고 올려놓으면 그런 생각을 한다. 선한 의도로 했지만 모든 것을 고려할 수 없기 때문에 확신하는 것보다 제안 형식의 답변들을 올린다. 또한 실제로 MCU가 적용되는 환경에 따라 달라질 수 있다. 확실하게 이해하지 않는 이상 접근하기 어렵다.
커뮤니티가 분석한 MCU 트렌드는?
밴더들의 자체 코어는 한계, 암코어로 MCU가 평정될 것 같다.
• 학교와 업무까지는 이어지는 만들기와 까페도 3년 정도 운영했다고 하는데 운영자가 보기에 MCU가 어떻게 변하고 있는 것 같은가?
우선 지극히 주관적인 생각임을 먼저 밝힌다. MCU가 8비트에서 32비트까지 나오고있다. 32비트가 가장 퍼포먼스가 좋다고는 하지만 기능은 거기서 거기다. 요즘 각 밴더마다 코어를 제작하긴 하나 암코어가 다 평정하는 것 같더라. 코어텍스로 하지 않는 데가 없다. 프리스케일, 아트멜, ST가 암코어로 다 만들고 있다. MCU의 메인 스트림은 암코어가, 각 밴더들의 각 코어들은 마이너하고 유연하게 가지 않을까 생각한다.
'임베디드 공작소' 까페(http://cafe.naver.com/embeddedworkshop)
왜냐하면 지금까지 오토모티브 같은 경우 프리스케일이나 인피니언을 많이 썼었다. 그 다음에 르세사스를 사용하는데 어플리케이션이 그 밴더의 MCU와 독립적으로 된 것들이 많다. 엔진 제어기만 해도 옛날엔 16비트 MCU를 인피니언, 씨멘스 정도를 사용했다. 그 이유는 그 칩들이 엔진제어기를 위해서 만든 칩이기 때문이다. 그래서 모든 어플리케이션이 밴더들의 MCU에 쫓아가는 추세였다.
그러나 지금은 MCU를 만드는 서플라이어들이 사라지고 있다. 모듈 자체가 규격화 되어 있어 MCU벤더들이나 소프트웨어회사들이 자신들의 코드를 오픈하여 제공해주기 때문이다. 이제는 어플리케이션 쪽이다. 자유도가 높아졌다. 그래서 MCU를 사용해서 쓰는 마켓들은 현재 가장 싼 MCU를 공급하느냐가 관건이다.
정리하자면 MCU 트렌드는 가장 적절한 가격에 동일한 퍼포먼스를 낼 수 있는 제품을 공급하는 회사들이 살아 남을 것 같다.
• MCU의 가격 하락도 영향이 있을까?
그럴 것 같다. MCU는 수량 베이스라, 예전에는 9천원에서 7-8천원 했는데 지금은 가격이 거의 다운 되어있다. 옛날에는 엔진 제어기 중에 MCU가 제일 비싸서 MCU 망가지면 “어…” 하 고 멍해졌었다.
나중에 기회되면 MCU를 교육할 수 있는 사람 되고파
• 마지막으로 까페의 궁극적인 목적이나 목표와 e4ds독자들에게 카페를 소개할 말이 있다면.
다시한번 말씀드리지만 목적은 자유로운 정보 공유다. 누구든지 질문하고 정보를 나누었으면 좋겠다. 그리고 향후 나중에 직장을 그만두더라도 이 분야에서 뭔가를 계속 하려고 한다. 지금의 기술 발달 추이를 보면 이 분야의 수요는 줄지 않을 것이다. 오토모티브만 보더라도 엔진제어기나 브레이크 등 별로 없었다. 아니면 고급차에만 5-6개정도 들어갔는데 현재는 일반 중형차에도 20개 정도 들어가 있지 않은가. 구체적인 것은 아니지만 이쪽 분야를 체계적으로 가르치는 일을 해보고 싶다. 저희 까페는 MCU 초보자들 대환영이다. MCU를 공부하시거나 취미를 즐기는 분들 누구나 정보를 얻어가실 수 있고 공개하실 수 있으니 놀러 오길 바란다!