{"id":22281532,"url":"https://github.com/edarc/max7301","last_synced_at":"2025-03-25T19:22:45.339Z","repository":{"id":57637133,"uuid":"170981191","full_name":"edarc/max7301","owner":"edarc","description":"Rust embedded-hal driver for MAX7301 serial I/O expander","archived":false,"fork":false,"pushed_at":"2021-07-27T05:47:39.000Z","size":45,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-01T22:37:25.577Z","etag":null,"topics":["embedded-hal","embedded-hal-driver","io-expander","max7301","rtfm","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edarc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-16T08:35:29.000Z","updated_at":"2022-08-15T11:42:35.000Z","dependencies_parsed_at":"2022-08-30T10:30:47.040Z","dependency_job_id":null,"html_url":"https://github.com/edarc/max7301","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edarc%2Fmax7301","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edarc%2Fmax7301/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edarc%2Fmax7301/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edarc%2Fmax7301/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edarc","download_url":"https://codeload.github.com/edarc/max7301/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245526782,"owners_count":20629876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embedded-hal","embedded-hal-driver","io-expander","max7301","rtfm","rust"],"created_at":"2024-12-03T16:19:01.298Z","updated_at":"2025-03-25T19:22:40.325Z","avatar_url":"https://github.com/edarc.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MAX7301 serial I/O expander driver\n\nPure Rust driver for the Maxim MAX7301 serial I/O expander chip, for use with\n[embedded-hal](https://crates.io/crates/embedded-hal).\n\n## Description\n\nThis driver is intended to work on embedded platforms using the `embedded-hal`\ntrait library. It is `no_std` and does not require an allocator. The initial\nrelease supports the MAX7301 which uses an SPI interface. I would like (and\nhave left interfaces) to extend it to support the MAX7300, which is an\nequivalent device with an I2C interface instead.\n\nThe driver allows three different styles of using the device:\n\n- A \"raw\" interface, which exposes minimally-abstracted methods that directly\n  map to the operations the device implements, but which do not map onto\n  `embedded-hal` traits,\n- An *immediate mode* interface, which allows creation of individual, ownable\n  `PortPin` instances that implement the `InputPin` and `OutputPin` traits,\n  where calling any methods from those traits immediately initiates a bus\n  transaction to perform the operation, and\n- A *transactional* interface, which similarly allows creation of `PortPin`\n  instances, but where the HAL trait methods do not generate bus traffic\n  directly, but instead interact with a write-back cache inside the driver.\n  There are additional methods that control when the write-back cache is\n  refreshed or written back, and these methods permit the driver to exploit the\n  device's multi-port registers to reduce the amount of bus traffic and latency\n  substantially in situations where it makes sense.\n\n### Missing features:\n\n- I2C interface for MAX7300 variant.\n- Helper methods for using the device's hardware transition detection and\n  interrupt generator. It can be enabled and disabled, but doing so is a bit\n  pointless as there is no method to alter the port mask, and no method to\n  clear the interrupt it once it is triggered.\n\n## License\n\nLicensed under either of\n\n- Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n- MIT license (http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall\nbe dual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedarc%2Fmax7301","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedarc%2Fmax7301","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedarc%2Fmax7301/lists"}