#spi #w5500 #spi-driver #driver #wiznet #embedded-hal-driver

no-std w5500-ll

Low level driver for the Wiznet W5500 internet offload chip

20 releases (11 breaking)

0.12.0 Oct 2, 2023
0.10.4 Jul 14, 2022
0.10.1 Dec 24, 2021
0.10.0 Nov 10, 2021
0.7.0 Feb 24, 2021

#559 in Embedded development

Download history 3/week @ 2024-02-11 24/week @ 2024-02-18 160/week @ 2024-02-25 96/week @ 2024-03-03 70/week @ 2024-03-10 77/week @ 2024-03-17 42/week @ 2024-03-24

298 downloads per month
Used in 7 crates (2 directly)

MIT license

360KB
3K SLoC

w5500-ll

Platform agnostic rust driver for the Wiznet W5500 SPI internet offload chip.

This is a low-level (ll) crate. The scope of this crate is:

  1. Register accessors.
  2. Networking data types.

Higher level functionality (such as socket operations) should be built on-top of what is provided here.

Example

Reading the VERSIONR register (a constant value).

use w5500_ll::{eh1::vdm::W5500, Registers};

let mut w5500 = W5500::new(spi);
let version: u8 = w5500.version()?;
assert_eq!(version, 0x04);

Feature Flags

All features are disabled by default.

  • async: Nightly only. Enables the asynchronous aio::Registers trait.
  • defmt: Enable formatting most types with defmt.
  • eh0: Enables the eh0 module which contains implementations of the Registers trait using the embedded-hal version 0.2 traits.
  • eh1: Enables the eh1 module which contains implementations of the Registers trait using the embedded-hal version 1 traits.
  • eha0a: Nightly only. Implements the aio::Registers trait for types in the eh1 module using the embedded-hal-async alpha traits.
  • ip_in_core: Nightly only. Use core::net types for Ipv4Addr and SocketAddrV4.
  • std: Enables conversion between std::net and w5500_ll::net types. This is for testing purposes only, the std flag will not work on embedded systems because it uses the standard library.

Dependencies

~185KB