Don't think! Just do it!

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

임베디드 소프트웨어/Zephyr

Zephyr 새 보드 만들기 #3

방피터 2022. 9. 24. 14:04

2022.09.23 - [임베디드 소프트웨어/Zephyr] - Zephyr 새 보드 만들기 #2

 

Zephyr 새 보드 만들기 #2

2022.09.22 - [임베디드 소프트웨어/Zephyr] - Zephyr 새 보드 만들기 Zephyr 새 보드 만들기 2022.08.01 - [임베디드 소프트웨어/Zephyr] - Zephyr 새 프로젝트 만들기 Zephyr 새 프로젝트 만들기 2022.07.30 - [..

engschool.tistory.com

제퍼 새 보드를 만들긴 했는데 w5500코드로는 w5100s가 동작하지 않아. 드라이버를 새로 만들어야 하는 것 같아. 그래서 w5100s_evb_pico는 그대로 두고 새로 w5500_evb_pico 보드를 추가했고 제퍼 CONFIG도 조금 더 수정했어. 

우선 w5500_evb_pico_defconf 파일에 W5500 관련 내용을 추가했어 👇👇 board_name_defconf 이런 형식의 파일은 그 보드의 default configuration을 의미해. 참고!

CONFIG_SOC_SERIES_RP2XXX=y
CONFIG_SOC_RP2040=y
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000
CONFIG_SERIAL=y
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_GPIO=y
CONFIG_USE_DT_CODE_PARTITION=y
CONFIG_BUILD_OUTPUT_UF2=y
CONFIG_BUILD_OUTPUT_HEX=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_RESET=y

# For W5500
CONFIG_SPI=y
CONFIG_ETH_W5500=y
CONFIG_ETH_W5500_TIMEOUT=1000
CONFIG_NET_SHELL=y
CONFIG_NET_L2_ETHERNET=y

프로젝트 폴더의 prj.conf 파일도 약간 정리했어. 👇👇 걍 보기 좋으라고 ㅋ

CONFIG_MAIN_STACK_SIZE=8192

CONFIG_LIB_CPLUSPLUS=y
CONFIG_STD_CPP11=y

# For Log
CONFIG_LOG=y

# For DHCPV4
CONFIG_NET_DHCPV4=y
CONFIG_NET_IPV4=y
CONFIG_NET_IPV6=n
CONFIG_NET_UDP=y
CONFIG_NETWORKING=y
CONFIG_TEST_RANDOM_GENERATOR=y

# Network address config
CONFIG_NET_CONFIG_SETTINGS=y

# For the shell
CONFIG_SHELL=y
CONFIG_NET_SHELL=y

또 한가지 언급하자면 디바이스 트리 spi에 spi0_default를 통해서 miso,mosi,sck,csn 라인이 모두 정의되었음에도 불구하고 cs-gpios를 정의했는데 이걸 정의하지 않으면 동작하지 않아. 아마 rp2040 spi 펌웨어가 cs 하드웨어 컨트롤을 사용하지 않도록 되어 있어서 그런듯! 이거 때문에 하루 날림.

&spi0 {
	clock-frequency = <DT_FREQ_M(8)>;
	status = "okay";
	pinctrl-0 = <&spi0_default>;
	pinctrl-names = "default";
	cs-gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
	w5500: w5500@0 {
			compatible = "wiznet,w5500";
			label = "w5500";
			reg = <0>;
			spi-max-frequency = <10000000>;
			int-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
            reset-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
        };
};

아래는 제퍼의 rpi-pico spi 부분 문서인데 난 여기를 참고해서 작성했어.👇👇👇

https://docs.zephyrproject.org/latest/build/dts/api/bindings/spi/raspberrypi%2Cpico-spi.html

 

raspberrypi,pico-spi — Zephyr Project Documentation

Docs / Latest » raspberrypi,pico-spi This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version. <!-- FIXME

docs.zephyrproject.org

이렇게 잘 설정하고 터미널로 확인하면 제퍼가 w5500_evb_pico에서 잘 돌고 있는 걸 확인할 수 있어.👇

w5500_evb_pico 제퍼 실행화면

음.. 그런데 여전히 멈추네. 어디에 문제가 있는거지? w5500 라이브러리가 멈춘다고 어디 사이트에서 본 것 같은데... 난감하구만! 안녕!

 

반응형

'임베디드 소프트웨어 > Zephyr' 카테고리의 다른 글

[nRF52840 + Zephyr] #0. nRF and Zephyr  (0) 2023.05.01
Zephyr tcp echo 서버  (0) 2022.09.24
Zephyr 새 보드 만들기 #2  (1) 2022.09.23
Zephyr 새 보드 만들기  (1) 2022.09.22
Zephyr 새 프로젝트 만들기  (0) 2022.08.01