https://github.com/zandemax/mcp346x-rs
Rust library for the Microchip MCP346x family of ADCs
https://github.com/zandemax/mcp346x-rs
Last synced: 11 months ago
JSON representation
Rust library for the Microchip MCP346x family of ADCs
- Host: GitHub
- URL: https://github.com/zandemax/mcp346x-rs
- Owner: zandemax
- License: mit
- Created: 2022-12-16T17:44:51.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-03T17:04:43.000Z (over 3 years ago)
- Last Synced: 2025-08-25T06:12:02.941Z (11 months ago)
- Language: Rust
- Size: 13.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MCP346x Sigma-Delta ADC
[](https://crates.io/crates/mcp346x)
[](https://docs.rs/mcp346x)
This crate contains a platform-agnostic driver for the MCP346[1/2/4] Sigma-Delta ADC, using the [`embedded-hal`](https://github.com/rust-embedded/embedded-hal) traits.
Currently, you can:
- Initialize the device
- Configure Input MUX and IRQ Pullup
- Set the conversion or power down mode
- Obtain measurements
### [Documentation](https://docs.rs/mcp346x)
## Usage
### Single Measurement
```rust ignore
use mcp346x::*;
let spi_pins = (sck, miso, mosi);
let spi = Spi::new(p.SPI0, spi_pins, Frequency::K500, MODE_0);
let address = 0b01; // This is the default address for most chips
let mut adc = MCP346x::new(spi, address).into_continuous_mode()?;
adc.set_clock_source(mcp346x::ClockSource::Internal)?;
adc.set_irq_internal_pullup(true)?;
let voltage = adc.measure()?;
```
## Status
- [x] Initialization
- [x] Powerdown/wakeup/conversion
- [x] Take Measurements
- [x] Input MUX configuration
- [ ] SCAN mode
- [ ] Expose other Configurations
- [ ] Communication CRC checksums
## License
Licensed under either of
* Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license
([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.