WIZwiki-W7500 보드활용 Web Server 구현 · 2015. 6. 3. · prevent rogue software from...

54
WIZwiki-W7500 보드 활용 Web Server 구현 2015년 6월 17일 위즈네트 아카데미 wiznetacademy.com 강사 전혁진 : 블로그 강사 김은경 : 블로그

Transcript of WIZwiki-W7500 보드활용 Web Server 구현 · 2015. 6. 3. · prevent rogue software from...

  • WIZwiki-W7500 보드 활용 Web Server 구현

    2015년 6월 17일

    위즈네트 아카데미

    wiznetacademy.com

    강사 전혁진 : 블로그

    강사 김은경 : 블로그

    http://wiznetacademy.com/http://hjjeon0608.wordpress.com/https://socatelier.wordpress.com/

  • 목차

    • W7500 소개

    • WIZwiki-W7500 Board 소개

    • 개발 환경 구축

    • Peripheral 이론 & 실습 – UART, RNG, I2C, SSP, TOE

    • Web Server

    2

  • W7500 소개

  • • IoT 최적화 MCU

    • Unattackable Hardwire TCP/IP Chip

    • Start-up을 꿈꾸십니까? - VAR products

    • ARM mbed Enabled MCU

    Museum Link

    4

    http://wiznetmuseum.com/http://wiznetmuseum.com/

  • W7500 Feature• 32-bit ARM Cortex-M0

    • Flash : 128KB / SRAM : 16KB (up to 48KB)

    • Hardwired TCP/IP Core (Supports MII Interface)

    • Internal 8MHz Oscillator

    • External crystal Oscillator (8~24MHz)

    • 48MHz maximum frequency

    • PLL for internal clock source

    • ADC - 12bit, 8ch, 1Mbps

    • DMA - UART, SPI, Software

    • GPIO 53ea I/O

    • 4 Timer/ 8 PWM

    • 3 UART, 2 SPI, 2 I2C

    • 32bit RNG

    • Serial Wire Debug(SWD)

    • Package : 64TQFP (7x7 mm)

    W7500 System diagram

    5

  • W7500 Clock• Two clock sources can be used to drive the system clock.

    • One internal PLL.

    • Many generated clocks for independent operating with system clock.

    6

  • W7500 Alternate Function• Each functional pad has 2 ~ 4 functions.

    • Pins can be selected by each registers individually.

    7

  • W7500 Pad controller• Each functional pad has 2 ~ 4 functions.

    • Pins can be selected by each registers individually.

    P - PADYA - Analog Input (connect to ADC input)Y - Digital InputA - Digital Output

    IE - Input buffer enableCS - CMOS/Schmitt trigger input buffer selectDS - Driving strength select (125MHz / 50MHz)

    PU - Pull up enablePD - Pull-down enable

    8

  • W7500 Interface peripherals• UART 3ea

    • 2ea RTS/CTS flow control (UART0, UART1)

    • 1ea simple (UART2)

    • SSP 2ea• MOTOROLA SPI

    • TI synchronous serial interface

    • National MICROWAVE

    • Up to 20MHz

    • I2C 2ea • Master/Slave

    • Standard mode (100KHz)

    • Fast mode (400KHz)

    • Sensor interface

    • GPIO 53ea• 4ea GPIO group

    (PORT A, PORT B, PORT C, PORT D)

    • 53 programmable input/output pins

    • ADC • 12bit configuration resolution

    • Conversion time : Max 1MHz (@20MHz ADCCLK)

    • 8 channel for external analog inputs

    • 1 channel for internal LDO(1.5v) voltage.

    9

  • W7500 Peripherals• Dual timer 2ea

    • One dual timers has 2 Free-Running Counters(FRCs)

    • A 32-bit or a 16-bit down counter

    • Repetition modes:

    • one-shot and wrapping mode

    • Prescaler that can divide down the clock rate by 1, 16, or 256

    • WDT (Watch Dog Timer)• 32-bit down counter.

    • Internally resets chip if not periodically reloaded.

    • The watchdog timer has lock register for to prevent rogue software from disabling the watchdog timer functionality.

    • PWM 8ea• 8 PWM output waveforms• Eight independent 32-bit Timer/Counter • 6bits Prescaler that can divide down the

    clock rate by 1~64• Runs as the PWM or standard timer• Counter operation• Each of PWM can have different or same

    clock source

    • RNG (Random number generator)• 32bit pseudo random number generator• Polynomial / Seed of pseudo random number

    generator (polynomial) can be modified.• Support power on reset random value• Random value can be obtained by control

    start/stop by software.

    10

  • WIZwiki-W7500 Board 소개

  • WIZwiki-W7500 Feature• WIZnet W7500

    • 32-bit ARM Cortex-M0

    • 128KB Flash /16KB(up to 48KB) SRAM

    • Hardwired TCP/IP Core

    • Ethernet PHY• IC+ IP101GA

    • CMSIS-DAP support• NXP LPC11U35FHI33/501

    • USB Drag & Drop Programming

    • Support IDE : KEIL / GCC

    • Arduino pin compatible (Arduino Shield 사용 가능)

    • mbed enable (on progress with )

    • ISP, SD Card, RGB LED, SWD Connector

    12

    http://www.mbed.org/http://www.mbed.org/

  • CMSIS-DAP ?

    • CMSIS-DAP support• NXP LPC11U35FHI33/501

    • USB Drag & Drop Programming

    • USB를 이용해 Firmware를 download,debugging을 할 수 있다.

    • CMSIS-DAP을 사용하려면?• MDK-ARM V4.54 이상이어야 함

    • Debug Unit은 CMSIS-DAP을 지원하는Firmware가 있어야 함

    13

  • WIZwiki-W7500 Connector Information

    14

  • Normal Function

    5VGND

    D15D14ARefGNDD13D12D11D10D9D8

    D7D6D5D4D3D2D1D0

    NCIOREFRSTn3.3V5VGNDGNDNC

    A0A1A2A3A4A5

    PC_15PC_14PC_13PC_12PC_11PC_10

    PA_09PA_10

    PA_06PA_07PA_08PA_05PC_04PC_07

    PC_06PA_00PA_01PA_02PC_00PC_01PA_13PA_14

    PWM2/CAP2PWM3/CAP3

    SSEL0SCLK0MISO0MOSI0

    AIN5AIN4AIN3AIN2AIN1AIN0

    SCL0SDA0

    SCLK0MISO0MOSI0SSEL0SCL1

    U_CTS1U_RTS1U_TXD0U_RXD0

    U_TXD1U_RXD1

    SDA1U_CTS1U_RTS1SCL1

    PWM4/CAP4U_RXD2

    U_TXD2PWM6/CAP6PWM7/CAP7CLKOUT

    PWM0/CAP0PWM1/CAP1

    MISO1MOSI1

    U_TXD2U_RXD2AIN3AIN2AIN1AIN0

    PWM6/CAP6PWM7/CAP7

    PWM3/CAP3PWM4/CAP4PWM5/CAP5PWM2/CAP2

    PC_03PC_02PA_15PA_04PA_03RSTnBOOTPA_12PA_11

    3.3VGNDPB_00PB_01PB_02PB_03PC_08PC_09PC_05

    LEDRLEDGLEDB

    SSEL1SCLK1MISO1MOSI1

    SD_SELSD_CLKSD_MISOSD_MOSI

    PWM0/CAP0PWM1/CAP1

    SDA1

    U_CTS0U_RTS0U_TXD0U_RXD0SCL0SDA0

    PWM5/CAP5

    AIN7AIN6

    U_RXD1U_TXD1

    SWDIOSWCLK

    U_RTS0U_CTS0

    PWM3/CAP3PWM2/CAP2

    SCLK1SSEL1

    PWM1/CAP1PWM0/CAP0

    DAP-RXDDAP-TXD

    3.3V

    U_RXD2

    U_TXD2

    GND

    Normal Function3rd Function4th Function2nd Function

    3rd Function 4th Function2nd Function

    2nd Function2nd Function

    WIZwiki-W7500 Pinout

    15

  • 목차

    • W7500 소개

    • WIZwiki-W7500 Board 소개

    • 개발 환경 구축

    • Peripheral 이론 & 실습 – UART, RNG, I2C, SSP, TOE

    • Web Server

    16

  • 개발 환경 구축

  • 개발 환경 구축

    • KEIL uVision MDK - Lite version 5.14.0.0• 다운로드 링크 or 강의자료/W7500강의/설치프로그램/mdk514.exe• 설치 방법 Wiki page

    • MDK Version 5 – Legacy Support• 다운로드 링크 or 강의자료/W7500강의/설치프로그램/MDKCM514.EXE• 설치 방법 Wiki page

    • Serial Driver of WIZwiki-W7500• 다운로드 링크 or 강의자료/W7500강의/설치프로그램/mbedWinSerial_16466.exe• 설치 방법 Wiki page

    18

    https://www.keil.com/download/product/http://wizwiki.net/wiki/doku.php?id=products:w7500:documents:appnote:install_uvisionhttp://www2.keil.com/mdk5/legacy/http://wizwiki.net/wiki/doku.php?id=products:w7500:documents:appnote:install_uvisionhttps://developer.mbed.org/handbook/Windows-serial-configurationhttps:/developer.mbed.org/handbook/Windows-serial-configurationhttp://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start_getting_started:serial_driver_wizwiki-w7500

  • 개발 환경 구축

    • W7500 Library and Peripheral Example Downloads• 강의자료/W7500강의/강의용 W7500 Library.zip

    • 참고 사항• New Project 생성 방법

    • 생성 방법 Wiki page

    • Peripheral Example 사용 방법• 사용 방법 Wiki page

    19

    http://wizwiki.net/wiki/doku.php?id=products:w7500:documents:appnote:howtokeilhttp://wizwiki.net/wiki/doku.php?id=products:w7500:documents:appnote:keil_exam

  • Library 폴더 구조 설명

    • W7500x_Library_Examples• ioLibrary

    • Libraries

    • Projects

    • Utilities

    • Utilities• W7500_flash_algo_mdk

    20

  • Library 폴더 구조 설명

    • Libraries• CMSIS

    • Device• WIZnet

    • W7500• Include• Source

    • ARM• G++• GCC• IAR

    • Include• RTOS

    • W7500x_stdPeriph_Driver• inc• src

    21

  • Library 폴더 구조 설명

    • Projects• Peripheral_Examples

    • ADC - Illumination_RGBLED• DMA - MemoryToMemory• DualTimer - TimerRun• EXTI – LED_Toggle, Sleep• Flash – IAP_Example• GPIO – Blink_LED• I2C – I2C_EEPROM, I2C_Init, I2C_Temperture• PWM – CaptureMode, CounterMode, DeadZoneGeneration

    PWMOutput, TimerMode• RNG – Random_number_generation• Shield – ADC, EXTI, GPIO, PWM, I2C, RNG• SSP – Loopback, SD_Card_LED• SysTick - Delay• UART - Interrupt, Poling, Printf

    Uart_HardwareFlowControl• WDT - WDTReset• WZTOE - DHCPClient, DNSClient, httpClient,

    httpServer, LoopbackTest

    22

  • 개발 환경 구축

    • 프로젝트 Open!!

    • Workspace/project/Projects/Peripheral_Examples/GPIO/Blink_LED/MDK/W7500x_GPIO_Blink_LED.uvprojx

    23

  • 개발 환경 구축

    • 그림과 같이 컴파일이 완료되고 .bin 파일이 생성 되면 개발 환경 구축 완료

    24

  • Firmware Download 방법

    • Drag & drop• CMSIS-DAP

    • ISP• W7500 ISP Tool

    • SWD• CMSIS-DAP

    • Ulink2

    25

  • Firmware download 방법(1)Link : Drag and drop (CMSIS-DAP)

    26

    http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start_getting_started:write_firmwarehttp://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start_getting_started:write_firmware:keil_cmsis_dap

  • Firmware download 방법(2)Link : Using the ISP

    W7500 ISP Tool Download

    27

    http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start_getting_started:write_firmwarehttp://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start_getting_started:write_firmwarehttp://wizwiki.net/wiki/lib/exe/fetch.php?media=products:wizwiki_w7500:w7500_isp_20150519_.zip

  • Firmware download 방법(3,4)

    • SWD를 이용

    CMSIS-DAPUSB SWD

    Device

    Cortex-M0

    CPU

    Cortex-M4

    CPU

    Cortex-A7

    CPU

    Ulink2

    Jumper

    J3,J4,J5

    Connector

    J2

    or

    firmware download

    28

  • Firmware download 방법(3)Link : SWD를 이용한 CMSIS-DAP Debugger

    29

    http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start_getting_started:debugging_w7500http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start_getting_started:write_firmware:keil_cmsis_dap

  • Firmware download 방법(4)Link : SWD 를 이용한 ULINK2

    30

    http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start_getting_started:write_firmwarehttp://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start_getting_started:write_swd_debugger

  • Peripheral 이론 및 실습

    31

  • Peripheral

    •직렬 통신(Serial Communication)•UART – printf 출력• I2C – OLED write• SSP – SD card r/w

    •RNG – 1~19의 값 출력

    •네트워크 통신(Network Communication)•TOE – Web server

    32

  • UART(Universal Asynchronous Receive Transmit)

    • 비동기식

    • 4-line(simplest use just 2 line,TXD and RXD)• TXD, RXD, CTS, RTS

    http://eslectures.blog.me/80137862792

    33

  • Peripheral 실습 – UART

    Normal Function

    5VGND

    D15D14ARefGNDD13D12D11D10D9D8

    D7D6D5D4D3D2D1D0

    NCIOREFRSTn3.3V5VGNDGNDNC

    A0A1A2A3A4A5

    PC_15PC_14PC_13PC_12PC_11PC_10

    PA_09PA_10

    PA_06PA_07PA_08PA_05PC_04PC_07

    PC_06PA_00PA_01PA_02PC_00PC_01PA_13PA_14

    PWM2/CAP2PWM3/CAP3

    SSEL0SCLK0MISO0MOSI0

    AIN5AIN4AIN3AIN2AIN1AIN0

    SCL0SDA0

    SCLK0MISO0MOSI0SSEL0SCL1

    U_CTS1U_RTS1U_TXD0U_RXD0

    U_TXD1U_RXD1

    SDA1U_CTS1U_RTS1SCL1

    PWM4/CAP4U_RXD2

    U_TXD2PWM6/CAP6PWM7/CAP7CLKOUT

    PWM0/CAP0PWM1/CAP1

    MISO1MOSI1

    U_TXD2U_RXD2AIN3AIN2AIN1AIN0

    PWM6/CAP6PWM7/CAP7

    PWM3/CAP3PWM4/CAP4PWM5/CAP5PWM2/CAP2

    PC_03PC_02PA_15PA_04PA_03RSTnBOOTPA_12PA_11

    3.3VGNDPB_00PB_01PB_02PB_03PC_08PC_09PC_05

    LEDRLEDGLEDB

    SSEL1SCLK1MISO1MOSI1

    SD_SELSD_CLKSD_MISOSD_MOSI

    PWM0/CAP0PWM1/CAP1

    SDA1

    U_CTS0U_RTS0U_TXD0U_RXD0SCL0SDA0

    PWM5/CAP5

    AIN7AIN6

    U_RXD1U_TXD1

    SWDIOSWCLK

    U_RTS0U_CTS0

    PWM3/CAP3PWM2/CAP2

    SCLK1SSEL1

    PWM1/CAP1PWM0/CAP0

    DAP-RXDDAP-TXD

    3.3V

    U_RXD2

    U_TXD2

    GND

    Normal Function3rd Function4th Function2nd Function

    3rd Function 4th Function2nd Function

    2nd Function2nd Function

    34

  • Peripheral 실습결과 – UART

    • Printf를 UART0으로 사용• Printf 출력안됨

    #define USING_UART1 in retarget.c#define USING_UART0 in retarget.c

    USB cable은 UART1을 사용한다.

    • Printf를 UART1으로 사용• printf 출력 가능

    Normal Function

    5VGND

    D15D14ARefGNDD13D12D11D10D9D8

    D7D6D5D4D3D2D1D0

    NCIOREFRSTn3.3V5VGNDGNDNC

    A0A1A2A3A4A5

    PC_15PC_14PC_13PC_12PC_11PC_10

    PA_09PA_10

    PA_06PA_07PA_08PA_05PC_04PC_07

    PC_06PA_00PA_01PA_02PC_00PC_01PA_13PA_14

    PWM2/CAP2PWM3/CAP3

    SSEL0SCLK0MISO0MOSI0

    AIN5AIN4AIN3AIN2AIN1AIN0

    SCL0SDA0

    SCLK0MISO0MOSI0SSEL0SCL1

    U_CTS1U_RTS1U_TXD0U_RXD0

    U_TXD1U_RXD1

    SDA1U_CTS1U_RTS1SCL1

    PWM4/CAP4U_RXD2

    U_TXD2PWM6/CAP6PWM7/CAP7CLKOUT

    PWM0/CAP0PWM1/CAP1

    MISO1MOSI1

    U_TXD2U_RXD2AIN3AIN2AIN1AIN0

    PWM6/CAP6PWM7/CAP7

    PWM3/CAP3PWM4/CAP4PWM5/CAP5PWM2/CAP2

    PC_03PC_02PA_15PA_04PA_03RSTnBOOTPA_12PA_11

    3.3VGNDPB_00PB_01PB_02PB_03PC_08PC_09PC_05

    LEDRLEDGLEDB

    SSEL1SCLK1MISO1MOSI1

    SD_SELSD_CLKSD_MISOSD_MOSI

    PWM0/CAP0PWM1/CAP1

    SDA1

    U_CTS0U_RTS0U_TXD0U_RXD0SCL0SDA0

    PWM5/CAP5

    AIN7AIN6

    U_RXD1U_TXD1

    SWDIOSWCLK

    U_RTS0U_CTS0

    PWM3/CAP3PWM2/CAP2

    SCLK1SSEL1

    PWM1/CAP1PWM0/CAP0

    DAP-RXDDAP-TXD

    3.3V

    U_RXD2

    U_TXD2

    GND

    Normal Function3rd Function4th Function2nd Function

    3rd Function 4th Function2nd Function

    2nd Function2nd Function

    35

  • I2C(Inter-Integrated Circuit)

    • 동기식

    • 2-line

    • SCL, SDA

    • 4 condition

    • START,STOP,RESTART,DATA(and ACK)

    온도센서

    36

  • PH Sensor

    Link

    RTC

    Link

    Pressure

    Link

    Ultrasonic

    Link

    Temperature

    Color

    I2C 통신

    I2C 사용 센서

    37

  • Normal Function

    5VGND

    D15D14ARefGNDD13D12D11D10D9D8

    D7D6D5D4D3D2D1D0

    NCIOREFRSTn3.3V5VGNDGNDNC

    A0A1A2A3A4A5

    PC_15PC_14PC_13PC_12PC_11PC_10

    PA_09PA_10

    PA_06PA_07PA_08PA_05PC_04PC_07

    PC_06PA_00PA_01PA_02PC_00PC_01PA_13PA_14

    PWM2/CAP2PWM3/CAP3

    SSEL0SCLK0MISO0MOSI0

    AIN5AIN4AIN3AIN2AIN1AIN0

    SCL0SDA0

    SCLK0MISO0MOSI0SSEL0SCL1

    U_CTS1U_RTS1U_TXD0U_RXD0

    U_TXD1U_RXD1

    SDA1U_CTS1U_RTS1SCL1

    PWM4/CAP4U_RXD2

    U_TXD2PWM6/CAP6PWM7/CAP7CLKOUT

    PWM0/CAP0PWM1/CAP1

    MISO1MOSI1

    U_TXD2U_RXD2AIN3AIN2AIN1AIN0

    PWM6/CAP6PWM7/CAP7

    PWM3/CAP3PWM4/CAP4PWM5/CAP5PWM2/CAP2

    PC_03PC_02PA_15PA_04PA_03RSTnBOOTPA_12PA_11

    3.3VGNDPB_00PB_01PB_02PB_03PC_08PC_09PC_05

    LEDRLEDGLEDB

    SSEL1SCLK1MISO1MOSI1

    SD_SELSD_CLKSD_MISOSD_MOSI

    PWM0/CAP0PWM1/CAP1

    SDA1

    U_CTS0U_RTS0U_TXD0U_RXD0SCL0SDA0

    PWM5/CAP5

    AIN7AIN6

    U_RXD1U_TXD1

    SWDIOSWCLK

    U_RTS0U_CTS0

    PWM3/CAP3PWM2/CAP2

    SCLK1SSEL1

    PWM1/CAP1PWM0/CAP0

    DAP-RXDDAP-TXD

    3.3V

    U_R

    XD2

    U_TXD

    2GND

    Normal Function3rd Function4th Function2nd Function

    3rd Function 4th Function2nd Function

    2nd Function2nd Function

    Peripheral 실습 – I2C

    38

  • RNG(Random Number Generator)

    • 기욱팀장이 작성예정• 32bit RNG

    • Polynomial can be modified

    • Default polynomial: F(x) = x31 + x30 + x29 + x9 + x

    pseudo-random number처음에 주어지는 초깃값을 이용하여 이미 결정되어 있는 메커니즘(의사 난수 생성기)에 의해 생성되는 수. 난수는 생성방법이 결정되어 있지 않으며, 다음에 생성될 값을 전혀 예측할 수 없으나 의사 난수 생성기에 의해 생성되는 수는 초깃값을 알면 계산될 수도 있으므로 진짜 난수와 구별하여 의사난수라 부른다. [네이버 지식백과]

    39

    http://terms.naver.com/entry.nhn?docId=859382&ref=yhttp://terms.naver.com/entry.nhn?docId=824293&ref=y

  • Peripheral 실습 – RNG

    Normal Function

    5VGND

    D15D14ARefGNDD13D12D11D10D9D8

    D7D6D5D4D3D2D1D0

    NCIOREFRSTn3.3V5VGNDGNDNC

    A0A1A2A3A4A5

    PC_15PC_14PC_13PC_12PC_11PC_10

    PA_09PA_10

    PA_06PA_07PA_08PA_05PC_04PC_07

    PC_06PA_00PA_01PA_02PC_00PC_01PA_13PA_14

    PWM2/CAP2PWM3/CAP3

    SSEL0SCLK0MISO0MOSI0

    AIN5AIN4AIN3AIN2AIN1AIN0

    SCL0SDA0

    SCLK0MISO0MOSI0SSEL0SCL1

    U_CTS1U_RTS1U_TXD0U_RXD0

    U_TXD1U_RXD1

    SDA1U_CTS1U_RTS1SCL1

    PWM4/CAP4U_RXD2

    U_TXD2PWM6/CAP6PWM7/CAP7CLKOUT

    PWM0/CAP0PWM1/CAP1

    MISO1MOSI1

    U_TXD2U_RXD2AIN3AIN2AIN1AIN0

    PWM6/CAP6PWM7/CAP7

    PWM3/CAP3PWM4/CAP4PWM5/CAP5PWM2/CAP2

    PC_03PC_02PA_15PA_04PA_03RSTnBOOTPA_12PA_11

    3.3VGNDPB_00PB_01PB_02PB_03PC_08PC_09PC_05

    LEDRLEDGLEDB

    SSEL1SCLK1MISO1MOSI1

    SD_SELSD_CLKSD_MISOSD_MOSI

    PWM0/CAP0PWM1/CAP1

    SDA1

    U_CTS0U_RTS0U_TXD0U_RXD0SCL0SDA0

    PWM5/CAP5

    AIN7AIN6

    U_RXD1U_TXD1

    SWDIOSWCLK

    U_RTS0U_CTS0

    PWM3/CAP3PWM2/CAP2

    SCLK1SSEL1

    PWM1/CAP1PWM0/CAP0

    DAP-RXDDAP-TXD

    3.3V

    U_RXD2

    U_TXD2

    GND

    Normal Function3rd Function4th Function2nd Function

    3rd Function 4th Function2nd Function

    2nd Function2nd Function

    40

  • Peripheral 실습결과 – RNG

    • Button을 눌렀을때• RNG값 계속 변경

    Button 누른상태

    Button 누른 후 뗀 상태

    Normal Function

    5VGND

    D15D14ARefGNDD13D12D11D10D9D8

    D7D6D5D4D3D2D1D0

    NCIOREFRSTn3.3V5VGNDGNDNC

    A0A1A2A3A4A5

    PC_15PC_14PC_13PC_12PC_11PC_10

    PA_09PA_10

    PA_06PA_07PA_08PA_05PC_04PC_07

    PC_06PA_00PA_01PA_02PC_00PC_01PA_13PA_14

    PWM2/CAP2PWM3/CAP3

    SSEL0SCLK0MISO0MOSI0

    AIN5AIN4AIN3AIN2AIN1AIN0

    SCL0SDA0

    SCLK0MISO0MOSI0SSEL0SCL1

    U_CTS1U_RTS1U_TXD0U_RXD0

    U_TXD1U_RXD1

    SDA1U_CTS1U_RTS1SCL1

    PWM4/CAP4U_RXD2

    U_TXD2PWM6/CAP6PWM7/CAP7CLKOUT

    PWM0/CAP0PWM1/CAP1

    MISO1MOSI1

    U_TXD2U_RXD2AIN3AIN2AIN1AIN0

    PWM6/CAP6PWM7/CAP7

    PWM3/CAP3PWM4/CAP4PWM5/CAP5PWM2/CAP2

    PC_03PC_02PA_15PA_04PA_03RSTnBOOTPA_12PA_11

    3.3VGNDPB_00PB_01PB_02PB_03PC_08PC_09PC_05

    LEDRLEDGLEDB

    SSEL1SCLK1MISO1MOSI1

    SD_SELSD_CLKSD_MISOSD_MOSI

    PWM0/CAP0PWM1/CAP1

    SDA1

    U_CTS0U_RTS0U_TXD0U_RXD0SCL0SDA0

    PWM5/CAP5

    AIN7AIN6

    U_RXD1U_TXD1

    SWDIOSWCLK

    U_RTS0U_CTS0

    PWM3/CAP3PWM2/CAP2

    SCLK1SSEL1

    PWM1/CAP1PWM0/CAP0

    DAP-RXDDAP-TXD

    3.3V

    U_RXD2

    U_TXD2

    GND

    Normal Function3rd Function4th Function2nd Function

    3rd Function 4th Function2nd Function

    2nd Function2nd Function

    Normal Function

    5VGND

    D15D14ARefGNDD13D12D11D10D9D8

    D7D6D5D4D3D2D1D0

    NCIOREFRSTn3.3V5VGNDGNDNC

    A0A1A2A3A4A5

    PC_15PC_14PC_13PC_12PC_11PC_10

    PA_09PA_10

    PA_06PA_07PA_08PA_05PC_04PC_07

    PC_06PA_00PA_01PA_02PC_00PC_01PA_13PA_14

    PWM2/CAP2PWM3/CAP3

    SSEL0SCLK0MISO0MOSI0

    AIN5AIN4AIN3AIN2AIN1AIN0

    SCL0SDA0

    SCLK0MISO0MOSI0SSEL0SCL1

    U_CTS1U_RTS1U_TXD0U_RXD0

    U_TXD1U_RXD1

    SDA1U_CTS1U_RTS1SCL1

    PWM4/CAP4U_RXD2

    U_TXD2PWM6/CAP6PWM7/CAP7CLKOUT

    PWM0/CAP0PWM1/CAP1

    MISO1MOSI1

    U_TXD2U_RXD2AIN3AIN2AIN1AIN0

    PWM6/CAP6PWM7/CAP7

    PWM3/CAP3PWM4/CAP4PWM5/CAP5PWM2/CAP2

    PC_03PC_02PA_15PA_04PA_03RSTnBOOTPA_12PA_11

    3.3VGNDPB_00PB_01PB_02PB_03PC_08PC_09PC_05

    LEDRLEDGLEDB

    SSEL1SCLK1MISO1MOSI1

    SD_SELSD_CLKSD_MISOSD_MOSI

    PWM0/CAP0PWM1/CAP1

    SDA1

    U_CTS0U_RTS0U_TXD0U_RXD0SCL0SDA0

    PWM5/CAP5

    AIN7AIN6

    U_RXD1U_TXD1

    SWDIOSWCLK

    U_RTS0U_CTS0

    PWM3/CAP3PWM2/CAP2

    SCLK1SSEL1

    PWM1/CAP1PWM0/CAP0

    DAP-RXDDAP-TXD

    3.3V

    U_RXD2

    U_TXD2

    GND

    Normal Function3rd Function4th Function2nd Function

    3rd Function 4th Function2nd Function

    2nd Function2nd Function

    SW

    Uart1

    41

  • SSP(Synchronous Serial Port)

    nSS • 동기식

    • 3-line or $4-line

    • SCLK, nSS, MOSI ,MISO

    • MOSI와 MISO를 한 라인으로 사용하기도함

    42

  • Peripheral 실습 – SSP(SD Card)

    Normal Function

    5VGND

    D15D14ARefGNDD13D12D11D10D9D8

    D7D6D5D4D3D2D1D0

    NCIOREFRSTn3.3V5VGNDGNDNC

    A0A1A2A3A4A5

    PC_15PC_14PC_13PC_12PC_11PC_10

    PA_09PA_10

    PA_06PA_07PA_08PA_05PC_04PC_07

    PC_06PA_00PA_01PA_02PC_00PC_01PA_13PA_14

    PWM2/CAP2PWM3/CAP3

    SSEL0SCLK0MISO0MOSI0

    AIN5AIN4AIN3AIN2AIN1AIN0

    SCL0SDA0

    SCLK0MISO0MOSI0SSEL0SCL1

    U_CTS1U_RTS1U_TXD0U_RXD0

    U_TXD1U_RXD1

    SDA1U_CTS1U_RTS1SCL1

    PWM4/CAP4U_RXD2

    U_TXD2PWM6/CAP6PWM7/CAP7CLKOUT

    PWM0/CAP0PWM1/CAP1

    MISO1MOSI1

    U_TXD2U_RXD2AIN3AIN2AIN1AIN0

    PWM6/CAP6PWM7/CAP7

    PWM3/CAP3PWM4/CAP4PWM5/CAP5PWM2/CAP2

    PC_03PC_02PA_15PA_04PA_03RSTnBOOTPA_12PA_11

    3.3VGNDPB_00PB_01PB_02PB_03PC_08PC_09PC_05

    LEDRLEDGLEDB

    SSEL1SCLK1MISO1MOSI1

    SD_SELSD_CLKSD_MISOSD_MOSI

    PWM0/CAP0PWM1/CAP1

    SDA1

    U_CTS0U_RTS0U_TXD0U_RXD0SCL0SDA0

    PWM5/CAP5

    AIN7AIN6

    U_RXD1U_TXD1

    SWDIOSWCLK

    U_RTS0U_CTS0

    PWM3/CAP3PWM2/CAP2

    SCLK1SSEL1

    PWM1/CAP1PWM0/CAP0

    DAP-RXDDAP-TXD

    3.3V

    U_RXD2

    U_TXD2

    GND

    Normal Function3rd Function4th Function2nd Function

    3rd Function 4th Function2nd Function

    2nd Function2nd Function

    43

  • TOE(TCP/IP Offload Engine)

  • Protocol Layer

    45

  • SW TCP/IP vs Hardware TCP/IP

    46

  • How to use?

    Read / Write

    Common Register

    Status Register

    Network Config Register

    Socket Register x 8

    TX & RX Buffer

    Buffer Config. Register

    Buffer Status RegisterSocket Command Register

    Socket Status Register

    Socket Config. Register

    Bus interface

    RX

    TX

    Sn_CR

    Sn_SR, Sn_IR

    Sn_MR, Sn_DIPR, Sn_DPORT

    SIR, PHYCFGR

    SIPR, SHAR, GAR, SUBR

    Sn_RXBUF_SIZE,Sn_TXBUF_SIZE

    Sn_TX_RD,Sn_TX_WR

    47

  • Socket?? Channel??

    • SOCKET 이란

    - 통신에 필요한 각종 Resources

    ex) IP , PORT , etc…

    • Channel 이란

    - 실제 Data 통신을 하는 통로

    ex) My Socket(IP | PORT) Peer Socket(IP | PORT)

    48

  • ioLibrary를 이용한 Socket API Flow chart

    49

  • WZTOE Socket Memory map

    50

  • TOE 응용

    http://wiznetmuseum.com/

    51

    http://wiznetmuseum.com/http://wiznetmuseum.com/

  • Web ServerWIZwiki-W7500 보드활용 HTTP Server 구현하기

  • 오늘 실습 해볼 내용은?

    53

  • Q&A 감사합니다.

    54