Don't think! Just do it!

종합 IT 기술 정체성 카오스 블로그! 이... 이곳은 어디지?

임베디드 하드웨어/IoT - Internet Of Things

IoT Project 2. 소자 선정.

방피터 2015. 2. 20. 22:41


IoT Project 2. 소자 선정



주요 소자를 선정하는 시간입니다. 보통은 컨셉 작업 단계에서 거의 선정되는데요.


왜 그런 소자를 선택했는지? 정도가 될 것 같습니다.


그럼 바로 시작하죠.


저번 컨셉 작업 단계에서 몇 가지 기준을 정했습니다.



우선 필수 요소인 Main MCU는 우리 경준씨가 바라던데로 Cortex M3로 결정했습니다.

(요세 Cortex M4도 꽤 많이 나오는데 마우져나 디지키에서 구매가 불가능하더라구요. 국가 정책이라나 뭐라나.)


Cortex M3는 단지 ARM에서 설계한 코어로 해당 설계를 사서 여러 제조사가 주변기기(Peripheral)를 붙여 IC로 만들죠.


제조사는 굉장히 많이 있습니다. 또 Ethernet Interface에 따라 다르게 적용될 수도 있으니 일단 넘어가죠.



그러면 Ethernet Interface용도의 소자를 선택해 볼까요? 어쩌면 이게 핵심입니다. ㅎ


MCU에 MAC+PHY가 포함된 방식도 있었고, MCU에 MAC만 포함되어 PHY IC를 외부에 붙이는 방법도 있었습니다.


또 MAC+PHY+TCP/IP IC를 사용하는 방법도 말씀드렸었죠?


전 MAC+PHY+TCP/IP 칩인 W5500을 선택했습니다. 왜 그랬을까요?


<W5500 Hardwired TCP/IP Ethernet IC>



Ethernet Interface 소자 선정에 우선적으로 고려했던 사항은 성과 획득 시간이었습니다.


평소 시간이 부족한 경준씨를 위해 저는 성과 획득 시간이 30분을 초과하면 안된다는 규칙을 세웠습니다.


하지만 저는 소프트웨어 스택을 경준씨 수준에 맞추어 설명하는 과정을 절대 30분 안에 마무리할 자신이 없습니다.


LwIP나 uIP 다운받고 압축 풀고 프로젝트에 포함시키고 library path 추가하고 MCU에 맞추어 포팅하고 Ping이라도 받을 수 있는


Sample Code를 프로그램하는데 직접해도 30분은 커녕 2-3시간은 족히 걸립니다.


하물며 경준씨는 해당 경험이 전무한데 이런 것을 요구한다는 것 자체가 말이 안된다고 봅니다.


처음부터 지루하고 뭐하는 건지도 모르는 것을 하게 되는 거죠. 분명 흥미는 반감하게 될겁니다.


하지만 W5500을 사용하면 Main MCU와는 SPI로 통신하도록 되어 있으니 어려운 설명은 필요없습니다.


Main MCU의 SPI를 초기화 시키고 Wiznet에서 제공하는 라이브러리를 사용하면 금세 샘플 코드가 완성됩니다.


이런 과정이라면 충분히 30분 내외로 읽고 실습 할 수 있는 문서를 제공할 수 있으며


이 프로젝트의 목적인 "IoT의 기술적 접근성이 좋아졌다는 증명"에도 다가갈 수 있습니다.


가격적인 측면을 살펴본다 해도 3500원으로 비싸지 않다고 판단했습니다. 보통 PHY IC들이 1~2,000원 정도 하니까요.


<Microchip 사의 RMII Ethernet Interface IC>


PIC18F97J60 같은 Ethernet이 포함된 MCU도 있긴 하지만 글쎄요...


프로젝트의 목적으로도 이 글의 목적으로도 부합되지 않는다 판단됩니다.



- 삼천포 -


사실 제 이야기를 해보자면 첫 시간에 말씀드렸다시피 LM8962나 PIC18F97J60 같은 MCU+MAC+PHY IC를 사용해 보았습니다.


제 입장에서는 MCU에 MAC만 붙어 있어도 감지덕진데... MAC + PHY라니요. 믿을 만한 회사에 예제는 당연하구요.


그래서 LM8962로 처음 프로젝트를 할 때는 신기했습니다. 아무것도 없이 MCU에 RJ-45만 있으며 Ethernet이 되었으니까요.


하지만 MCU가 개판이라 고생을 엄청했습니다. 근데 조금 있다가 단종까지 해버리더군요. ㅠㅠ


그 고생을 해가며 양산까지 했건만...... 정말 회사 목 내놓고 다녔습니다.


그 이후로 TI의 Stellaris는 쳐다보지도 않습니다. 신상이 무조건 좋은게 아니라는 교훈을... 훌쩍.. ㅠㅠ


또 PIC18F97J60의 경우도 Microchip에서 제공하는 TCP/IP Stack을 사용해 공유기에 붙이고 IP도 할당받고 해보았습니다.


하지만 TCP/IP가 Microchip의 제공이고 10Mbps만 지원했으며 MCU가 종속된다는 점에서 찜찜했습니다.


또 그에 따라 뒤쳐질것이라는 느낌도 강하게 들었기 때문에 더 이상 진행하지 않았습니다.

(그리고 Microchip의 MPLAB은 개인적으로 최악의 IDE 툴이라고 생각합니다.)


- 끝 -



따라서 결론은 주요 소자는 Cortex M3 + W5500으로 진행하고자 합니다.


추가 비용은 없다고 했으니 지켜야겠죠? 따라서 전원도 Micro USB Connector로만 공급합니다.


설마 집에 Micro USB 충전기 없는 집 없겠죠? -_- 아이폰을 제외한 모든 스마트폰 충전기 말하는 겁니다.


혹시 모르니 아래쪽에 사진을....



  

<Micro USB Connector Female / Male>


그리고 추가 비용도 없다고 했으니 별도의 JTAG을 구매할 필요가 없도록 JTAG을 내장하도록 합니다.


ISP도 생각해 보았으나 저의 경우 디버그가 안되면 상당히 괴롭습니다.


암튼 이런 용도의 IC가 FTDI 사의 FT2232입니다. USB로 JTAG 프로그램 및 디버깅을 할 수 있습니다.


개당 가격이 8000원 정도로 꽤 비싸긴 하지만 간편하게 프로그램과 디버깅을 할 수 있으니 교육용으로는 딱! 이라고 생각합니다.


FT2232D 에는 JTAG과 더불어 한 채널의 UART를 제공하므로 우리 경준씨에게 친숙하리라 판단이 됩니다.


환경은 교육용 보드 하나 USB 케이블 하나 끝입니다. 아 IoT니까 LAN선이 더 있어야 겠네요.



마지막으로 추가하려고 생각하는 것은 Mac address IC입니다. 원래 Ethernet 장비 모두는 고유의 Mac 주소를 가지고 하죠.


Mac 주소는 IEEE에서 판매합니다. 4096개에 550불이고 1670만개에 1600불에 판매합니다. ㅎ 못사겠죠?


이런 경우에 사용하라고 Microchip사에서 Mac 주소가 담긴 eeprom을 판매합니다. 아래는 해당 제품 링크입니다.


LINK -> http://www.microchip.com/pagehandler/en-us/products/memory/serialEEPROM/mac/MAC.html


<Microchip사의 MAC Address EEPROMs page>


가격도 몇 백원 수준으로 부담되지 않으니 혹시나 MAC 주소 때문에 고민하시는 분들은 참고하시기 바랍니다.



휴.. 그럼 주요 IC들은 다 된 것 같습니다. 아 아직 MCU를 정하지 않았군요!! 네! 알고 있습니다.


사실 아직 진짜 못 정했거든요. STM F1 스트림 중 메모리나 페키지 사이즈로 고민 중입니다.



이 밖에 전원쪽 파트나 Reset 버튼, Status LED는 따로 언급하지 않겠습니다.


머리만 아프니까요. ㅎㅎ 자세한 건 회로 작성을 하며 언급하도록 하겠습니다.


그리고 한가지 더~ IDE를 이야기 하지 않았는데 IDE는 CoIDE라는 Eclipse 기반의 IDE를 사용하도록 하겠습니다.


하지만 CoIDE를 여기서 소개하면 글이 너무 길어지므로 OpenSource 카테고리에 포스팅하고 링크 올리겠습니다.

(CoIDE가 Free 거든요.)


CoIDE 소개 Link -> http://engschool.tistory.com/entry/CoIDE


남은 명절 알차게 보내세요~. 다음 시간에 뵈여~


-Dwarp-



반응형