W5500 Breakout

w5500-beakout-instagram

W5500을 이용한 Open source hardware 모듈

http://hairy.geek.nz/projects/w5500-breakout/

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

<목차>

1. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(1)

2. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(2)

3. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(3)

4. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(4)

5. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(5)

6. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(6)

7. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(7)

8. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(8)

 

음~~~ 8051 포팅이라!!! (당황하지 말고 팍 쭉~~~)

무엇부터 해야 하나 생각을 정리해 둘 필요가 있다. 차근차근 하나씩 정리해보자.

 

- 수많은 8051 MCU 중에 무엇을 선택하나 ?

- 8051 개발 환경은 무엇으로 하나?

- Test Board 만들기

- ioLibrary 다운로드

- Porting 시작

 

1. 수많은 8051 MCU 중에 무엇을 선택하나 ?

 

8051 MCU는 이미 많이 보편화되어 개발자라면 누구나 익숙한 MCU이다. 각 Vendor마다 조금씩의 특징이 있다. 고속 처리가 가능한 것도 있으며, 다양한 peri를 가지고 있는 것도 있다. 아주 오래 전 Atmel과 Dallas의 8051를 써본 경험이 있긴 하지만, 현재 보유하고 있는 보드는 Silab사의 C8051F380이다. 나도 이녀석은 처음으로 사용해본다. (살짝 긴장되긴 하네^^)

C8051F380의 특징적 제원을 간략히 살펴보면,

 

High Speed 8051 μC Core
- Pipelined instruction architecture; executes 70% of instructions in 1 or 2 system clocks
- Up to 48 MIPS operation
- Expanded interrupt handler

Memory
- 4352 or 2304 Bytes RAM
- 64, 32, or 16 kB Flash; In-system programmable in 512-byte sectors

Digital Peripherals
- 40/25 Port I/O; All 5 V tolerant with high sink current
- Hardware enhanced SPI™, two I2C/SMBus™, and two enhanced UART serial ports
- Six general purpose 16-bit counter/timers
- 16-bit programmable counter array (PCA) with five capture/compare modules
- External Memory Interface (EMIF)

 

최대 48MIPS 까지 지원한다고 하니 최대 Clock은 48MHz까지 사용할 수 있는 것으로 보인다. 또한 SRAM 역시 4K 이상 지원되며, Code Flash 역시 64KB까지 지원된다. (여기서는 Data 4K, Code 64K 를 사용한다 - Network 응용을 개발하기 위해 넉넉한 크기를 준비). 무엇보다도 중요한 것은 W5500 Access를 위한 SPI Interface를 지원한다는 것. 그 밖의 각종 Peri들이 많이 있으나, USB, 온도센서 및 ADC가 있다는 정도로 알자.

<C8051F380 DK Board>

 

 

 

2. 8051 개발 환경은 무엇으로 하나?

 

8051 개발환경은 Keil, IAR, sdcc 등 다양하게 존재한다. 하지만, C8051F380은 SiLab사의 MCU인 만큼 SiLab에서 제공하는 Simplicity Studio를 이용하여 개발한다.

먼저 SiLab Homepage에서 Simplicity Stuido 2.0을 다운로드한다.

http://www.silabs.com/products/mcu/Pages/simplicity-studio.aspx

자신의 OS에 맞는 Simplicity Studio를 다운로드 한 후 설치한다.

설치 및 사용법에 대해서는 자세한 설명은 생략한다. (Silab이나 인터넷 관련 동영상 및 자료가 많이 있으니 참고하시길...)

 

 

Simplicity IDE는 Silab 자체 제작 Complier를 사용하지 않고, Keil-C compiler를 사용한다. Silab사의 Install Guide에 따라 Keil-C complier를 설치하고 Silab에 지원하는 License Key를 등록한다. 이로써, 정식 Licence가 등록된 Keil-C complier를 사용할 수 있다.

 

Simplicity Studio의 가장 큰 장점은 개발 환경 뿐만 아니라, 각종 Datasheet, Application 문서, Example Code 및 개발에 필요한 각종 Resouce 등을 통합 관리하여 항상 최신 정보를 개발자로 하여금 놓치지 않도록 해준다는 것이다.

 

<주의>

Keil이나 다른 개발환경을 사용할 경우 C8051F380과같은 Silab Chip들에 대한 Device 정보를 제공하지 않을 수도 있다. 물론 제공하지 않는다고 해서 개발할 수 없는 것은 아니다. 하지만 미리 잘 만들어진 Header, C file 및 각종 Libarary가 있는데 사서 고생할 필요없지 않는가?

Simplicity Sudio를 사용하지 않더라도 우선 설치해주자.

그럼 "C:\SiliconLabs\SimplicityStudio\v2\developer\sdks\si8051\v2\Device" 경로로 Silab에 미리 잘 만들어둔 각종 Header/C 및 Library를 손쉽게 사용할 수 있다.

 

Simplicity Studio에서 Simplicity IDE Double click하여실행하여 간단한 새로운 Project를 만들어 보자.

 

Menu>Project>New>Silcon Labs MCU Project... 를 이용하여 앞으로 만들 Project의 제원을 설정해준다.

 

앞으로 Porting 하게 될 보드는 "C8051F380 Development Kit" 이므로 이것을 선택.

 

Project 명과 Working directory를 설정한 후 Finish.

 

C8051F380 용 startup code와 Main 파일이 project에 자동으로 추가되었으며, Toolbar의 망치 아이콘을 눌러 Compile한다.

Error없이 Compile이 잘된다. Compile된 Binary Image를 Silab에서 제공하는 USB Debug Adapter로 Board로 Download해보자.

우선 아래 그림과 같이 USB Debug를 연결한다. (이때 USB 장치가 자동으로 인식되고 Driver가 자동으로 깔린다)

 

USB Debug를 성공적으로 인식했다면 IDE 에서 풍뎅이 모양 아이콘을 눌러 생성된 이미지를 보드로 다운로드. 보드 다운로드를 성공하면 Break point를 설정하여 원하는 코드를 Debugging할 수 있다. IC 모양 아이콘은 Debugging 없이 보드로 다운로드만 한다.

 

이것으로 ioLibrary를 포팅할 개발 환경은 준비가 되었다. 다음 시간 WIZ550io와 C8051F380-TB 보드와 연결을 해보자.

 

                                                                                                                                            NEXT >

 

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

단순 제어를 보여주는것이 아니라 직접 미니어처를 만들었네.

조명을 On/Off 하고, 차고문을 열고, 보안 카메라를 팬틸트하는 동영상.. 살아 있네 ^^;

전시회나 데모에서 실용적인 체감성을 훨씬 높일 수 있을 것 같다.

스마트폰으로도 제어됨.


 

 

 

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자