diff options
| -rw-r--r-- | embassy-stm32/CHANGELOG.md | 108 |
1 files changed, 66 insertions, 42 deletions
diff --git a/embassy-stm32/CHANGELOG.md b/embassy-stm32/CHANGELOG.md index ba565f663..aa979e9b8 100644 --- a/embassy-stm32/CHANGELOG.md +++ b/embassy-stm32/CHANGELOG.md | |||
| @@ -15,10 +15,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||
| 15 | - Add I2S support for STM32F1, STM32C0, STM32F0, STM32F3, STM32F7, STM32G0, STM32WL, STM32H5, STM32H7RS | 15 | - Add I2S support for STM32F1, STM32C0, STM32F0, STM32F3, STM32F7, STM32G0, STM32WL, STM32H5, STM32H7RS |
| 16 | - fix: STM32: Prevent dropped DacChannel from disabling Dac peripheral if another DacChannel is still in scope ([#4577](https://github.com/embassy-rs/embassy/pull/4577)) | 16 | - fix: STM32: Prevent dropped DacChannel from disabling Dac peripheral if another DacChannel is still in scope ([#4577](https://github.com/embassy-rs/embassy/pull/4577)) |
| 17 | - feat: Added support for more OctoSPI configurations (e.g. APS6408 RAM) ([#4581](https://github.com/embassy-rs/embassy/pull/4581)) | 17 | - feat: Added support for more OctoSPI configurations (e.g. APS6408 RAM) ([#4581](https://github.com/embassy-rs/embassy/pull/4581)) |
| 18 | - feat: More ADC enums for g0 PAC, API change for over sampling, allow separate sample times | ||
| 18 | 19 | ||
| 19 | ## 0.4.0 - 2025-08-26 | 20 | ## 0.4.0 - 2025-08-26 |
| 20 | 21 | ||
| 21 | - feat: stm32/sai: make NODIV independent of MCKDIV | 22 | - feat: stm32/sai: make NODIV independent of MCKDIV |
| 22 | - fix: stm32/sai: fix WB MCKDIV | 23 | - fix: stm32/sai: fix WB MCKDIV |
| 23 | - fix: stm32/i2c: pull-down was enabled instead of pull-none when no internal pull-up was needed. | 24 | - fix: stm32/i2c: pull-down was enabled instead of pull-none when no internal pull-up was needed. |
| 24 | - feat: Improve blocking hash speed | 25 | - feat: Improve blocking hash speed |
| @@ -97,24 +98,25 @@ For peripherals, both pins and DMA channels have been eliminated. Peripherals no | |||
| 97 | ### More complete and consistent RCC | 98 | ### More complete and consistent RCC |
| 98 | 99 | ||
| 99 | RCC support has been vastly expanded and improved. | 100 | RCC support has been vastly expanded and improved. |
| 101 | |||
| 100 | - The API is now consistent across all STM32 families. Previously in some families you'd configure the desired target frequencies for `sysclk` and the buses and `embassy-stm32` would try to calculate dividers and muxes to hit them as close as possible. This has proved to be intractable in the general case and hard to extend to more exotic RCC configurations. So, we have standardized on an API where the user specifies the settings for dividers and muxes directly. It's lower level but gices more control to the user, supports all edge case exotic configurations, and makes it easier to translate a configuration from the STM32CubeMX tool. ([Tracking issue](https://github.com/embassy-rs/embassy/issues/2515). [#2624](https://github.com/embassy-rs/embassy/pull/2624). F0, F1 [#2564](https://github.com/embassy-rs/embassy/pull/2564), F3 [#2560](https://github.com/embassy-rs/embassy/pull/2560), U5 [#2617](https://github.com/embassy-rs/embassy/pull/2617), [#3514](https://github.com/embassy-rs/embassy/pull/3514), [#3513](https://github.com/embassy-rs/embassy/pull/3513), G4 [#2579](https://github.com/embassy-rs/embassy/pull/2579), [#2618](https://github.com/embassy-rs/embassy/pull/2618), WBA [#2520](https://github.com/embassy-rs/embassy/pull/2520), G0, C0 ([#2656](https://github.com/embassy-rs/embassy/pull/2656)). | 102 | - The API is now consistent across all STM32 families. Previously in some families you'd configure the desired target frequencies for `sysclk` and the buses and `embassy-stm32` would try to calculate dividers and muxes to hit them as close as possible. This has proved to be intractable in the general case and hard to extend to more exotic RCC configurations. So, we have standardized on an API where the user specifies the settings for dividers and muxes directly. It's lower level but gices more control to the user, supports all edge case exotic configurations, and makes it easier to translate a configuration from the STM32CubeMX tool. ([Tracking issue](https://github.com/embassy-rs/embassy/issues/2515). [#2624](https://github.com/embassy-rs/embassy/pull/2624). F0, F1 [#2564](https://github.com/embassy-rs/embassy/pull/2564), F3 [#2560](https://github.com/embassy-rs/embassy/pull/2560), U5 [#2617](https://github.com/embassy-rs/embassy/pull/2617), [#3514](https://github.com/embassy-rs/embassy/pull/3514), [#3513](https://github.com/embassy-rs/embassy/pull/3513), G4 [#2579](https://github.com/embassy-rs/embassy/pull/2579), [#2618](https://github.com/embassy-rs/embassy/pull/2618), WBA [#2520](https://github.com/embassy-rs/embassy/pull/2520), G0, C0 ([#2656](https://github.com/embassy-rs/embassy/pull/2656)). |
| 101 | - Added support for configuring all per-peripheral clock muxes (CCIPRx, DCKCFGRx registers) in `config.rcc.mux`. This was previously handled in an ad-hoc way in some drivers (e.g. USB) and not at all in others (causing e.g. wrong SPI frequency) ([#2521](https://github.com/embassy-rs/embassy/pull/2521), [#2583](https://github.com/embassy-rs/embassy/pull/2583), [#2634](https://github.com/embassy-rs/embassy/pull/2634), [#2626](https://github.com/embassy-rs/embassy/pull/2626), [#2815](https://github.com/embassy-rs/embassy/pull/2815), [#2517](https://github.com/embassy-rs/embassy/pull/2517)). | 103 | - Added support for configuring all per-peripheral clock muxes (CCIPRx, DCKCFGRx registers) in `config.rcc.mux`. This was previously handled in an ad-hoc way in some drivers (e.g. USB) and not at all in others (causing e.g. wrong SPI frequency) ([#2521](https://github.com/embassy-rs/embassy/pull/2521), [#2583](https://github.com/embassy-rs/embassy/pull/2583), [#2634](https://github.com/embassy-rs/embassy/pull/2634), [#2626](https://github.com/embassy-rs/embassy/pull/2626), [#2815](https://github.com/embassy-rs/embassy/pull/2815), [#2517](https://github.com/embassy-rs/embassy/pull/2517)). |
| 102 | - Switch to a safe configuration before configuring RCC. This helps avoid crashes when RCC has been already configured previously (for example by a bootloader). (F2, F4, F7 [#2829](https://github.com/embassy-rs/embassy/pull/2829), C0, F0, F1, F3, G0, G4, H5, H7[#3008](https://github.com/embassy-rs/embassy/pull/3008)) | 104 | - Switch to a safe configuration before configuring RCC. This helps avoid crashes when RCC has been already configured previously (for example by a bootloader). (F2, F4, F7 [#2829](https://github.com/embassy-rs/embassy/pull/2829), C0, F0, F1, F3, G0, G4, H5, H7[#3008](https://github.com/embassy-rs/embassy/pull/3008)) |
| 103 | - Some new nice features: | 105 | - Some new nice features: |
| 104 | - Expose RCC enable and disable in public API. ([#2807](https://github.com/embassy-rs/embassy/pull/2807)) | 106 | - Expose RCC enable and disable in public API. ([#2807](https://github.com/embassy-rs/embassy/pull/2807)) |
| 105 | - Add `unchecked-overclocking` feature that disables all asserts, allowing running RCC out of spec. ([#3574](https://github.com/embassy-rs/embassy/pull/3574)) | 107 | - Add `unchecked-overclocking` feature that disables all asserts, allowing running RCC out of spec. ([#3574](https://github.com/embassy-rs/embassy/pull/3574)) |
| 106 | - Many fixes: | 108 | - Many fixes: |
| 107 | - Workaround H5 errata that accidentally clears RAM on backup domain reset. ([#2616](https://github.com/embassy-rs/embassy/pull/2616)) | 109 | - Workaround H5 errata that accidentally clears RAM on backup domain reset. ([#2616](https://github.com/embassy-rs/embassy/pull/2616)) |
| 108 | - Reset RTC on L0 ([#2597](https://github.com/embassy-rs/embassy/pull/2597)) | 110 | - Reset RTC on L0 ([#2597](https://github.com/embassy-rs/embassy/pull/2597)) |
| 109 | - Fix H7 to use correct unit in vco clock check ([#2537](https://github.com/embassy-rs/embassy/pull/2537)) | 111 | - Fix H7 to use correct unit in vco clock check ([#2537](https://github.com/embassy-rs/embassy/pull/2537)) |
| 110 | - Fix incorrect D1CPRE max for STM32H7 RM0468 ([#2518](https://github.com/embassy-rs/embassy/pull/2518)) | 112 | - Fix incorrect D1CPRE max for STM32H7 RM0468 ([#2518](https://github.com/embassy-rs/embassy/pull/2518)) |
| 111 | - WBA's high speed external clock has to run at 32 MHz ([#2511](https://github.com/embassy-rs/embassy/pull/2511)) | 113 | - WBA's high speed external clock has to run at 32 MHz ([#2511](https://github.com/embassy-rs/embassy/pull/2511)) |
| 112 | - Take into account clock propagation delay to peripherals after enabling a clock. ([#2677](https://github.com/embassy-rs/embassy/pull/2677)) | 114 | - Take into account clock propagation delay to peripherals after enabling a clock. ([#2677](https://github.com/embassy-rs/embassy/pull/2677)) |
| 113 | - Fix crash caused by using higher MSI range as sysclk on STM32WL ([#2786](https://github.com/embassy-rs/embassy/pull/2786)) | 115 | - Fix crash caused by using higher MSI range as sysclk on STM32WL ([#2786](https://github.com/embassy-rs/embassy/pull/2786)) |
| 114 | - fix using HSI48 as SYSCLK on F0 devices with CRS ([#3652](https://github.com/embassy-rs/embassy/pull/3652)) | 116 | - fix using HSI48 as SYSCLK on F0 devices with CRS ([#3652](https://github.com/embassy-rs/embassy/pull/3652)) |
| 115 | - compute LSE and LSI frequency for STM32L and STM32U0 series ([#3554](https://github.com/embassy-rs/embassy/pull/3554)) | 117 | - compute LSE and LSI frequency for STM32L and STM32U0 series ([#3554](https://github.com/embassy-rs/embassy/pull/3554)) |
| 116 | - Add support for LSESYS, used to pass LSE clock to peripherals ([#3518](https://github.com/embassy-rs/embassy/pull/3518)) | 118 | - Add support for LSESYS, used to pass LSE clock to peripherals ([#3518](https://github.com/embassy-rs/embassy/pull/3518)) |
| 117 | - H5: LSE low drive mode is not functional ([#2738](https://github.com/embassy-rs/embassy/pull/2738)) | 119 | - H5: LSE low drive mode is not functional ([#2738](https://github.com/embassy-rs/embassy/pull/2738)) |
| 118 | 120 | ||
| 119 | ### New peripheral drivers | 121 | ### New peripheral drivers |
| 120 | 122 | ||
| @@ -134,6 +136,7 @@ RCC support has been vastly expanded and improved. | |||
| 134 | ### Improvements to existing drivers | 136 | ### Improvements to existing drivers |
| 135 | 137 | ||
| 136 | GPIO: | 138 | GPIO: |
| 139 | |||
| 137 | - Generate singletons only for pins that actually exist. ([#3738](https://github.com/embassy-rs/embassy/pull/3738)) | 140 | - Generate singletons only for pins that actually exist. ([#3738](https://github.com/embassy-rs/embassy/pull/3738)) |
| 138 | - Add `set_as_analog` to Flex ([#3017](https://github.com/embassy-rs/embassy/pull/3017)) | 141 | - Add `set_as_analog` to Flex ([#3017](https://github.com/embassy-rs/embassy/pull/3017)) |
| 139 | - Add `embedded-hal` v0.2 `InputPin` impls for `OutputOpenDrain`. ([#2716](https://github.com/embassy-rs/embassy/pull/2716)) | 142 | - Add `embedded-hal` v0.2 `InputPin` impls for `OutputOpenDrain`. ([#2716](https://github.com/embassy-rs/embassy/pull/2716)) |
| @@ -142,6 +145,7 @@ GPIO: | |||
| 142 | - Gpiov1: Do not call set_speed for AFType::Input ([#2996](https://github.com/embassy-rs/embassy/pull/2996)) | 145 | - Gpiov1: Do not call set_speed for AFType::Input ([#2996](https://github.com/embassy-rs/embassy/pull/2996)) |
| 143 | 146 | ||
| 144 | UART: | 147 | UART: |
| 148 | |||
| 145 | - Add embedded-io impls ([#2739](https://github.com/embassy-rs/embassy/pull/2739)) | 149 | - Add embedded-io impls ([#2739](https://github.com/embassy-rs/embassy/pull/2739)) |
| 146 | - Add support for changing baud rate ([#3512](https://github.com/embassy-rs/embassy/pull/3512)) | 150 | - Add support for changing baud rate ([#3512](https://github.com/embassy-rs/embassy/pull/3512)) |
| 147 | - Add split_ref ([#3500](https://github.com/embassy-rs/embassy/pull/3500)) | 151 | - Add split_ref ([#3500](https://github.com/embassy-rs/embassy/pull/3500)) |
| @@ -151,21 +155,22 @@ UART: | |||
| 151 | - Add support for sending breaks ([#3286](https://github.com/embassy-rs/embassy/pull/3286)) | 155 | - Add support for sending breaks ([#3286](https://github.com/embassy-rs/embassy/pull/3286)) |
| 152 | - Disconnect pins on drop ([#3006](https://github.com/embassy-rs/embassy/pull/3006)) | 156 | - Disconnect pins on drop ([#3006](https://github.com/embassy-rs/embassy/pull/3006)) |
| 153 | - Half-duplex improvements | 157 | - Half-duplex improvements |
| 154 | - Add half-duplex for all USART versions ([#2833](https://github.com/embassy-rs/embassy/pull/2833)) | 158 | - Add half-duplex for all USART versions ([#2833](https://github.com/embassy-rs/embassy/pull/2833)) |
| 155 | - configurable readback for half-duplex. ([#3679](https://github.com/embassy-rs/embassy/pull/3679)) | 159 | - configurable readback for half-duplex. ([#3679](https://github.com/embassy-rs/embassy/pull/3679)) |
| 156 | - Convert uart half_duplex to use user configurable IO ([#3233](https://github.com/embassy-rs/embassy/pull/3233)) | 160 | - Convert uart half_duplex to use user configurable IO ([#3233](https://github.com/embassy-rs/embassy/pull/3233)) |
| 157 | - Fix uart::flush with FIFO at Half-Duplex mode ([#2895](https://github.com/embassy-rs/embassy/pull/2895)) | 161 | - Fix uart::flush with FIFO at Half-Duplex mode ([#2895](https://github.com/embassy-rs/embassy/pull/2895)) |
| 158 | - Fix Half-Duplex sequential reads and writes ([#3089](https://github.com/embassy-rs/embassy/pull/3089)) | 162 | - Fix Half-Duplex sequential reads and writes ([#3089](https://github.com/embassy-rs/embassy/pull/3089)) |
| 159 | - disable transmitter during during half-duplex flush ([#3299](https://github.com/embassy-rs/embassy/pull/3299)) | 163 | - disable transmitter during during half-duplex flush ([#3299](https://github.com/embassy-rs/embassy/pull/3299)) |
| 160 | - Buffered UART improvements | 164 | - Buffered UART improvements |
| 161 | - Add embedded-io ReadReady impls ([#3179](https://github.com/embassy-rs/embassy/pull/3179), [#3451](https://github.com/embassy-rs/embassy/pull/3451)) | 165 | - Add embedded-io ReadReady impls ([#3179](https://github.com/embassy-rs/embassy/pull/3179), [#3451](https://github.com/embassy-rs/embassy/pull/3451)) |
| 162 | - Add constructors for RS485 ([#3441](https://github.com/embassy-rs/embassy/pull/3441)) | 166 | - Add constructors for RS485 ([#3441](https://github.com/embassy-rs/embassy/pull/3441)) |
| 163 | - Fix RingBufferedUartRx hard-resetting DMA after initial error ([#3356](https://github.com/embassy-rs/embassy/pull/3356)) | 167 | - Fix RingBufferedUartRx hard-resetting DMA after initial error ([#3356](https://github.com/embassy-rs/embassy/pull/3356)) |
| 164 | - Don't teardown during reconfigure ([#2989](https://github.com/embassy-rs/embassy/pull/2989)) | 168 | - Don't teardown during reconfigure ([#2989](https://github.com/embassy-rs/embassy/pull/2989)) |
| 165 | - Wake receive task for each received byte ([#2722](https://github.com/embassy-rs/embassy/pull/2722)) | 169 | - Wake receive task for each received byte ([#2722](https://github.com/embassy-rs/embassy/pull/2722)) |
| 166 | - Fix dma and idle line detection in ringbuffereduartrx ([#3319](https://github.com/embassy-rs/embassy/pull/3319)) | 170 | - Fix dma and idle line detection in ringbuffereduartrx ([#3319](https://github.com/embassy-rs/embassy/pull/3319)) |
| 167 | 171 | ||
| 168 | SPI: | 172 | SPI: |
| 173 | |||
| 169 | - Add MISO pullup configuration option ([#2943](https://github.com/embassy-rs/embassy/pull/2943)) | 174 | - Add MISO pullup configuration option ([#2943](https://github.com/embassy-rs/embassy/pull/2943)) |
| 170 | - Add slew rate configuration options ([#3669](https://github.com/embassy-rs/embassy/pull/3669)) | 175 | - Add slew rate configuration options ([#3669](https://github.com/embassy-rs/embassy/pull/3669)) |
| 171 | - Fix blocking_write on nosck spi. ([#3035](https://github.com/embassy-rs/embassy/pull/3035)) | 176 | - Fix blocking_write on nosck spi. ([#3035](https://github.com/embassy-rs/embassy/pull/3035)) |
| @@ -175,6 +180,7 @@ SPI: | |||
| 175 | - Add proper rxonly support for spi_v3 and force tx dma stream requirements. ([#3007](https://github.com/embassy-rs/embassy/pull/3007)) | 180 | - Add proper rxonly support for spi_v3 and force tx dma stream requirements. ([#3007](https://github.com/embassy-rs/embassy/pull/3007)) |
| 176 | 181 | ||
| 177 | I2C: | 182 | I2C: |
| 183 | |||
| 178 | - Implement asynchronous transactions ([#2742](https://github.com/embassy-rs/embassy/pull/2742)) | 184 | - Implement asynchronous transactions ([#2742](https://github.com/embassy-rs/embassy/pull/2742)) |
| 179 | - Implement blocking transactions ([#2713](https://github.com/embassy-rs/embassy/pull/2713)) | 185 | - Implement blocking transactions ([#2713](https://github.com/embassy-rs/embassy/pull/2713)) |
| 180 | - Disconnect pins on drop ([#3006](https://github.com/embassy-rs/embassy/pull/3006)) | 186 | - Disconnect pins on drop ([#3006](https://github.com/embassy-rs/embassy/pull/3006)) |
| @@ -183,6 +189,7 @@ I2C: | |||
| 183 | - Fix disabling pullup accidentally enabling pulldown ([#3410](https://github.com/embassy-rs/embassy/pull/3410)) | 189 | - Fix disabling pullup accidentally enabling pulldown ([#3410](https://github.com/embassy-rs/embassy/pull/3410)) |
| 184 | 190 | ||
| 185 | Flash: | 191 | Flash: |
| 192 | |||
| 186 | - Add L5 support ([#3423](https://github.com/embassy-rs/embassy/pull/3423)) | 193 | - Add L5 support ([#3423](https://github.com/embassy-rs/embassy/pull/3423)) |
| 187 | - Add H5 support ([#3305](https://github.com/embassy-rs/embassy/pull/3305)) | 194 | - Add H5 support ([#3305](https://github.com/embassy-rs/embassy/pull/3305)) |
| 188 | - add F2 support ([#3303](https://github.com/embassy-rs/embassy/pull/3303)) | 195 | - add F2 support ([#3303](https://github.com/embassy-rs/embassy/pull/3303)) |
| @@ -194,6 +201,7 @@ Flash: | |||
| 194 | - H7: enhance resilience to program sequence errors (pgserr) ([#2539](https://github.com/embassy-rs/embassy/pull/2539)) | 201 | - H7: enhance resilience to program sequence errors (pgserr) ([#2539](https://github.com/embassy-rs/embassy/pull/2539)) |
| 195 | 202 | ||
| 196 | ADC: | 203 | ADC: |
| 204 | |||
| 197 | - Add `AnyAdcChannel` type. You can obtain it from a pin with `.degrade_adc()`. Useful for making arrays of ADC pins. ([#2985](https://github.com/embassy-rs/embassy/pull/2985)) | 205 | - Add `AnyAdcChannel` type. You can obtain it from a pin with `.degrade_adc()`. Useful for making arrays of ADC pins. ([#2985](https://github.com/embassy-rs/embassy/pull/2985)) |
| 198 | - Add L0 support ([#2544](https://github.com/embassy-rs/embassy/pull/2544)) | 206 | - Add L0 support ([#2544](https://github.com/embassy-rs/embassy/pull/2544)) |
| 199 | - Add U5 support ([#3688](https://github.com/embassy-rs/embassy/pull/3688)) | 207 | - Add U5 support ([#3688](https://github.com/embassy-rs/embassy/pull/3688)) |
| @@ -213,14 +221,17 @@ ADC: | |||
| 213 | - F2 ADC fixes ([#2513](https://github.com/embassy-rs/embassy/pull/2513)) | 221 | - F2 ADC fixes ([#2513](https://github.com/embassy-rs/embassy/pull/2513)) |
| 214 | 222 | ||
| 215 | DAC: | 223 | DAC: |
| 224 | |||
| 216 | - Fix new_internal not setting mode as documented ([#2886](https://github.com/embassy-rs/embassy/pull/2886)) | 225 | - Fix new_internal not setting mode as documented ([#2886](https://github.com/embassy-rs/embassy/pull/2886)) |
| 217 | 226 | ||
| 218 | OPAMP: | 227 | OPAMP: |
| 228 | |||
| 219 | - Add missing opamp external outputs for STM32G4 ([#3636](https://github.com/embassy-rs/embassy/pull/3636)) | 229 | - Add missing opamp external outputs for STM32G4 ([#3636](https://github.com/embassy-rs/embassy/pull/3636)) |
| 220 | - Add extra lifetime to opamp-using structs ([#3207](https://github.com/embassy-rs/embassy/pull/3207)) | 230 | - Add extra lifetime to opamp-using structs ([#3207](https://github.com/embassy-rs/embassy/pull/3207)) |
| 221 | - Make OpAmp usable in follower configuration for internal DAC channel ([#3021](https://github.com/embassy-rs/embassy/pull/3021)) | 231 | - Make OpAmp usable in follower configuration for internal DAC channel ([#3021](https://github.com/embassy-rs/embassy/pull/3021)) |
| 222 | 232 | ||
| 223 | CAN: | 233 | CAN: |
| 234 | |||
| 224 | - Add FDCAN support. ([#2475](https://github.com/embassy-rs/embassy/pull/2475), [#2571](https://github.com/embassy-rs/embassy/pull/2571), [#2623](https://github.com/embassy-rs/embassy/pull/2623), [#2631](https://github.com/embassy-rs/embassy/pull/2631), [#2635](https://github.com/embassy-rs/embassy/pull/2635), [#2637](https://github.com/embassy-rs/embassy/pull/2637), [#2645](https://github.com/embassy-rs/embassy/pull/2645), [#2647](https://github.com/embassy-rs/embassy/pull/2647), [#2658](https://github.com/embassy-rs/embassy/pull/2658), [#2703](https://github.com/embassy-rs/embassy/pull/2703), [#3364](https://github.com/embassy-rs/embassy/pull/3364)) | 235 | - Add FDCAN support. ([#2475](https://github.com/embassy-rs/embassy/pull/2475), [#2571](https://github.com/embassy-rs/embassy/pull/2571), [#2623](https://github.com/embassy-rs/embassy/pull/2623), [#2631](https://github.com/embassy-rs/embassy/pull/2631), [#2635](https://github.com/embassy-rs/embassy/pull/2635), [#2637](https://github.com/embassy-rs/embassy/pull/2637), [#2645](https://github.com/embassy-rs/embassy/pull/2645), [#2647](https://github.com/embassy-rs/embassy/pull/2647), [#2658](https://github.com/embassy-rs/embassy/pull/2658), [#2703](https://github.com/embassy-rs/embassy/pull/2703), [#3364](https://github.com/embassy-rs/embassy/pull/3364)) |
| 225 | - Simplify BXCAN API, make BXCAN and FDCAN APIs consistent. ([#2760](https://github.com/embassy-rs/embassy/pull/2760), [#2693](https://github.com/embassy-rs/embassy/pull/2693), [#2744](https://github.com/embassy-rs/embassy/pull/2744)) | 236 | - Simplify BXCAN API, make BXCAN and FDCAN APIs consistent. ([#2760](https://github.com/embassy-rs/embassy/pull/2760), [#2693](https://github.com/embassy-rs/embassy/pull/2693), [#2744](https://github.com/embassy-rs/embassy/pull/2744)) |
| 226 | - Add buffered mode support ([#2588](https://github.com/embassy-rs/embassy/pull/2588)) | 237 | - Add buffered mode support ([#2588](https://github.com/embassy-rs/embassy/pull/2588)) |
| @@ -237,9 +248,11 @@ CAN: | |||
| 237 | - Preseve the RTR flag in messages. ([#2745](https://github.com/embassy-rs/embassy/pull/2745)) | 248 | - Preseve the RTR flag in messages. ([#2745](https://github.com/embassy-rs/embassy/pull/2745)) |
| 238 | 249 | ||
| 239 | FMC: | 250 | FMC: |
| 251 | |||
| 240 | - Add 13bit address sdram constructors ([#3189](https://github.com/embassy-rs/embassy/pull/3189)) | 252 | - Add 13bit address sdram constructors ([#3189](https://github.com/embassy-rs/embassy/pull/3189)) |
| 241 | 253 | ||
| 242 | xSPI: | 254 | xSPI: |
| 255 | |||
| 243 | - Add OCTOSPI support ([#2672](https://github.com/embassy-rs/embassy/pull/2672)) | 256 | - Add OCTOSPI support ([#2672](https://github.com/embassy-rs/embassy/pull/2672)) |
| 244 | - Add OCTOSPIM support ([#3102](https://github.com/embassy-rs/embassy/pull/3102)) | 257 | - Add OCTOSPIM support ([#3102](https://github.com/embassy-rs/embassy/pull/3102)) |
| 245 | - Add HEXADECASPI support ([#3667](https://github.com/embassy-rs/embassy/pull/3667)) | 258 | - Add HEXADECASPI support ([#3667](https://github.com/embassy-rs/embassy/pull/3667)) |
| @@ -250,39 +263,44 @@ xSPI: | |||
| 250 | - Stick to `blocking_*` naming convention for QSPI, OSPI ([#3661](https://github.com/embassy-rs/embassy/pull/3661)) | 263 | - Stick to `blocking_*` naming convention for QSPI, OSPI ([#3661](https://github.com/embassy-rs/embassy/pull/3661)) |
| 251 | 264 | ||
| 252 | SDMMC: | 265 | SDMMC: |
| 266 | |||
| 253 | - Add `block-device-driver` impl for use with `embedded-fatfs` ([#2607](https://github.com/embassy-rs/embassy/pull/2607)) | 267 | - Add `block-device-driver` impl for use with `embedded-fatfs` ([#2607](https://github.com/embassy-rs/embassy/pull/2607)) |
| 254 | - Allow cmd block to be passed in for sdmmc dma transfers ([#3188](https://github.com/embassy-rs/embassy/pull/3188)) | 268 | - Allow cmd block to be passed in for sdmmc dma transfers ([#3188](https://github.com/embassy-rs/embassy/pull/3188)) |
| 255 | 269 | ||
| 256 | ETH: | 270 | ETH: |
| 271 | |||
| 257 | - Fix reception of multicast packets ([#3488](https://github.com/embassy-rs/embassy/pull/3488), [#3707](https://github.com/embassy-rs/embassy/pull/3707)) | 272 | - Fix reception of multicast packets ([#3488](https://github.com/embassy-rs/embassy/pull/3488), [#3707](https://github.com/embassy-rs/embassy/pull/3707)) |
| 258 | - Add support for executing custom SMI commands ([#3355](https://github.com/embassy-rs/embassy/pull/3355)) | 273 | - Add support for executing custom SMI commands ([#3355](https://github.com/embassy-rs/embassy/pull/3355)) |
| 259 | - Add support for MII interface ([#2465](https://github.com/embassy-rs/embassy/pull/2465)) | 274 | - Add support for MII interface ([#2465](https://github.com/embassy-rs/embassy/pull/2465)) |
| 260 | 275 | ||
| 261 | USB: | 276 | USB: |
| 277 | |||
| 262 | - Assert correct clock on init. ([#2711](https://github.com/embassy-rs/embassy/pull/2711)) | 278 | - Assert correct clock on init. ([#2711](https://github.com/embassy-rs/embassy/pull/2711)) |
| 263 | - Set PWR_CR2 USV on STM32L4 ([#2605](https://github.com/embassy-rs/embassy/pull/2605)) | 279 | - Set PWR_CR2 USV on STM32L4 ([#2605](https://github.com/embassy-rs/embassy/pull/2605)) |
| 264 | - USBD driver improvements: | 280 | - USBD driver improvements: |
| 265 | - Add ISO endpoint support ([#3314](https://github.com/embassy-rs/embassy/pull/3314)) | 281 | - Add ISO endpoint support ([#3314](https://github.com/embassy-rs/embassy/pull/3314)) |
| 266 | - Add support for L1. ([#2452](https://github.com/embassy-rs/embassy/pull/2452)) | 282 | - Add support for L1. ([#2452](https://github.com/embassy-rs/embassy/pull/2452)) |
| 267 | - set USB initialization delay to 1µs ([#3700](https://github.com/embassy-rs/embassy/pull/3700)) | 283 | - set USB initialization delay to 1µs ([#3700](https://github.com/embassy-rs/embassy/pull/3700)) |
| 268 | - OTG driver improvements: | 284 | - OTG driver improvements: |
| 269 | - Add ISO endpoint support ([#3314](https://github.com/embassy-rs/embassy/pull/3314)) | 285 | - Add ISO endpoint support ([#3314](https://github.com/embassy-rs/embassy/pull/3314)) |
| 270 | - Add support for U595, U5A5 ([#3613](https://github.com/embassy-rs/embassy/pull/3613)) | 286 | - Add support for U595, U5A5 ([#3613](https://github.com/embassy-rs/embassy/pull/3613)) |
| 271 | - Add support for STM32H7R/S ([#3337](https://github.com/embassy-rs/embassy/pull/3337)) | 287 | - Add support for STM32H7R/S ([#3337](https://github.com/embassy-rs/embassy/pull/3337)) |
| 272 | - Add support for full-speed ULPI mode ([#3281](https://github.com/embassy-rs/embassy/pull/3281)) | 288 | - Add support for full-speed ULPI mode ([#3281](https://github.com/embassy-rs/embassy/pull/3281)) |
| 273 | - Make max EP count configurable ([#2881](https://github.com/embassy-rs/embassy/pull/2881)) | 289 | - Make max EP count configurable ([#2881](https://github.com/embassy-rs/embassy/pull/2881)) |
| 274 | - fix corruption in CONTROL OUT transfers in stm32f4. ([#3565](https://github.com/embassy-rs/embassy/pull/3565)) | 290 | - fix corruption in CONTROL OUT transfers in stm32f4. ([#3565](https://github.com/embassy-rs/embassy/pull/3565)) |
| 275 | - Extract Synopsys USB OTG driver to a separate crate ([#2871](https://github.com/embassy-rs/embassy/pull/2871)) | 291 | - Extract Synopsys USB OTG driver to a separate crate ([#2871](https://github.com/embassy-rs/embassy/pull/2871)) |
| 276 | - Add critical sections to avoid USB OTG corruption Errata ([#2823](https://github.com/embassy-rs/embassy/pull/2823)) | 292 | - Add critical sections to avoid USB OTG corruption Errata ([#2823](https://github.com/embassy-rs/embassy/pull/2823)) |
| 277 | - Fix support for OTG_HS in FS mode. ([#2805](https://github.com/embassy-rs/embassy/pull/2805)) | 293 | - Fix support for OTG_HS in FS mode. ([#2805](https://github.com/embassy-rs/embassy/pull/2805)) |
| 278 | 294 | ||
| 279 | I2S: | 295 | I2S: |
| 296 | |||
| 280 | - Add SPIv3 support. ([#2992](https://github.com/embassy-rs/embassy/pull/2992)) | 297 | - Add SPIv3 support. ([#2992](https://github.com/embassy-rs/embassy/pull/2992)) |
| 281 | - Add full-duplex support. ([#2992](https://github.com/embassy-rs/embassy/pull/2992)) | 298 | - Add full-duplex support. ([#2992](https://github.com/embassy-rs/embassy/pull/2992)) |
| 282 | - Add I2S ringbuffered DMA support ([#3023](https://github.com/embassy-rs/embassy/pull/3023)) | 299 | - Add I2S ringbuffered DMA support ([#3023](https://github.com/embassy-rs/embassy/pull/3023)) |
| 283 | - Fix STM32F4 I2S clock calculations ([#3716](https://github.com/embassy-rs/embassy/pull/3716)) | 300 | - Fix STM32F4 I2S clock calculations ([#3716](https://github.com/embassy-rs/embassy/pull/3716)) |
| 284 | 301 | ||
| 285 | SAI: | 302 | SAI: |
| 303 | |||
| 286 | - Add a function that waits for any SAI/ringbuffer write error ([#3545](https://github.com/embassy-rs/embassy/pull/3545)) | 304 | - Add a function that waits for any SAI/ringbuffer write error ([#3545](https://github.com/embassy-rs/embassy/pull/3545)) |
| 287 | - Disallow start without an initial write ([#3541](https://github.com/embassy-rs/embassy/pull/3541)) | 305 | - Disallow start without an initial write ([#3541](https://github.com/embassy-rs/embassy/pull/3541)) |
| 288 | - Flush FIFO on init and disable ([#3538](https://github.com/embassy-rs/embassy/pull/3538)) | 306 | - Flush FIFO on init and disable ([#3538](https://github.com/embassy-rs/embassy/pull/3538)) |
| @@ -291,6 +309,7 @@ SAI: | |||
| 291 | - Add function to check if SAI is muted ([#3282](https://github.com/embassy-rs/embassy/pull/3282)) | 309 | - Add function to check if SAI is muted ([#3282](https://github.com/embassy-rs/embassy/pull/3282)) |
| 292 | 310 | ||
| 293 | Low-power support: | 311 | Low-power support: |
| 312 | |||
| 294 | - Update `embassy-executor` to v0.7. | 313 | - Update `embassy-executor` to v0.7. |
| 295 | - Add support for U0 ([#3556](https://github.com/embassy-rs/embassy/pull/3556)) | 314 | - Add support for U0 ([#3556](https://github.com/embassy-rs/embassy/pull/3556)) |
| 296 | - Add support for U5 ([#3496](https://github.com/embassy-rs/embassy/pull/3496)) | 315 | - Add support for U5 ([#3496](https://github.com/embassy-rs/embassy/pull/3496)) |
| @@ -300,18 +319,20 @@ Low-power support: | |||
| 300 | - Fix alarms not triggering in some cases ([#3592](https://github.com/embassy-rs/embassy/pull/3592)) | 319 | - Fix alarms not triggering in some cases ([#3592](https://github.com/embassy-rs/embassy/pull/3592)) |
| 301 | 320 | ||
| 302 | Timer: | 321 | Timer: |
| 322 | |||
| 303 | - Add Input Capture high-level driver ([#2912](https://github.com/embassy-rs/embassy/pull/2912)) | 323 | - Add Input Capture high-level driver ([#2912](https://github.com/embassy-rs/embassy/pull/2912)) |
| 304 | - Add PWM Input high-level driver ([#3014](https://github.com/embassy-rs/embassy/pull/3014)) | 324 | - Add PWM Input high-level driver ([#3014](https://github.com/embassy-rs/embassy/pull/3014)) |
| 305 | - Add support for splitting `SimplePwm` into channels ([#3317](https://github.com/embassy-rs/embassy/pull/3317)) | 325 | - Add support for splitting `SimplePwm` into channels ([#3317](https://github.com/embassy-rs/embassy/pull/3317)) |
| 306 | - Fix `SimplePwm` not enabling output pin in some stm32 families ([#2670](https://github.com/embassy-rs/embassy/pull/2670)) | 326 | - Fix `SimplePwm` not enabling output pin in some stm32 families ([#2670](https://github.com/embassy-rs/embassy/pull/2670)) |
| 307 | - Add LPTIM low-level driver. ([#3310](https://github.com/embassy-rs/embassy/pull/3310)) | 327 | - Add LPTIM low-level driver. ([#3310](https://github.com/embassy-rs/embassy/pull/3310)) |
| 308 | - Low-level TIM driver improvements: | 328 | - Low-level TIM driver improvements: |
| 309 | - Simplify traits, convert from trait methods to struct. ([#2728](https://github.com/embassy-rs/embassy/pull/2728)) | 329 | - Simplify traits, convert from trait methods to struct. ([#2728](https://github.com/embassy-rs/embassy/pull/2728)) |
| 310 | - Add `low_level::Timer::get_clock_frequency()` ([#2908](https://github.com/embassy-rs/embassy/pull/2908)) | 330 | - Add `low_level::Timer::get_clock_frequency()` ([#2908](https://github.com/embassy-rs/embassy/pull/2908)) |
| 311 | - Fix 32bit timer off by one ARR error ([#2876](https://github.com/embassy-rs/embassy/pull/2876)) | 331 | - Fix 32bit timer off by one ARR error ([#2876](https://github.com/embassy-rs/embassy/pull/2876)) |
| 312 | - Avoid max_compare_value >= u16::MAX ([#3549](https://github.com/embassy-rs/embassy/pull/3549)) | 332 | - Avoid max_compare_value >= u16::MAX ([#3549](https://github.com/embassy-rs/embassy/pull/3549)) |
| 313 | 333 | ||
| 314 | DMA: | 334 | DMA: |
| 335 | |||
| 315 | - Add `AnyChannel` type. Similar to `AnyPin`, it allows representing any DMA channel at runtime without needing generics. ([#2606](https://github.com/embassy-rs/embassy/pull/2606)) | 336 | - Add `AnyChannel` type. Similar to `AnyPin`, it allows representing any DMA channel at runtime without needing generics. ([#2606](https://github.com/embassy-rs/embassy/pull/2606)) |
| 316 | , Add support for BDMA on H7 ([#2606](https://github.com/embassy-rs/embassy/pull/2606)) | 337 | , Add support for BDMA on H7 ([#2606](https://github.com/embassy-rs/embassy/pull/2606)) |
| 317 | - Add async `stop()` function to BDMA, DMA ([#2757](https://github.com/embassy-rs/embassy/pull/2757)) | 338 | - Add async `stop()` function to BDMA, DMA ([#2757](https://github.com/embassy-rs/embassy/pull/2757)) |
| @@ -321,6 +342,7 @@ DMA: | |||
| 321 | - Right-align `write_immediate()` in ring buffers ([#3588](https://github.com/embassy-rs/embassy/pull/3588)) | 342 | - Right-align `write_immediate()` in ring buffers ([#3588](https://github.com/embassy-rs/embassy/pull/3588)) |
| 322 | 343 | ||
| 323 | `embassy-time` driver: | 344 | `embassy-time` driver: |
| 345 | |||
| 324 | - Update to `embassy-time` v0.4, `embassy-time-driver` v0.2. ([#3593](https://github.com/embassy-rs/embassy/pull/3593)) | 346 | - Update to `embassy-time` v0.4, `embassy-time-driver` v0.2. ([#3593](https://github.com/embassy-rs/embassy/pull/3593)) |
| 325 | - Change preference order of `time-driver-any` to pick less-featureful timers first. ([#2570](https://github.com/embassy-rs/embassy/pull/2570)) | 347 | - Change preference order of `time-driver-any` to pick less-featureful timers first. ([#2570](https://github.com/embassy-rs/embassy/pull/2570)) |
| 326 | - Allow using more TIMx timers for the time driver of TIM1 ([#2570](https://github.com/embassy-rs/embassy/pull/2570), [#2614](https://github.com/embassy-rs/embassy/pull/2614)) | 348 | - Allow using more TIMx timers for the time driver of TIM1 ([#2570](https://github.com/embassy-rs/embassy/pull/2570), [#2614](https://github.com/embassy-rs/embassy/pull/2614)) |
| @@ -328,9 +350,11 @@ DMA: | |||
| 328 | - adds timer-driver for tim21 and tim22 (on L0) ([#2450](https://github.com/embassy-rs/embassy/pull/2450)) | 350 | - adds timer-driver for tim21 and tim22 (on L0) ([#2450](https://github.com/embassy-rs/embassy/pull/2450)) |
| 329 | 351 | ||
| 330 | WDG: | 352 | WDG: |
| 353 | |||
| 331 | - Allow higher PSC value for iwdg_v3 ... ([#2628](https://github.com/embassy-rs/embassy/pull/2628)) | 354 | - Allow higher PSC value for iwdg_v3 ... ([#2628](https://github.com/embassy-rs/embassy/pull/2628)) |
| 332 | 355 | ||
| 333 | Misc: | 356 | Misc: |
| 357 | |||
| 334 | - Allow `bind_interrupts!` to accept conditional compilation attrs ([#3444](https://github.com/embassy-rs/embassy/pull/3444)) | 358 | - Allow `bind_interrupts!` to accept conditional compilation attrs ([#3444](https://github.com/embassy-rs/embassy/pull/3444)) |
| 335 | 359 | ||
| 336 | ## 0.1.0 - 2024-01-12 | 360 | ## 0.1.0 - 2024-01-12 |
