2022.09.23 - [임베디드 소프트웨어/Zephyr] - Zephyr 새 보드 만들기 #2
제퍼 새 보드를 만들긴 했는데 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
이렇게 잘 설정하고 터미널로 확인하면 제퍼가 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 |