W7500으로 Cortex-M0 시작하기 - 2차W7500 WizWiki 보드 활용 Web Server 구현하기
2015년 5월 27일
위즈네트 아카데미
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
W7500 소개
• IoT 최적화 MCU
• Unattackable Hardwire TCP/IP Chip
• Start-up을 꿈꾸십니까? - VAR products
• ARM mbed Enabled MCU
Museum Link
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
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.
W7500 Alternate Function• Each functional pad has 2 ~ 4 functions.
• Pins can be selected by each registers individually.
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
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.
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.
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
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가 있어야 함
WIZwiki-W7500 Connector Information
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
목차
• W7500 소개
• WIZwiki-W7500 Board 소개
• 개발 환경 구축
• Peripheral 이론 & 실습 – UART, RNG, I2C, SSP, TOE
• Web Server
개발 환경 구축
개발 환경 구축
• 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
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
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
Library 폴더 구조 설명
• Libraries• CMSIS
• Device• WIZnet
• W7500• Include• Source
• ARM• G++• GCC• IAR
• Include• RTOS
• W7500x_stdPeriph_Driver• inc• src
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
개발 환경 구축
• 프로젝트 Open!!
• Workspace/project/Projects/Peripheral_Examples/GPIO/Blink_LED/MDK/W7500x_GPIO_Blink_LED.uvprojx
개발 환경 구축
• 그림과 같이 컴파일이 완료되고 .bin 파일이 생성 되면 개발 환경 구축 완료
Firmware Download 방법
• Drag & drop• CMSIS-DAP
• ISP• W7500 ISP Tool
• SWD• CMSIS-DAP
• Ulink2
Firmware download 방법(1)Link : Drag and drop (CMSIS-DAP)
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
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
Firmware download 방법(3)Link : SWD를 이용한 CMSIS-DAP Debugger
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
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 이론 및 실습
Peripheral
•직렬 통신(Serial Communication)•UART – printf 출력• I2C – OLED write• SSP – SD card r/w
•RNG – 1~19의 값 출력
•네트워크 통신(Network Communication)•TOE – Web server
UART(Universal Asynchronous Receive Transmit)
• 비동기식
• 4-line(simplest use just 2 line,TXD and RXD)• TXD, RXD, CTS, RTS
http://eslectures.blog.me/80137862792
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
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
I2C(Inter-Integrated Circuit)
• 동기식
• 2-line
• SCL, SDA
• 4 condition
• START,STOP,RESTART,DATA(and ACK)
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
RNG(Random Number Generator)
• 기욱팀장이 작성예정• 32bit RNG
• Polynomial can be modified
• Default polynomial: F(x) = x31 + x30 + x29 + x9 + x
pseudo-random number처음에 주어지는 초깃값을 이용하여 이미 결정되어 있는 메커니즘(의사 난수 생성기)에 의해 생성되는 수. 난수는 생성방법이 결정되어 있지 않으며, 다음에 생성될 값을 전혀 예측할 수 없으나 의사 난수 생성기에 의해 생성되는 수는 초깃값을 알면 계산될 수도 있으므로 진짜 난수와 구별하여 의사난수라 부른다. [네이버 지식백과]
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
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
SSP(Synchronous Serial Port)
nSS • 동기식
• 3-line or $4-line
• SCLK, nSS, MOSI ,MISO
• MOSI와 MISO를 한 라인으로 사용하기도함
Peripheral 실습 – SSP
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
TOE(TCP/IP Offload Engine)
Protocol Layer
44
SW TCP/IP vs Hardware TCP/IP
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
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
Socket?? Channel??
47
• SOCKET 이란
- 통신에 필요한 각종 Resources
ex) IP , PORT , etc…
• Channel 이란
- 실제 Data 통신을 하는 통로
ex) My Socket(IP | PORT) Peer Socket(IP | PORT)
ioLibrary를 이용한 Socket API Flow chart
48
WZTOE Socket Memory map
49
Web ServerWIZwiki-W7500 보드활용 HTTP Server 구현하기
오늘 실습 해볼 내용은?
Q&A 감사합니다.