-
Notifications
You must be signed in to change notification settings - Fork 224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stable driver: I2C master #2493
Comments
This comment was marked as resolved.
This comment was marked as resolved.
Just braindumping in this comment for now, will be edited many times I'm sure. Possibly some of these things are supported, already have open issues, or are out of scope. Will convert things to issues as needed at a later date. Missing functionality:
|
This is a slave-mode feature as far as I can tell, please double check. |
ESP32-C2 is 16 × 8 bits IIRC it's only relevant for ESP32 / ESP32-S2 - on later chips it's an arbitrary value. Probably because on ESP32/ESP32-S2 there is no FIFO_WM |
Nitpick and not important for stabilization: |
What do you mean by chunk_size being arbitrary? Data ends up being copied into the register block starting with I2C_TXFIFO_START_ADDR, where there is a 128 byte address space empty, but is all that useable? Or do I completely misunderstand how this works? Oh I understand we're detecting that the fifo is full and block on it... Alright. |
As part of #2491, which has more details on driver analysis.
esp-hal API-GUIDELINE omissions
derive(EnumSetType)
enum as opposed to one function per interrupt flag. #2768cfg_if!
over multiple exclusive#[cfg]
attributes. #2771Rust API guideline omissions
DM
#2775into_async
andinto_blocking
suggestsFrom
might make sense #2777instance!
should be hidden. #2781C-METADATA
andC-RELNOTES
don't apply, others are in violation #2782.degrade()
to peripheral singletons? #2783write
,read
,write_read
should acceptimpl AsRef<[u8]>
andAsMut
#2785Hardware feature omissions
I2C: direct RAM access is not supported (? idf only implements for slave mode where it is actually useful)Mode/features of the driver that are lacking
I2C_CHUNK_SIZE
needs to be clarified - all devices have 32x8bit RAMMisc
AckCheckFailed
variant. #2814macro_rules! instance
inI2C
driver, butmacro_rules! impl_instance
in the UART one for the same action. It's probably worth unifying the names acrossesp-hal
for this (if present/applicable somewhere else)The text was updated successfully, but these errors were encountered: