Raspberry Pi Pico를 유선 LAN에 연결하여 통신
2609 단어 CLAN이더넷RaspberryPiPico
이 기사에서는 Raspberry Pi Pico에 ENC28J60이라는 LAN 컨트롤러를 연결하여 UDP 패킷을 송수신하고 NTP 서버에서 날짜 및 시간 데이터를 검색합니다.
▼전체상
프로그램은 10년 정도 옛날에 ATmega328P로 ENC28J60을 제어했을 때의 코드를 재이용하고 있습니다.
▼옛날 만든 녀석
ENC28J60은 고기능 LAN 컨트롤러가 아니기 때문에 TCP/IP와 같은 고급 기능은 탑재되어 있지 않습니다. 이더넷의 원시 패킷을 송수신할 수 밖에 없습니다. 상위 프로토콜은 호스트의 마이크로 컴퓨터 측에 구현됩니다. 적어도 다음과 같은 기능이 Raspberry Pi Pico 측에 필요합니다.
이 기사에서는 NTP 서버에 문의하여 데이터를 취득하기 때문에 UDP 통신을 사용합니다. 만약, 웹서버 등을 만들고 싶다면, TCP의 통신 기능을 구현할 필요가 있고, 꽤 큰 프로그램이 되어 버리므로, TCP는 본 기사에서는 다루지 않습니다. 앞으로의 도전 과제가 되고 있습니다.
동영상은 다음 트윗에 있습니다.
#RaspberryPiPico 그리고 ENC28J60에서 유선 LAN 연결로 NTP 서버에서 날짜와 시간을 얻을 수 있었다! 피 c. 라고 r. 코m/에우오 HTR7rFQ — 소라미미 (@soramimi_kr) February 11, 2021
소스 코드
ENC28J60과 호스트 마이크로 컴퓨터는 SPI를 통해 통신합니다. 클록(SCK)은 평상시는 Low 레벨로, 상승 에지에서 신호선의 읽고 쓰기를 실시하는 포맷이므로, 다음의 포맷 지정이 필요했습니다. 이것을 깨닫기까지 몇 시간이 걸렸습니다.
spi_set_format(SPI_PORT, 8, SPI_CPOL_0, SPI_CPHA_1, SPI_MSB_FIRST);
Reference
이 문제에 관하여(Raspberry Pi Pico를 유선 LAN에 연결하여 통신), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/soramimi_jp/items/a1418cbd6d2bbc057d42텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)