Skip to content

Commit b742fad

Browse files
committed
Add support for G491 and G4A1
1 parent 44ee4ad commit b742fad

File tree

4 files changed

+98
-6
lines changed

4 files changed

+98
-6
lines changed

src/adc.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2848,6 +2848,15 @@ adc_op_follower!(
28482848
))]
28492849
adc_op_pga!(
28502850
opamp::opamp3::Pga<A, B> => (ADC3, 13),
2851+
);
2852+
2853+
#[cfg(any(
2854+
feature = "stm32g473",
2855+
feature = "stm32g474",
2856+
feature = "stm32g483",
2857+
feature = "stm32g484",
2858+
))]
2859+
adc_op_pga!(
28512860
opamp::opamp4::Pga<A, B> => (ADC5, 5),
28522861
opamp::opamp5::Pga<A, B> => (ADC5, 3),
28532862
opamp::opamp6::Pga<A, B> => (ADC4, 17),

src/opamp.rs

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,8 @@ macro_rules! opamps {
545545
};
546546
}
547547

548-
#[cfg(any(feature = "stm32g431", feature = "stm32g441", feature = "stm32g471",))]
548+
// TODO: Figure out a way to not duplicate this 3 times
549+
#[cfg(any(feature = "stm32g431", feature = "stm32g441"))]
549550
opamps! {
550551
opamp1: {
551552
vinm0: PA3,
@@ -589,6 +590,63 @@ opamps! {
589590
},
590591
}
591592

593+
#[cfg(any(feature = "stm32g471", feature = "stm32g491", feature = "stm32g4a1"))]
594+
opamps! {
595+
opamp1: {
596+
vinm0: PA3,
597+
inverting: {
598+
crate::gpio::gpioa::PA3<crate::gpio::Analog>: vinm0,
599+
crate::gpio::gpioc::PC5<crate::gpio::Analog>: vinm1,
600+
},
601+
non_inverting: {
602+
crate::gpio::gpioa::PA1<crate::gpio::Analog>: vinp0,
603+
crate::gpio::gpioa::PA3<crate::gpio::Analog>: vinp1,
604+
crate::gpio::gpioa::PA7<crate::gpio::Analog>: vinp2,
605+
},
606+
output: crate::gpio::gpioa::PA2<crate::gpio::Analog>,
607+
},
608+
opamp2: {
609+
vinm0: PA5,
610+
inverting: {
611+
crate::gpio::gpioa::PA5<crate::gpio::Analog>: vinm0,
612+
crate::gpio::gpioc::PC5<crate::gpio::Analog>: vinm1,
613+
},
614+
non_inverting: {
615+
crate::gpio::gpioa::PA7<crate::gpio::Analog>: vinp0,
616+
crate::gpio::gpiob::PB14<crate::gpio::Analog>: vinp1,
617+
crate::gpio::gpiob::PB0<crate::gpio::Analog>: vinp2,
618+
crate::gpio::gpiod::PD14<crate::gpio::Analog>: vinp3,
619+
},
620+
output: crate::gpio::gpioa::PA6<crate::gpio::Analog>,
621+
},
622+
opamp3: {
623+
vinm0: PB2,
624+
inverting: {
625+
crate::gpio::gpiob::PB2<crate::gpio::Analog>: vinm0,
626+
crate::gpio::gpiob::PB10<crate::gpio::Analog>: vinm1,
627+
},
628+
non_inverting: {
629+
crate::gpio::gpiob::PB0<crate::gpio::Analog>: vinp0,
630+
crate::gpio::gpiob::PB13<crate::gpio::Analog>: vinp1,
631+
crate::gpio::gpioa::PA1<crate::gpio::Analog>: vinp2,
632+
},
633+
output: crate::gpio::gpiob::PB1<crate::gpio::Analog>,
634+
},
635+
opamp6: {
636+
vinm0: PA1,
637+
inverting: {
638+
crate::gpio::gpioa::PA1<crate::gpio::Analog>: vinm0,
639+
crate::gpio::gpiob::PB1<crate::gpio::Analog>: vinm1,
640+
},
641+
non_inverting: {
642+
crate::gpio::gpiob::PB12<crate::gpio::Analog>: vinp0,
643+
crate::gpio::gpiod::PD9<crate::gpio::Analog>: vinp1,
644+
crate::gpio::gpiob::PB13<crate::gpio::Analog>: vinp2,
645+
},
646+
output: crate::gpio::gpiob::PB11<crate::gpio::Analog>,
647+
},
648+
}
649+
592650
#[cfg(any(
593651
feature = "stm32g473",
594652
feature = "stm32g474",

src/pwm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -874,7 +874,7 @@ pins! {
874874
feature = "stm32g483",
875875
feature = "stm32g484",
876876
feature = "stm32g491",
877-
feature = "stm32g4a1"
877+
feature = "stm32g4a1",
878878
))]
879879
pins! {
880880
TIM20:

src/rcc/enable.rs

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ bus! {
8989
feature = "stm32g473",
9090
feature = "stm32g474",
9191
feature = "stm32g483",
92-
feature = "stm32g484"
92+
feature = "stm32g484",
93+
feature = "stm32g491",
94+
feature = "stm32g4a1",
9395
))]
9496
bus! {
9597
ADC3 => (AHB2, 14),
@@ -158,6 +160,16 @@ bus! {
158160
FDCAN2 => (APB1_1, 25),
159161
}
160162

163+
#[cfg(any(
164+
feature = "stm32g473",
165+
feature = "stm32g474",
166+
feature = "stm32g483",
167+
feature = "stm32g484",
168+
))]
169+
bus! {
170+
FDCAN3 => (APB1_1, 25),
171+
}
172+
161173
#[cfg(any(
162174
feature = "stm32g471",
163175
feature = "stm32g473",
@@ -167,10 +179,22 @@ bus! {
167179
))]
168180
bus! {
169181
TIM5 => (APB1_1, 3),
170-
UART5 => (APB1_1, 20),
171182
I2C4 => (APB1_2, 1),
172183
}
173184

185+
#[cfg(any(
186+
feature = "stm32g471",
187+
feature = "stm32g473",
188+
feature = "stm32g474",
189+
feature = "stm32g483",
190+
feature = "stm32g484",
191+
feature = "stm32g491",
192+
feature = "stm32g4a1",
193+
))]
194+
bus! {
195+
UART5 => (APB1_1, 20),
196+
}
197+
174198
bus! {
175199
SYSCFG => (APB2, 0),
176200
TIM1 => (APB2, 11),
@@ -198,10 +222,11 @@ bus! {
198222
feature = "stm32g473",
199223
feature = "stm32g474",
200224
feature = "stm32g483",
201-
feature = "stm32g484"
225+
feature = "stm32g484",
226+
feature = "stm32g491",
227+
feature = "stm32g4a1",
202228
))]
203229
bus! {
204-
FDCAN3 => (APB1_1, 25),
205230
TIM20 => (APB2, 20),
206231
}
207232

0 commit comments

Comments
 (0)