diff options
| author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2022-11-21 23:58:28 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-11-21 23:58:28 +0000 |
| commit | b8f51c64964c3f1b02635a1a130fa022793cd3c9 (patch) | |
| tree | f6ae329d47e3374cabe0172dcf77fe8896eba95e | |
| parent | 15b4ed2c672a853cf9bb5cfb8aae323430de0c67 (diff) | |
| parent | 551b54ddcbb104f881a3333215f4a828b33d029a (diff) | |
Merge #1057
1057: stm32g0: Fix ADC for channels above 14 r=Dirbaio a=jaxter184
using the CHSELR register in sequence mode does not support ADC channels above 14. Also, it seems like the sequencer itself wasn't being used anyway, so I turned it off (maybe the whole block from L72..L76 could be removed?) and used a bit shift.
Co-authored-by: Jaxter Kim <[email protected]>
| -rw-r--r-- | embassy-stm32/src/adc/v3.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/embassy-stm32/src/adc/v3.rs b/embassy-stm32/src/adc/v3.rs index 8f81cb7a3..90aa7d3b9 100644 --- a/embassy-stm32/src/adc/v3.rs +++ b/embassy-stm32/src/adc/v3.rs | |||
| @@ -71,7 +71,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 71 | 71 | ||
| 72 | #[cfg(adc_g0)] | 72 | #[cfg(adc_g0)] |
| 73 | T::regs().cfgr1().modify(|reg| { | 73 | T::regs().cfgr1().modify(|reg| { |
| 74 | reg.set_chselrmod(true); | 74 | reg.set_chselrmod(false); |
| 75 | }); | 75 | }); |
| 76 | } | 76 | } |
| 77 | 77 | ||
| @@ -200,7 +200,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 200 | #[cfg(not(stm32g0))] | 200 | #[cfg(not(stm32g0))] |
| 201 | T::regs().sqr1().write(|reg| reg.set_sq(0, pin.channel())); | 201 | T::regs().sqr1().write(|reg| reg.set_sq(0, pin.channel())); |
| 202 | #[cfg(stm32g0)] | 202 | #[cfg(stm32g0)] |
| 203 | T::regs().chselr().write(|reg| reg.set_chsel(pin.channel() as u32)); | 203 | T::regs().chselr().write(|reg| reg.set_chsel(1 << pin.channel())); |
| 204 | 204 | ||
| 205 | // Some models are affected by an erratum: | 205 | // Some models are affected by an erratum: |
| 206 | // If we perform conversions slower than 1 kHz, the first read ADC value can be | 206 | // If we perform conversions slower than 1 kHz, the first read ADC value can be |
