Comments (2)
We have a function to manually set the Input Enable bit: https://docs.rs/rp2040-hal/latest/rp2040_hal/gpio/struct.Pin.html#method.set_input_enable
However, should it be set automatically when configuring a pin to some other function mode?
Also, on stepping B0 and B1, the IE bit gets disabled by the SDK "as early as possible after startup".
Perhaps we should do the same? I assume this is a precautionary measure to avoid metastabilities due to undefined digital values.
from rp-hal.
Yes, we should probably do the same. If the user asks for DynFunction::SioXXX, or DynFunction::I2C, or DynFunction::SPI or whatever, we should set the Input Enable on and Output Disable off for the pad . At startup (which is DynFunction::Null) and if they ask for DynFunction::ADC, we should set Input Enable off and Output Disable on.
If they want to fiddle with the settings after picking the function, we can let them do that. But selecting a function should be sufficient, for any RP2040 GPIO.
I assume this is a precautionary measure to avoid metastabilities due to undefined digital values.
If you hold the ADC input mid-rail (not unreasonable) but the digital input is enabled, I think it draws a ton of current.
from rp-hal.
Related Issues (20)
- slow startup of XOSC HOT 1
- GPIO pins should have inherent infallible methods HOT 1
- Clock errors cannot be printed with deft
- I2C on GPIO24/25 not working HOT 13
- Update terminology for I2C (and possibly other peripherals)
- Missing impls for Pin<_, DynFunction, _> HOT 12
- Should there be a default impl for hal::serial::blocking::Write? HOT 3
- Support use of slice for Program code HOT 1
- Note on how to acquire Pin's number as an integer HOT 1
- ERROR probe_rs::cmd::run: Failed to attach to RTT continuing... HOT 5
- Crates.io version HOT 2
- ADC read blocks HOT 3
- embedded_io::serial::Reader implementations drop data on error
- rp2040_hal::halt() makes rp2040 un-debuggable even though comment in function says debugging will stay possible
- Does rp2040_hal::spi::Spi implement the embedded-hal 1.0 SpiDevice trait? HOT 3
- Cycling a buffer with DMA HOT 5
- Support for #[thread_local]? HOT 3
- Multicore Lockout HOT 11
- Readme seems to use wrong cargo run command HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rp-hal.