STM32F103C8T6에 W5100S 포팅하기
내가 포팅하려는 보드는 STM32F103C8T6에 W5100S가 연결된 블루필 보드이다. 먼저 블루필 보드의 Schmatic을 참고하여 어떤 포트가 SPI, 크리스탈 핀, 칩 리셋, 칩 인터럽트인지 파악한다.
CUBE IDE에서 칩을 찾아 각 핀넘버를 config 시켜준다.
PB10, PB11, PB12는 각각 chip int pin, chip rst pin, SPI NSS(Slave Select이므로 GPIO로 Enable) 이므로 아래와 같이 config 한다.
RCC 크리스탈 연결 핀은 PC14, PC15, PD00, PD01이므로 RCC 컨디션을 아래와 같이 config한다.
나머지 SPI 컨디션은 아래와 같이 config한다.
총 10개의 핀에 이름을 부여하여 각 핀을 enable 시켜주었다.
ioc 파일을 저장하고 코드를 generate한다.
프로젝트에 W5100S의 라이브러리를 추가하기 위해 프로젝트에 Libraries 폴더를 추가한다.
추가한 폴더에 WIZnet의 ioLibrary를 추가해준다.
추가한 ioLibrary의 경로를 컴파일러에 설정해주어야한다. 프로젝트를 우클릭하여 Properties를 클릭한다.
포팅 시 쓰일 라이브러리의 경로를 추가해주자. 나는 Loopback.h, Wizchip_conf.h, DHCP.h, W5100S.h를 사용할 것이기 때문에 아래 표시된 탭 Includes으로 들어가서 ADD를 눌러 라이브러리의 경로를 추가한다.
Source Location 탭에도 .c가 담긴 소스 파일의 경로를 추가해준 후 아래 Apply and Close를 누른다.
메인 코드로 넘어가서 헤더파일을 추가하고 SPI와 칩들을 init해준다. main.c 코드를 첨부해놨다.
코드 정리가 어느정도 필요하지만 포팅만 실행시킬 것이므로 정리는 나중에 할 것이다.
나는 블루필 보드와 J-link를 연결해서 파일을 플래싱 할 것이다. J-link의 VCC, SWDIO, SWDCLK, Boot RST를 블루필의 총 5개의 외부 포트를 회로도에서 찾아 점퍼선으로 연결한다.
J-link로 플래싱을 위해서는 Run config를 별도로 해주어야한다. CUBE IDE내 빌드 버튼 오른쪽에 있는 화살표의 'Run Configurations..'를 클릭한다.
Debugger 탭의 Debug probe에서 SEGGER J-LINK를 선택하고 Run을 누른다.
빌드 버튼을 눌러 아래와 같이 성공적으로 블루필 보드에 포팅 펌웨어가 플래싱 됨을 확인할 수 있다.
'STM32' 카테고리의 다른 글
[STM32] RTOS (0) | 2023.08.13 |
---|---|
[STM32] STM32에서 스텝 모터 동작 시키기 (0) | 2023.08.13 |
[STM32] UART를 이용한 Circular Queue 구현 (0) | 2023.08.13 |
[STM32] STM32F429ZI 사용하기 (0) | 2023.08.13 |
[STM32] STM32의 타이머 카운터 (0) | 2023.08.13 |