Skip to content

Latest commit

 

History

History
271 lines (196 loc) · 8.48 KB

CHANGELOG.md

File metadata and controls

271 lines (196 loc) · 8.48 KB

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

[v0.7.1] - 2022-04-11

Fixed

- Shorten old buffer when we have extra characters in DMA buffer after a character match.

v0.7.0 - 2022-04-04

Added

- Add delay implementation based on `cortex_m::asm::delay`.
- Implement `RngCore` and `CryptoRng` for the hardware RNG.
- Support analog to digital converters (ADC).
- Support SPI slave mode.
- Add DMA and interrupt support for SPI and ADC peripherals.
- Add support for measuring Vref, Vbat and temperature.
- Add alternate function 0 to GPIO.
- Add preliminary bxCAN support.
- Add more GPIO combinations for I2C and PWM peripherals.
- Add wakeup clock sources to RTC config.
- Support RTC domain backup registers.
- Support I2C on stm32l4x3 devices.
- Support I2C3 peripheral on stm32l4x6 devices.
- Experimental support for the Synopsis USB library.
- Experimental support for USB OTG FS for stm32l4x5 and stm32l4x6 devices.
- Support stm32l4r9 devices.

Changed

- Use device-specific features rather than by-peripheral features.
- Use `fugit` duration nd rate units instead of custom
- Use const-generics for GPIO (require Rust 1.51)
- Import I2C implementation from `stm32h7xx-hal` crate.
- Use a `Config` struct for initializing I2C peripherals.
- Check that the clock requested for the low-power timer is enabled.
- Take `clocks` argument by value when setting up low-power timer.
- Use sane low-power timer defaults (LSI, no prescaler).
- Make `LowPowerTimer<_>::set_autoreload()` public.
- Enable SPI2 for all stm32l4x2 devices as some of them have it.
- Target hardfp by default since stm32l4 cores are Cortex-M4F.
- Require typed input when converting from milliseconds to hertz.
- Rework alternate function typestates.
- Use MSI as default/fallback clock source for SYSCLK.
- Use specialized PAC for stm32l412 and stm32l422 devices.
- Add `toggeable` trait to GPIO pins.
- Update `stm32l4` dependency.

Fixed

- Fix TIM1 PWM frequency computation.
- Fix TIM5 counter width.
- Fix PSC computation off-by-one error.
- Change wait states values according to datasheet.
- Fix incorrect I2C2 on PC0/PC1 on stm32l4x3 devices.
- Swap QSPI pins and remove conflicting/wrong implementations.
- Add power on GPIOG pins.
- Support 0 byte writes on I2C.

v0.6.0 - 2020-12-11

Added

- USB driver for `stm32l4x2` and `stm32l4x3` devices.
- USART3 and UART4, with dma support.
- Support for GPIOF and GPIOG.
- USB driver examples.
- Support for external pin interrupts (EXTI).
- Implement hardware flow control for serial.
- Support for CRC peripheral.
- Implement `core::hash::Hasher` for the CRC peripheral.
- Support for serial framing.
- Support for Half-Duplex Serial.
- Support for timers 5 and 6.
- Bump stm32l4 to `0.11.0`.
- Support for QSPI.
- Support for RTC alarms.
- Support for the Independant Watch Dog Timer.
- VSCode configurations.
- Added signature module.

Changed

- Reworked clock control with RCC.
- Rework the DMA API.
- Rework the FLASH programming API.
- Rework GPIO output to support setting Speed, Pullups and drain functionality.
- Switched to Github actions.

Fixed

- Re-add support for GPIOD & GPIOE.
- Fix enable bits for PWM.
- Fix clearing serial error flag bits.
- I2C 7bit adressing shift.
- Fix the systick delay to support delays greater than `1 << 24`
- Clean up examples, and Deps.

v0.5.0 - 2019-09-02

Added

- DMA2

Breaking

- Serial ports now use a config, instead of just the baudrate.
- Upgraded embedded-hal, gpio method signitures are now fallible.
- Bumped cortex-m.

v0.4.0 - 2019-05-08

Added

- PWM support for select timers
- More GPIO support

Fixed

- More debug and Eq derives where appropriate
- Updated to stm32-rs v0.7.0 which fixes [#32](https://github.com/stm32-rs/stm32l4xx-hal/issues/32) for stm32l4x5 and stm32l4x6 devices

v0.3.6 - 2019-02-11

Added

- GPIOE Support
- MSI Clock support

Fixed

- The TSC `aquire` did not reset the channel select register after aquisition
- The default charge high and charge low time for the TSC were fixed at the max, this now has a sane default and can be configured with the TSC config.
- HCLK and PCKL rcc prescaling, although setting the right clocks, the value in `Clocks` was wrong, this now correctly calculated.

v0.3.5 - 2019-01-07

Added

- Rng implementation
- GPIOE support
- `fmt::Write` for serial Tx

Breaking

- LSI is no longer enabled by default, requires `lsi(true)` when configuring the rcc 

v0.3.4 - 2018-12-31

Fixed

- Hardcoded stm32 device crate in `i2c`

Added

- TSC clear flag API

v0.3.3 - 2018-12-12

Fixed

- Bumped stm32l4 to v0.5.0
- Fixed timer start macro

v0.3.2 - 2018-12-12

Added

- DMA buffers now use as-slice

Fixed

- This crate now compiles on stable (1.31)!

v0.3.1 - 2018-12-10

Added

- I2C support using embedded-hal traits
- Added GPIO input embedded-hal traits

v0.3.0 - 2018-11-21

Breaking

- Move device selection (l4x1, l4x2, etc.) behind feature, in line with stm32f4xx-hal.
- Change crate name accordingly to `stm32l4-hal`.

Fixed

- Update crate dependencies.

v0.2.7 - 2018-11-21

Breaking

- EOL the stm32l432xx-hal crate

v0.2.6 - 2018-11-03

Fixed

- TSC flags not getting cleared by the `aquire` tsc method.

v0.2.5 - YANKED

v0.2.4 - 2018-10-32

Fixed

- Updated examples and bumped dependancies.

v0.2.3 - 2018-10-06

Fixed

- RCC configuration for higher clocks, using the wrong multiplyier reg caused issue with time sensative peripherals

Added

- New TSC Configuration, to set the prescaler and max count value.

v0.2.2 - 2018-08-25

- Fixed documentation link in readme.

v0.2.1 - 2018-08-25

Added

- Timer implementations for timer15 & timer 16
- Two new TSC API's, `read` & `read_unchecked`
    - `read` checks the supplied pin is the pin we are reading
    - `read_unchecked` returns the contents of the count register

Fixed

- Channel pins do not require Schmitt trigger hysteresis

v0.2.0 - 2018-08-21

Breaking

- GPIO type signature changed to allow pin state and alterante function to be encoded in the pin type.

Added

- Touch sense controller peripheral support
    - Easy to use blocking API with interrupt support too

v0.1.1 - 2018-08-13

Added

- Idle line detection for Usart Rx
- Idle Line Interrupt listening

Fixed

- DMA Circular peeking, now correctly resets `consumed_offset`

v0.1.0 - 2018-08-05

  • Initial release