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)
- 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
- I2C example produces weird non-working results HOT 3
- Embassy-RP and RP2040-hal Compatibility??? - Embedded_Hal::PWM:SetDutyCycle Assistance HOT 4
- Faulty UART baudrate divisor formula HOT 2
- Support the ReadReady and WriteReady traits on UART HOT 1
- Strange on-target-test results on rust beta HOT 6
- I2C contract violation HOT 4
- Add new RP2350 microcontroller support HOT 2
- `embedded_io::ReadReady/WriteReady` not implemented for uart peripheral HOT 1
- rp235x-hal: Add nice wrapper for `get_sys_info`
- Our implementation of embedded_io::Write is wrong HOT 1
- Using sram4/5 HOT 11
- Be consistent with I2S and SPI terminology
- Panic reporting over USB example for Resberry Pi pico HOT 4
- Unsure how to enable DMA interrupts HOT 3
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.